Skip to content

Python library for analytical evaluation and integration of Gaussian-type basis functions and related quantities.

License

Notifications You must be signed in to change notification settings

theochem/gbasis

Repository files navigation

GBasis

This project supports Python 3.9+ pytest codecov PyPI License documentation

About

gbasis is a pure-Python package for analytical integration and evaluation of Gaussian-type orbitals and their related quantities. The goal is to build a set of tools for the quantum chemistry community that are easily accessible and extendable to facilitate future scientific works.

Since basis set manipulation is often slow, quantum chemistry packages in Python often interface to a lower-level language, such as C++ and Fortran, resulting in a complicated build process and limited distribution. The hope is that gbasis can fill in this gap without a significant difference in performance.

See the gbasis website for more information, tutorials and examples, and API documentation.

Citation

Please use the following citation in any publication using gbasis library:

"GBasis: A Python Library for Evaluating Functions, Functionals, and Integrals Expressed with Gaussian Basis Functions.", T. D. Kim, L. Pujal, M. Richer, M. van Zyl, M. Martínez-González, A. Tehrani, V. Chuiko, G. Sánchez-Díaz, W. Sanchez, W. Adams, X. Huang, B. D. Kelly, E. Vöhringer-Martinez, T. Verstraelen, F. Heidar-Zadeh, and P. W. Ayers, J. Chem. Phys. 161, 042503 (2024).

Installation

To install the latest release of qc-gbasis, run as follows:

python -m pip install qc-gbasis

See https://gbasis.qcdevs.org/installation.html for full details.

Contributing

We welcome contributions of all kinds, such as new features, improvements, bug fixes, and documentation clarifications. Please read our Contributor Guide and Code of Conduct for more details.

Feature List (Partial)

This is a partial list of the features that are supported in gbasis:

Importing basis set

  • from Gaussian94 basis set file (gbasis.parsers.parse_gbs)
  • from NWChem basis set file (gbasis.parsers.parse_nwchem)
  • from iodata (gbasis.wrappers.from_iodata)
  • from pyscf (gbasis.wrappers.from_pyscf)

Evaluations

  • of basis sets (gbasis.eval.evaluate_basis)
  • of arbitrary derivative of basis sets (gbasis.eval_deriv.evaluate_deriv_basis)
  • of density (gbasis.density.evaluate_density)
  • of arbitrary derivative of density (gbasis.density.evaluate_deriv_density)
  • of gradient of density (gbasis.density.evaluate_density_gradient)
  • of Laplacian of density (gbasis.density.evaluate_density_laplacian)
  • of Hessian of density (gbasis.density.evaluate_density_hessian)
  • of stress tensor (gbasis.stress_tensor.evaluate_stress_tensor)
  • of Ehrenfest force (gbasis.stress_tensor.evaluate_ehrenfest_force)
  • of Ehrenfest Hessian (gbasis.stress_tensor.evaluate_ehrenfest_hessian)
  • of positive-definite kinetic energy (gbasis.density.evaluate_posdef_kinetic_energy_density)
  • of general form of the kinetic energy (gbasis.density.evaluate_general_kinetic_energy_density)
  • of electrostatic potential (gbasis.electrostatic_potential.electrostatic_potential)

Integrals

  • overlap integrals of a basis set (gbasis.overlap.overlap_integral)
  • overlap integrals between two basis sets (gbasis.overlap_asymm.overlap_integral_asymmetric)
  • arbitrary multipole moment integral (gbasis.moment.moment_integral)
  • kinetic energy integral (gbasis.kinetic_energy.kinetic_energy.integral)
  • momentum integral (gbasis.momentum.momentum_integral)
  • angular momentum integral (gbasis.angular_momentum.angular_momentum_integral)
  • point charge interaction integral (gbasis.point_charge.point_charge_integral)
  • nuclear-electron attraction integral (gbasis.point_charge.point_charge_integral)
  • electron-electron repulsion integral (gbasis.electron_repulsion.electron_repulsion_integral)