Simple and slow integral package for Gaussian basis functions.12 IntPak has the ability to compute various types of one-, two-, three-, and four-electron integrals using various operators.345 IntPak is extremely slow but the implementation is straightforward.
Contributors:
The IntPak software can be downloaded on GitHub as a Git repository
git clone https://github.com/pfloos/IntPak.git
The repository should be self-contained as I have added the required subroutines from the library slatec. BLAS and LAPACK might be also required.
cd src; make
./bin/IntPak
The options are gathered in input/int
and it looks like this
# Debuggin mode?
F
# Chemist notation for two-electron integral?
F
# Exposant of the Slater geminal
1.0
# One-electron integrals: Ov Kin Nuc
T T T
# Two-electron integrals: ERI F12 Yuk Erf
T F F F
# Three-electron integrals: Type1 Type2 Type3
F F F
# Four-electron integrals: Type1 Type2 Type3
F F F
In this case, the usual one-electron integrals are going to be computed (overlap, kinetic and nuclear attraction) as well as the electron repulsion integrals (ERIs). Other two-electron integrals over the operator f12 (f12 being a Gaussian or Slater geminal), f12/r12, and erf(r12)/r12 can also be computed. For the three- and four-electron integrals, see the corresponding papers. 345
The basis set is given in input/basis
while the molecular geometry is given in input/molecule
.
The molecule
file looks like this for N2 (the coordinates are given in bohr):
# nAt nEla nElb nCore nRyd
2 7 7 0 0
# Znuc x y z
N 0.0000000000 0.0000000000 1.0400863244
N 0.0000000000 0.0000000000 -1.0400863244
A concrete example is given in the repository.
Additional tuning can be done in the main source file src/IntPak.f90
.
In particular, one can tune the coefficients and exponents of the Gaussian geminals that are used to fit the Slater geminal.
Have fun!