Computation of One-Electron Integrals

The one-electron integrals consist of the overlap matrix S, the kinetic energy matrix T, and the nuclear attraction matrix V. The latter two are often combined into the one-electron Hamiltonian h.

There are a number of helper functions in the Ints module:
getT: Form the kinetic energy matrix T
getS: Form the overlap matrix S
getV: Form the nuclear attraction matrix V
get1ints: Form and return S,h
getints: Form and return S,h,Ints, where Ints are the two-electron integrals (see below).
These functions actually call instance functions of the CGBF objects, which can themselves be used individually. Some of the instance functions in the CGBF module use functions in the pyints and cints modules.

Computation of Two-Electron Integrals

The two-electron integrals consist of the electron-electron Coulomb repulsion interactions. The easiest way to construct these is to use the functions in the Ints module
get2ints: Form and return Ints, where Ints are the two-electron integrals (see below).
getints: Form and return S,h,Ints, where Ints are the two-electron integrals.
The Ints object (not to be confused with the Ints module, which is just a collection of helper functions) consists of a list of the two-electron integrals.

There are actually three different methods to computing the two-electron integrals, and the helper functions in the Ints module default to one of these functions.
• Huzinaga's original method for computing integrals over Gaussians.
• Rys quadrature.
• Head-Gordon and Pople's recurrance relations.
There are python versions of these methods implemented in the modules pyints, rys, and hgp, respectively. For speed, there are also C-versions of these modules in cints, crys, and chgp. The program defaults to the Coulomb repulsion routines in crys, since these are the fastest (although recent improvements to chgp make it not much slower).

The coulomb_repulsion function is the same in all six modules:

>>> integral = coulomb_repulsion((xa,ya,za),norma,(la,ma,na),alphaa,
(xb,yb,zb),normb,(lb,mb,nb),alphab,
(xc,yc,zc),normc,(lc,mc,nc),alphac,
(xd,yd,zd),normd,(ld,md,nd),alphad)

This routine computes the Coulomb repulsion integral between four basis functions. The terms xi, yi, zi are the origins of the different basis functions. The terms normi are the normalization constants for the basis function. The terms li, mi, ni are the exponents of the Cartesian powers for the basis function. And the terms alphai are the Gaussian exponents.