CP2K 2.5 (Revision 12981)
Functions

ai_derivatives Namespace Reference

Calculate the first derivative of an integral block. More...

Functions

subroutine, public dabdr (la_max, npgfa, zeta, rpgfa, la_min, lb_max, npgfb, rpgfb, lb_min, dab, ab, dabdx, dabdy, dabdz)
 Calculate the first derivative of an integral block. This takes the derivative with respect to the atomic position Ra, i.e. the center of the primitive on the left. To get the derivative of the left primitive with respect to r (orbital coordinate), take the opposite sign. To get the derivative with respect to the center of the primitive on the right Rb, take the opposite sign. To get the derivative of the right primitive with respect to r, do not change the sign. [da/dRi|O|b] = 2*zeta*[a+1i|O|b] - Ni(a)[a-1i|O|b].
subroutine, public adbdr (la_max, npgfa, rpgfa, la_min, lb_max, npgfb, zetb, rpgfb, lb_min, dab, ab, adbdx, adbdy, adbdz)
 Calculate the first derivative of an integral block. This takes the derivative with respect to the atomic position Rb, i.e. the center of the primitive on the right. To get the derivative of the left primitive with respect to r (orbital coordinate), take the opposite sign. [a|O|db/dRi] = 2*zetb*[a|O|b+1i] - Ni(b)[a|O|b-1i].

Detailed Description

Calculate the first derivative of an integral block.

Author:
Matthias Krack
Date:
05.10.2000
Version:
1.0
Literature
S. Obara and A. Saika, J. Chem. Phys. 84, 3963 (1986)
Parameters
  • ax,ay,az : Angular momentum index numbers of orbital a.
  • bx,by,bz : Angular momentum index numbers of orbital b.
  • coset : Cartesian orbital set pointer.
  • l{a,b} : Angular momentum quantum number of shell a or b.
  • l{a,b}_max: Maximum angular momentum quantum number of shell a or b.
  • l{a,b}_min: Minimum angular momentum quantum number of shell a or b.
  • ncoset : Number of orbitals in a Cartesian orbital set.
  • npgf{a,b} : Degree of contraction of shell a or b.
  • rab : Distance vector between the atomic centers a and b.
  • rab2 : Square of the distance between the atomic centers a and b.
  • rac : Distance vector between the atomic centers a and c.
  • rac2 : Square of the distance between the atomic centers a and c.
  • rbc : Distance vector between the atomic centers b and c.
  • rbc2 : Square of the distance between the atomic centers b and c.
  • rpgf{a,b} : Radius of the primitive Gaussian-type function a or b.
  • zet{a,b} : Exponents of the Gaussian-type functions a or b.
  • zetp : Reciprocal of the sum of the exponents of orbital a and b.

Function Documentation

subroutine,public ai_derivatives::adbdr ( INTEGER,intent(in)  la_max,
INTEGER,intent(in)  npgfa,
REAL(KIND=dp),dimension(:),intent(in)  rpgfa,
INTEGER,intent(in)  la_min,
INTEGER,intent(in)  lb_max,
INTEGER,intent(in)  npgfb,
REAL(KIND=dp),dimension(:),intent(in)  zetb,
REAL(KIND=dp),dimension(:),intent(in)  rpgfb,
INTEGER,intent(in)  lb_min,
REAL(KIND=dp),intent(in)  dab,
REAL(KIND=dp),dimension(:, :),intent(in)  ab,
REAL(KIND=dp),dimension(:, :),intent(out)  adbdx,
REAL(KIND=dp),dimension(:, :),intent(out)  adbdy,
REAL(KIND=dp),dimension(:, :),intent(out)  adbdz 
)

Calculate the first derivative of an integral block. This takes the derivative with respect to the atomic position Rb, i.e. the center of the primitive on the right. To get the derivative of the left primitive with respect to r (orbital coordinate), take the opposite sign. [a|O|db/dRi] = 2*zetb*[a|O|b+1i] - Ni(b)[a|O|b-1i].

Author:
Matthias Krack
Date:
05.10.2000
Version:
1.0

Definition at line 199 of file ai_derivatives.f90.

References orbital_pointers::coset.

Referenced by ai_moments::diff_momop().

Here is the caller graph for this function:

subroutine,public ai_derivatives::dabdr ( INTEGER,intent(in)  la_max,
INTEGER,intent(in)  npgfa,
REAL(KIND=dp),dimension(:),intent(in)  zeta,
REAL(KIND=dp),dimension(:),intent(in)  rpgfa,
INTEGER,intent(in)  la_min,
INTEGER,intent(in)  lb_max,
INTEGER,intent(in)  npgfb,
REAL(KIND=dp),dimension(:),intent(in)  rpgfb,
INTEGER,intent(in)  lb_min,
REAL(KIND=dp),intent(in)  dab,
REAL(KIND=dp),dimension(:, :),intent(in)  ab,
REAL(KIND=dp),dimension(:, :),intent(out)  dabdx,
REAL(KIND=dp),dimension(:, :),intent(out)  dabdy,
REAL(KIND=dp),dimension(:, :),intent(out)  dabdz 
)

Calculate the first derivative of an integral block. This takes the derivative with respect to the atomic position Ra, i.e. the center of the primitive on the left. To get the derivative of the left primitive with respect to r (orbital coordinate), take the opposite sign. To get the derivative with respect to the center of the primitive on the right Rb, take the opposite sign. To get the derivative of the right primitive with respect to r, do not change the sign. [da/dRi|O|b] = 2*zeta*[a+1i|O|b] - Ni(a)[a-1i|O|b].

Author:
Matthias Krack
Date:
05.10.2000
Version:
1.0

Definition at line 64 of file ai_derivatives.f90.

References orbital_pointers::coset.

Referenced by ai_angmom::angmom2(), and scp_dispersion::scp_qs_dispersion().

Here is the caller graph for this function: