Documentation for module ai_operators_r12

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)

source: ai_operators_r12.F

public Subroutines/Functions:

SUBROUTINE
cps_coulomb2 (v, nmax, zetp, zetq, zetw, rho, rac2, omega)
Calculation of Coulomb integrals for s-function, i.e, [s|1/r12|s], and the auxiliary integrals [s|1/r12|s]^n
SUBROUTINE
cps_gauss2 (v, nmax, zetp, zetq, zetw, rho, rac2, omega)
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]
SUBROUTINE
cps_verf2 (v, nmax, zetp, zetq, zetw, rho, rac2, omega)
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
SUBROUTINE
cps_verfc2 (v, nmax, zetp, zetq, zetw, rho, rac2, omega)
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
SUBROUTINE
cps_vgauss2 (v, nmax, zetp, zetq, zetw, rho, rac2, omega)
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]
Calculation of the primitive two-center integrals over Cartesian Gaussian-type functions for different r12 operators.

SUBROUTINEcps_coulomb2(v, nmax, zetp, zetq, zetw, rho, rac2, omega)^

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

Arguments:
 REAL(dp), INTENT(inout) :: v(:,:,:) matrix storing the integrals INTEGER, INTENT(in) :: nmax maximal n in the auxiliary integrals [s|1/r12|s]^n REAL(dp), INTENT(in) :: zetp = 1/zeta REAL(dp), INTENT(in) :: zetq = 1/zetc REAL(dp), INTENT(in) :: zetw = 1/(zeta+zetc) REAL(dp), INTENT(in) :: rho = zeta*zetc*zetw REAL(dp), INTENT(in) :: rac2 square distance between center A and C, |Ra-Rc|^2 REAL(dp), INTENT(in) :: omega this parameter is actually not used, but included for the sake of the abstract interface

SUBROUTINEcps_gauss2(v, nmax, zetp, zetq, zetw, rho, rac2, omega)^

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]

Arguments:
 REAL(dp), INTENT(inout) :: v(:,:,:) matrix storing the integrals INTEGER, INTENT(in) :: nmax maximal n in the auxiliary integrals [s|exp(-omega*r12^2)|s] REAL(dp), INTENT(in) :: zetp = 1/zeta REAL(dp), INTENT(in) :: zetq = 1/zetc REAL(dp), INTENT(in) :: zetw = 1/(zeta+zetc) REAL(dp), INTENT(in) :: rho = zeta*zetc*zetw REAL(dp), INTENT(in) :: rac2 square distance between center A and C, |Ra-Rc|^2 REAL(dp), INTENT(in) :: omega parameter in the operator

SUBROUTINEcps_verf2(v, nmax, zetp, zetq, zetw, rho, rac2, omega)^

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

Arguments:
 REAL(dp), INTENT(inout) :: v(:,:,:) matrix storing the integrals INTEGER, INTENT(in) :: nmax maximal n in the auxiliary integrals [s|erf(omega*r12)/r12|s]^n REAL(dp), INTENT(in) :: zetp = 1/zeta REAL(dp), INTENT(in) :: zetq = 1/zetc REAL(dp), INTENT(in) :: zetw = 1/(zeta+zetc) REAL(dp), INTENT(in) :: rho = zeta*zetc*zetw REAL(dp), INTENT(in) :: rac2 square distance between center A and C, |Ra-Rc|^2 REAL(dp), INTENT(in) :: omega parameter in the operator

SUBROUTINEcps_verfc2(v, nmax, zetp, zetq, zetw, rho, rac2, omega)^

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

Arguments:
 REAL(dp), INTENT(inout) :: v(:,:,:) matrix storing the integrals INTEGER, INTENT(in) :: nmax maximal n in the auxiliary integrals [s|erfc(omega*r12)/r12|s]^n REAL(dp), INTENT(in) :: zetp = 1/zeta REAL(dp), INTENT(in) :: zetq = 1/zetc REAL(dp), INTENT(in) :: zetw = 1/(zeta+zetc) REAL(dp), INTENT(in) :: rho = zeta*zetc*zetw REAL(dp), INTENT(in) :: rac2 square distance between center A and C, |Ra-Rc|^2 REAL(dp), INTENT(in) :: omega parameter in the operator

SUBROUTINEcps_vgauss2(v, nmax, zetp, zetq, zetw, rho, rac2, omega)^

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]

Arguments:
 REAL(dp), INTENT(inout) :: v(:,:,:) matrix storing the integrals INTEGER, INTENT(in) :: nmax maximal n in the auxiliary integrals [s|exp(-omega*r12^2)/r12|s] REAL(dp), INTENT(in) :: zetp = 1/zeta REAL(dp), INTENT(in) :: zetq = 1/zetc REAL(dp), INTENT(in) :: zetw = 1/(zeta+zetc) REAL(dp), INTENT(in) :: rho = zeta*zetc*zetw REAL(dp), INTENT(in) :: rac2 square distance between center A and C, |Ra-Rc|^2 REAL(dp), INTENT(in) :: omega parameter in the operator

SUBROUTINEoperator2(cps_operator2, la_max, npgfa, zeta, la_min, lc_max, npgfc, zetc, lc_min, omega, rac, rac2, vac, v, maxder, vac_plus)^

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

Arguments:
 PROCEDURE(ab_sint_os), POINTER :: cps_operator2 procedure 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. INTEGER, INTENT(in) :: la_max ... INTEGER, INTENT(in) :: npgfa ... REAL(dp), INTENT(in) :: zeta(:) ... INTEGER, INTENT(in) :: la_min ... INTEGER, INTENT(in) :: lc_max ... INTEGER, INTENT(in) :: npgfc ... REAL(dp), INTENT(in) :: zetc(:) ... INTEGER, INTENT(in) :: lc_min ... REAL(dp), INTENT(in) :: omega ... REAL(dp), INTENT(in) :: rac(3) ... REAL(dp), INTENT(in) :: rac2 ... REAL(dp), INTENT(inout) :: vac(:,:) matrix storing the integrals REAL(dp), INTENT(inout) :: v(:,:,:) temporary work array INTEGER, INTENT(in), OPTIONAL :: maxder maximal derivative REAL(dp), OPTIONAL :: vac_plus(:,:) matrix storing the integrals for highler l-quantum numbers; used to construct the derivatives
Abstract/Explicit interfaces
Abstract interface

SUBROUTINEab_sint_os(v, nmax, zetp, zetq, zetw, rho, rac2, omega)^

Interface for the calculation of integrals over s-functions and the s-type auxiliary integrals using the Obara-Saika (OS) scheme

Arguments:
 REAL(dp), INTENT(inout) :: v(:,:,:) ... INTEGER, INTENT(in) :: nmax ... REAL(dp), INTENT(in) :: zetp ... REAL(dp), INTENT(in) :: zetq ... REAL(dp), INTENT(in) :: zetw ... REAL(dp), INTENT(in) :: rho ... REAL(dp), INTENT(in) :: rac2 ... REAL(dp), INTENT(in) :: omega ...