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
Loading...

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 ...