(git:3add494)
ai_operators_r12 Module Reference

Calculation of integrals over Cartesian Gaussian-type functions for different r12 operators: 1/r12, erf(omega*r12/r12), erfc(omega*r12/r12), exp(-omega*r12^2)/r12 and exp(-omega*r12^2) More...

Functions/Subroutines

subroutine, public operator2 (cps_operator2, la_max, npgfa, zeta, la_min, lc_max, npgfc, zetc, lc_min, omega, r_cutoff, rac, rac2, vac, v, maxder, vac_plus)
 Calculation of the primitive two-center integrals over Cartesian Gaussian-type functions for different r12 operators. More...
 
subroutine, public cps_coulomb2 (v, nmax, zetp, zetq, zetw, rho, rac2, omega, r_cutoff)
 Calculation of Coulomb integrals for s-function, i.e, [s|1/r12|s], and the auxiliary integrals [s|1/r12|s]^n. More...
 
subroutine, public cps_verf2 (v, nmax, zetp, zetq, zetw, rho, rac2, omega, r_cutoff)
 Calculation of verf integrals for s-function, i.e, [s|erf(omega*r12)/r12|s], and the auxiliary integrals [s|erf(omega*r12)/r12|s]^n. More...
 
subroutine, public cps_verfc2 (v, nmax, zetp, zetq, zetw, rho, rac2, omega, r_cutoff)
 Calculation of verfc integrals for s-function, i.e, [s|erfc(omega*r12)/r12|s], and the auxiliary integrals [s|erfc(omega*r12)/r12|s]^n. More...
 
subroutine, public cps_vgauss2 (v, nmax, zetp, zetq, zetw, rho, rac2, omega, r_cutoff)
 Calculation of vgauss integrals for s-function, i.e, [s|exp(-omega*r12^2)/r12|s], and the auxiliary integrals [s|exp(-omega*r12^2)/r12|s]. More...
 
subroutine, public cps_gauss2 (v, nmax, zetp, zetq, zetw, rho, rac2, omega, r_cutoff)
 Calculation of gauss integrals for s-function, i.e, [s|exp(-omega*r12^2)|s], and the auxiliary integrals [s|exp(-omega*r12^2)|s]. More...
 
subroutine, public cps_truncated2 (v, nmax, zetp, zetq, zetw, rho, rac2, omega, r_cutoff)
 Calculation of truncated Coulomb integrals for s-function, i.e, [s|TC|s] where TC = 1/r12 if r12 <= r_cutoff and 0 otherwise. More...
 

Detailed Description

Calculation of integrals over Cartesian Gaussian-type functions for different r12 operators: 1/r12, erf(omega*r12/r12), erfc(omega*r12/r12), exp(-omega*r12^2)/r12 and exp(-omega*r12^2)

Literature
S. Obara and A. Saika, J. Chem. Phys. 84, 3963 (1986) R. Ahlrichs, PCCP, 8, 3072 (2006)
History
05.2019 Added the truncated Coulomb operator (A. Bussy)
Parameters
  • ax,ay,az : Angular momentum index numbers of orbital a.
  • cx,cy,cz : Angular momentum index numbers of orbital c.
  • coset : Cartesian orbital set pointer.
  • dac : Distance between the atomic centers a and c.
  • l{a,c} : Angular momentum quantum number of shell a or c.
  • l{a,c}_max : Maximum angular momentum quantum number of shell a or c.
  • l{a,c}_min : Minimum angular momentum quantum number of shell a or c.
  • ncoset : Number of orbitals in a Cartesian orbital set.
  • npgf{a,c} : Degree of contraction of shell a or c.
  • rac : Distance vector between the atomic centers a and c.
  • rac2 : Square of the distance between the atomic centers a and c.
  • zet{a,c} : Exponents of the Gaussian-type functions a or c.
  • zetp : Reciprocal of the sum of the exponents of orbital a and b.
  • zetw : Reciprocal of the sum of the exponents of orbital a and c.
  • omega : Parameter in the operator
  • r_cutoff : The cutoff radius for the truncated Coulomb operator
Author
Dorothea Golze (05.2016)

Function/Subroutine Documentation

◆ operator2()

