(git:c641773)
Loading...
Searching...
No Matches
ai_moments Module Reference

Calculation of the moment integrals over Cartesian Gaussian-type functions. More...

Functions/Subroutines

subroutine, public contract_expikr (cos_block, sin_block, iatom, ncoa, nsgfa, sgfa, sphi_a, ldsa, jatom, ncob, nsgfb, sgfb, sphi_b, ldsb, expab, work, ldwork, ordered)
 Contract complex primitive integrals into real cosine and sine AO blocks.
subroutine, public expikr (la_max_set, npgfa, zeta, rpgfa, la_min_set, lb_max, npgfb, zetb, rpgfb, lb_min, rac, rbc, kvec, expab, dexpab, dexpba, momentab)
 Evaluate primitive exp(i k.r) integrals through the complex overlap recurrence.
subroutine, public moment (la_max, npgfa, zeta, rpgfa, la_min, lb_max, npgfb, zetb, rpgfb, lc_max, rac, rbc, mab, overlap)
 ...
subroutine, public diff_momop (la_max, npgfa, zeta, rpgfa, la_min, lb_max, npgfb, zetb, rpgfb, lb_min, order, rac, rbc, difmab, mab_ext, deltar, lambda, iatom, jatom)
 This returns the derivative of the moment integrals [a|\mu|b]. By default, it differentiates the primitive on the right: [a|\mu|d/dR_bi] = 2*zetb*[a|\mu|b+1i] - Ni(b)[a|\mu|b-1i] A weighted derivative combines the left and right primitive derivatives using deltaR for the corresponding atom centers. order indicates the max order of the moment operator to be calculated 1: dipole 2: quadrupole ...
subroutine, public dipole_force (la_max, npgfa, zeta, rpgfa, la_min, lb_max, npgfb, zetb, rpgfb, lb_min, order, rac, rbc, pab, forcea, forceb)
 This returns the derivative of the dipole integrals [a|x|b], with respect to the position of the primitive on the left and right, i.e. [da/dR_ai|\mu|b] = 2*zeta*[a+1i|\mu|b] - Ni(a)[a-1i|\mu|b].

Detailed Description

Calculation of the moment integrals over Cartesian Gaussian-type functions.

Literature
S. Obara and A. Saika, J. Chem. Phys. 84, 3963 (1986)
History
none
Author
J. Hutter (16.02.2005)

Function/Subroutine Documentation

◆ contract_expikr()

subroutine, public ai_moments::contract_expikr ( real(dp), dimension(:, :), pointer cos_block,
real(dp), dimension(:, :), pointer sin_block,
integer, intent(in) iatom,
integer, intent(in) ncoa,
integer, intent(in) nsgfa,
integer, intent(in) sgfa,
real(dp), dimension(:, :), intent(in) sphi_a,
integer, intent(in) ldsa,
integer, intent(in) jatom,
integer, intent(in) ncob,
integer, intent(in) nsgfb,
integer, intent(in) sgfb,
real(dp), dimension(:, :), intent(in) sphi_b,
integer, intent(in) ldsb,
complex(dp), dimension(:, :), intent(in) expab,
real(dp), dimension(:, :) work,
integer, intent(in) ldwork,
logical, intent(in), optional ordered )

Contract complex primitive integrals into real cosine and sine AO blocks.

Parameters
cos_block...
sin_block...
iatom...
ncoa...
nsgfa...
sgfa...
sphi_a...
ldsa...
jatom...
ncob...
nsgfb...
sgfb...
sphi_b...
ldsb...
expabcomplex primitive plane-wave integrals
work...
ldwork...
orderedretain the ordered atom pair instead of mapping to an upper block

Definition at line 76 of file ai_moments.F.

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

◆ expikr()

subroutine, public ai_moments::expikr ( integer, intent(in) la_max_set,
integer, intent(in) npgfa,
real(kind=dp), dimension(:), intent(in) zeta,
real(kind=dp), dimension(:), intent(in) rpgfa,
integer, intent(in) la_min_set,
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), dimension(3), intent(in) rac,
real(kind=dp), dimension(3), intent(in) rbc,
real(kind=dp), dimension(3), intent(in) kvec,
complex(kind=dp), dimension(:, :), intent(inout) expab,
complex(kind=dp), dimension(:, :, :), intent(inout), optional, target dexpab,
complex(kind=dp), dimension(:, :, :), intent(inout), optional, target dexpba,
complex(kind=dp), dimension(:, :, :), intent(inout), optional, target momentab )

