Minimax-Ewald (MME) method for calculating 2-center and 3-center electron repulsion integrals (ERI) of periodic systems using a Hermite Gaussian basis. The method relies on analytical Fourier transforms of Cartesian and Hermite Gaussian functions and Poisson summation formula to represent ERIs as a discrete sum over direct lattice vectors or reciprocal lattice vectors. The reciprocal space potential 1/G^2 is approximated by a linear combination of Gaussians employing minimax approximation. Not yet implemented: 3c ERIs for nonorthogonal cells.
source: eri_mme_integrate.FLow-level integration routine for 2-center ERIs.
TYPE(eri_mme_param), |
INTENT(in) |
:: | param | ... | |
INTEGER, |
INTENT(in) |
:: | la_min | ... | |
INTEGER, |
INTENT(in) |
:: | la_max | ... | |
INTEGER, |
INTENT(in) |
:: | lb_min | ... | |
INTEGER, |
INTENT(in) |
:: | lb_max | ... | |
REAL(dp), |
INTENT(in) |
:: | zeta | ... | |
REAL(dp), |
INTENT(in) |
:: | zetb | ... | |
REAL(dp), |
INTENT(in) |
:: | rab(3) | ... | |
REAL(dp), |
INTENT(out) |
:: | hab(:,:) | ... | |
INTEGER, |
INTENT(in) |
:: | o1 | ... | |
INTEGER, |
INTENT(in) |
:: | o2 | ... | |
INTEGER, |
INTENT(inout), |
OPTIONAL |
:: | g_count | ... |
INTEGER, |
INTENT(inout), |
OPTIONAL |
:: | r_count | ... |
LOGICAL, |
INTENT(in), |
OPTIONAL |
:: | normalize | calculate integrals w.r.t. normalized Hermite-Gaussians |
LOGICAL, |
INTENT(in), |
OPTIONAL |
:: | exact_method | create reference values by exact method (no minimax approx. and sum is converged to much higher precision) |
Low-level integration routine for 3-center ERIs
TYPE(eri_mme_param), |
INTENT(in) |
:: | param | ... | |
INTEGER, |
INTENT(in) |
:: | la_min | ... | |
INTEGER, |
INTENT(in) |
:: | la_max | ... | |
INTEGER, |
INTENT(in) |
:: | lb_min | ... | |
INTEGER, |
INTENT(in) |
:: | lb_max | ... | |
INTEGER, |
INTENT(in) |
:: | lc_min | ... | |
INTEGER, |
INTENT(in) |
:: | lc_max | ... | |
REAL(dp), |
INTENT(in) |
:: | zeta | ... | |
REAL(dp), |
INTENT(in) |
:: | zetb | ... | |
REAL(dp), |
INTENT(in) |
:: | zetc | ... | |
REAL(dp), |
INTENT(in) |
:: | ra(3) | ... | |
REAL(dp), |
INTENT(in) |
:: | rb(3) | ... | |
REAL(dp), |
INTENT(in) |
:: | rc(3) | ... | |
REAL(dp), |
INTENT(inout) |
:: | habc(:,:,:) | ... | |
INTEGER, |
INTENT(in) |
:: | o1 | ... | |
INTEGER, |
INTENT(in) |
:: | o2 | ... | |
INTEGER, |
INTENT(in) |
:: | o3 | ... | |
INTEGER, |
INTENT(inout), |
OPTIONAL |
:: | gg_count | ... |
INTEGER, |
INTENT(inout), |
OPTIONAL |
:: | gr_count | ... |
INTEGER, |
INTENT(inout), |
OPTIONAL |
:: | rr_count | ... |
LOGICAL, |
INTENT(in), |
OPTIONAL |
:: | transp | ... |