![]() |
(git:c641773)
|
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]. | |
Calculation of the moment integrals over Cartesian Gaussian-type functions.
| 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.
| cos_block | ... |
| sin_block | ... |
| iatom | ... |
| ncoa | ... |
| nsgfa | ... |
| sgfa | ... |
| sphi_a | ... |
| ldsa | ... |
| jatom | ... |
| ncob | ... |
| nsgfb | ... |
| sgfb | ... |
| sphi_b | ... |
| ldsb | ... |
| expab | complex primitive plane-wave integrals |
| work | ... |
| ldwork | ... |
| ordered | retain the ordered atom pair instead of mapping to an upper block |
Definition at line 76 of file ai_moments.F.
| 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.
| la_max_set | highest bra shell |
| npgfa | number of bra primitives |
| zeta | bra Gaussian exponents |
| rpgfa | bra primitive radii |
| la_min_set | lowest bra shell |
| lb_max | highest ket shell |
| npgfb | number of ket primitives |
| zetb | ket Gaussian exponents |
| rpgfb | ket primitive radii |
| lb_min | lowest ket shell |
| rac | bra-center coordinates relative to the phase origin |
| rbc | ket-center coordinates relative to the phase origin |
| kvec | plane-wave vector |
| expab | primitive integrals in the full Cartesian layout, zero below the requested shells |
| dexpab | optional bra-center derivatives with the plane-wave operator held fixed |
| dexpba | optional ket-center derivatives in the same bra/ket layout |
| momentab | optional 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.
| 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 ) |
...
| la_max | ... |
| npgfa | ... |
| zeta | ... |
| rpgfa | ... |
| la_min | ... |
| lb_max | ... |
| npgfb | ... |
| zetb | ... |
| rpgfb | ... |
| lc_max | ... |
| rac | ... |
| rbc | ... |
| mab | ... |
| overlap | optional 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.
| 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 ...
| la_max | ... |
| npgfa | ... |
| zeta | ... |
| rpgfa | ... |
| la_min | ... |
| lb_max | ... |
| npgfb | ... |
| zetb | ... |
| rpgfb | ... |
| lb_min | ... |
| order | ... |
| rac | ... |
| rbc | ... |
| difmab | ... |
| mab_ext | optional precomputed moments with zero screened primitive blocks, including raised shells |
| deltaR | optional weights for the left and right primitive derivatives |
| lambda | optional atom selector for the factor (iatom == lambda) - (jatom == lambda) |
| iatom | atom associated with the left basis function |
| jatom | atom associated with the right basis function |
Definition at line 387 of file ai_moments.F.
| 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].
| la_max | ... |
| npgfa | ... |
| zeta | ... |
| rpgfa | ... |
| la_min | ... |
| lb_max | ... |
| npgfb | ... |
| zetb | ... |
| rpgfb | ... |
| lb_min | ... |
| order | ... |
| rac | ... |
| rbc | ... |
| pab | ... |
| forcea | ... |
| forceb | ... |
Definition at line 492 of file ai_moments.F.