Evaluate primitive exp(i k.r) integrals through the complex overlap recurrence.

Parameters
la_max_sethighest bra shell
npgfanumber of bra primitives
zetabra Gaussian exponents
rpgfabra primitive radii
la_min_setlowest bra shell
lb_maxhighest ket shell
npgfbnumber of ket primitives
zetbket Gaussian exponents
rpgfbket primitive radii
lb_minlowest ket shell
racbra-center coordinates relative to the phase origin
rbcket-center coordinates relative to the phase origin
kvecplane-wave vector
expabprimitive integrals in the full Cartesian layout, zero below the requested shells
dexpaboptional bra-center derivatives with the plane-wave operator held fixed
dexpbaoptional ket-center derivatives in the same bra/ket layout
momentaboptional coordinate-weighted integrals relative to the phase origin Derivative and moment outputs cover the full Cartesian range.

Definition at line 161 of file ai_moments.F.

Here is the caller graph for this function:

◆ moment()

subroutine, public ai_moments::moment ( 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) zetb,
real(kind=dp), dimension(:), intent(in) rpgfb,
integer, intent(in) lc_max,
real(kind=dp), dimension(3), intent(in) rac,
real(kind=dp), dimension(3), intent(in) rbc,
real(kind=dp), dimension(:, :, :), intent(inout) mab,
real(kind=dp), dimension(:, :), intent(inout), optional overlap )

...

Parameters
la_max...
npgfa...
zeta...
rpgfa...
la_min...
lb_max...
npgfb...
zetb...
rpgfb...
lc_max...
rac...
rbc...
mab...
overlapoptional zeroth moment in primitive-major cumulative Cartesian order; entries outside the requested row and column ranges are untouched

Definition at line 287 of file ai_moments.F.

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

◆ diff_momop()

subroutine, public ai_moments::diff_momop ( 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) zetb,
real(kind=dp), dimension(:), intent(in) rpgfb,
integer, intent(in) lb_min,
integer, intent(in) order,
real(kind=dp), dimension(3), intent(in) rac,
real(kind=dp), dimension(3), intent(in) rbc,
real(kind=dp), dimension(:, :, :, :), intent(out) difmab,
real(kind=dp), dimension(:, :, :), optional, pointer mab_ext,
real(kind=dp), dimension(:, :), optional, pointer deltar,
integer, intent(in), optional lambda,
integer, intent(in), optional iatom,
integer, intent(in), optional jatom )

This returns the derivative of the moment integrals [a|\mu|b]. By default, it differentiates the primitive on the right: [a|\mu|d/dR_bi] = 2*zetb*[a|\mu|b+1i] - Ni(b)[a|\mu|b-1i] A weighted derivative combines the left and right primitive derivatives using deltaR for the corresponding atom centers. order indicates the max order of the moment operator to be calculated 1: dipole 2: quadrupole ...

Parameters
la_max...
npgfa...
zeta...
rpgfa...
la_min...
lb_max...
npgfb...
zetb...
rpgfb...
lb_min...
order...
rac...
rbc...
difmab...
mab_extoptional precomputed moments with zero screened primitive blocks, including raised shells
deltaRoptional weights for the left and right primitive derivatives
lambdaoptional atom selector for the factor (iatom == lambda) - (jatom == lambda)
iatomatom associated with the left basis function
jatomatom associated with the right basis function
Note

Definition at line 387 of file ai_moments.F.

Here is the call graph for this function:

◆ dipole_force()

subroutine, public ai_moments::dipole_force ( 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) zetb,
real(kind=dp), dimension(:), intent(in) rpgfb,
integer, intent(in) lb_min,
integer, intent(in) order,
real(kind=dp), dimension(3), intent(in) rac,
real(kind=dp), dimension(3), intent(in) rbc,
real(kind=dp), dimension(:, :), intent(in) pab,
real(kind=dp), dimension(:, :), intent(inout), target forcea,
real(kind=dp), dimension(:, :), intent(inout), target forceb )

This returns the derivative of the dipole integrals [a|x|b], with respect to the position of the primitive on the left and right, i.e. [da/dR_ai|\mu|b] = 2*zeta*[a+1i|\mu|b] - Ni(a)[a-1i|\mu|b].

Parameters
la_max...
npgfa...
zeta...
rpgfa...
la_min...
lb_max...
npgfb...
zetb...
rpgfb...
lb_min...
order...
rac...
rbc...
pab...
forcea...
forceb...
Note

Definition at line 492 of file ai_moments.F.

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