subroutine, public ai_operators_r12::operator2 ( procedure(ab_sint_os), pointer  cps_operator2,
integer, intent(in)  la_max,
integer, intent(in)  npgfa,
real(kind=dp), dimension(:), intent(in)  zeta,
integer, intent(in)  la_min,
integer, intent(in)  lc_max,
integer, intent(in)  npgfc,
real(kind=dp), dimension(:), intent(in)  zetc,
integer, intent(in)  lc_min,
real(kind=dp), intent(in)  omega,
real(kind=dp), intent(in)  r_cutoff,
real(kind=dp), dimension(3), intent(in)  rac,
real(kind=dp), intent(in)  rac2,
real(kind=dp), dimension(:, :), intent(inout)  vac,
real(kind=dp), dimension(:, :, :), intent(inout)  v,
integer, intent(in), optional  maxder,
real(kind=dp), dimension(:, :), optional  vac_plus 
)

Calculation of the primitive two-center integrals over Cartesian Gaussian-type functions for different r12 operators.

Parameters
cps_operator2procedure pointer for the respective operator. The integrals evaluation differs only in the evaluation of the cartesian primitive s (cps) integrals [s|O(r12)|s] and auxiliary integrals [s|O(r12)|s]^n. This pointer selects the correct routine.
la_max...
npgfa...
zeta...
la_min...
lc_max...
npgfc...
zetc...
lc_min...
omega...
r_cutoff...
rac...
rac2...
vacmatrix storing the integrals
vtemporary work array
maxdermaximal derivative
vac_plusmatrix storing the integrals for highler l-quantum numbers; used to construct the derivatives

Definition at line 108 of file ai_operators_r12.F.

Here is the caller graph for this function:

◆ cps_coulomb2()

subroutine, public ai_operators_r12::cps_coulomb2 ( real(kind=dp), dimension(:, :, :), intent(inout)  v,
integer, intent(in)  nmax,
real(kind=dp), intent(in)  zetp,
real(kind=dp), intent(in)  zetq,
real(kind=dp), intent(in)  zetw,
real(kind=dp), intent(in)  rho,
real(kind=dp), intent(in)  rac2,
real(kind=dp), intent(in)  omega,
real(kind=dp), intent(in)  r_cutoff 
)

Calculation of Coulomb integrals for s-function, i.e, [s|1/r12|s], and the auxiliary integrals [s|1/r12|s]^n.

Parameters
vmatrix storing the integrals
nmaxmaximal n in the auxiliary integrals [s|1/r12|s]^n
zetp= 1/zeta
zetq= 1/zetc
zetw= 1/(zeta+zetc)
rho= zeta*zetc*zetw
rac2square distance between center A and C, |Ra-Rc|^2
omegathis parameter is actually not used, but included for the sake of the abstract interface
r_cutoffsame as above

Definition at line 442 of file ai_operators_r12.F.

Here is the caller graph for this function:

◆ cps_verf2()

subroutine, public ai_operators_r12::cps_verf2 ( real(kind=dp), dimension(:, :, :), intent(inout)  v,
integer, intent(in)  nmax,
real(kind=dp), intent(in)  zetp,
real(kind=dp), intent(in)  zetq,
real(kind=dp), intent(in)  zetw,
real(kind=dp), intent(in)  rho,
real(kind=dp), intent(in)  rac2,
real(kind=dp), intent(in)  omega,
real(kind=dp), intent(in)  r_cutoff 
)

Calculation of verf integrals for s-function, i.e, [s|erf(omega*r12)/r12|s], and the auxiliary integrals [s|erf(omega*r12)/r12|s]^n.

Parameters
vmatrix storing the integrals
nmaxmaximal n in the auxiliary integrals [s|erf(omega*r12)/r12|s]^n
zetp= 1/zeta
zetq= 1/zetc
zetw= 1/(zeta+zetc)
rho= zeta*zetc*zetw
rac2square distance between center A and C, |Ra-Rc|^2
omegaparameter in the operator
r_cutoffdummy argument for the sake of generality

Definition at line 485 of file ai_operators_r12.F.

Here is the caller graph for this function:

◆ cps_verfc2()

subroutine, public ai_operators_r12::cps_verfc2 ( real(kind=dp), dimension(:, :, :), intent(inout)  v,
integer, intent(in)  nmax,
real(kind=dp), intent(in)  zetp,
real(kind=dp), intent(in)  zetq,
real(kind=dp), intent(in)  zetw,
real(kind=dp), intent(in)  rho,
real(kind=dp), intent(in)  rac2,
real(kind=dp), intent(in)  omega,
real(kind=dp), intent(in)  r_cutoff 
)

Calculation of verfc integrals for s-function, i.e, [s|erfc(omega*r12)/r12|s], and the auxiliary integrals [s|erfc(omega*r12)/r12|s]^n.

Parameters
vmatrix storing the integrals
nmaxmaximal n in the auxiliary integrals [s|erfc(omega*r12)/r12|s]^n
zetp= 1/zeta
zetq= 1/zetc
zetw= 1/(zeta+zetc)
rho= zeta*zetc*zetw
rac2square distance between center A and C, |Ra-Rc|^2
omegaparameter in the operator
r_cutoffdummy argument for the sake of generality

Definition at line 530 of file ai_operators_r12.F.

Here is the caller graph for this function:

◆ cps_vgauss2()

subroutine, public ai_operators_r12::cps_vgauss2 ( real(kind=dp), dimension(:, :, :), intent(inout)  v,
integer, intent(in)  nmax,
real(kind=dp), intent(in)  zetp,
real(kind=dp), intent(in)  zetq,
real(kind=dp), intent(in)  zetw,
real(kind=dp), intent(in)  rho,
real(kind=dp), intent(in)  rac2,
real(kind=dp), intent(in)  omega,
real(kind=dp), intent(in)  r_cutoff 
)

Calculation of vgauss integrals for s-function, i.e, [s|exp(-omega*r12^2)/r12|s], and the auxiliary integrals [s|exp(-omega*r12^2)/r12|s].

Parameters
vmatrix storing the integrals
nmaxmaximal n in the auxiliary integrals [s|exp(-omega*r12^2)/r12|s]
zetp= 1/zeta
zetq= 1/zetc
zetw= 1/(zeta+zetc)
rho= zeta*zetc*zetw
rac2square distance between center A and C, |Ra-Rc|^2
omegaparameter in the operator
r_cutoffdummy argument for the sake of generality

Definition at line 577 of file ai_operators_r12.F.

Here is the caller graph for this function:

◆ cps_gauss2()

subroutine, public ai_operators_r12::cps_gauss2 ( real(kind=dp), dimension(:, :, :), intent(inout)  v,
integer, intent(in)  nmax,
real(kind=dp), intent(in)  zetp,
real(kind=dp), intent(in)  zetq,
real(kind=dp), intent(in)  zetw,
real(kind=dp), intent(in)  rho,
real(kind=dp), intent(in)  rac2,
real(kind=dp), intent(in)  omega,
real(kind=dp), intent(in)  r_cutoff 
)

Calculation of gauss integrals for s-function, i.e, [s|exp(-omega*r12^2)|s], and the auxiliary integrals [s|exp(-omega*r12^2)|s].

Parameters
vmatrix storing the integrals
nmaxmaximal n in the auxiliary integrals [s|exp(-omega*r12^2)|s]
zetp= 1/zeta
zetq= 1/zetc
zetw= 1/(zeta+zetc)
rho= zeta*zetc*zetw
rac2square distance between center A and C, |Ra-Rc|^2
omegaparameter in the operator
r_cutoffdummy argument for the sake of generality

Definition at line 633 of file ai_operators_r12.F.

Here is the caller graph for this function:

◆ cps_truncated2()

subroutine, public ai_operators_r12::cps_truncated2 ( real(kind=dp), dimension(:, :, :), intent(inout)  v,
integer, intent(in)  nmax,
real(kind=dp), intent(in)  zetp,
real(kind=dp), intent(in)  zetq,
real(kind=dp), intent(in)  zetw,
real(kind=dp), intent(in)  rho,
real(kind=dp), intent(in)  rac2,
real(kind=dp), intent(in)  omega,
real(kind=dp), intent(in)  r_cutoff 
)

Calculation of truncated Coulomb integrals for s-function, i.e, [s|TC|s] where TC = 1/r12 if r12 <= r_cutoff and 0 otherwise.

Parameters
vmatrix storing the integrals
nmaxmaximal n in the auxiliary integrals [s|TC|s]
zetp= 1/zeta
zetq= 1/zetc
zetw= 1/(zeta+zetc)
rho= zeta*zetc*zetw
rac2square distance between center A and C, |Ra-Rc|^2
omegadummy argument for the sake of generality
r_cutoffthe radius at which the operator is cut
Note
The truncated operator must have been initialized from the data file prior to this call

Definition at line 678 of file ai_operators_r12.F.

Here is the call graph for this function:
Here is the caller graph for this function: