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.