## Documentation for module eri_mme_integrate

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

#### public Subroutines/Functions:

Low-level integration routine for 2-center ERIs.
Low-level integration routine for 3-center ERIs

#### SUBROUTINEeri_mme_2c_integrate(param, la_min, la_max, lb_min, lb_max, zeta, zetb, rab, hab, o1, o2, g_count, r_count, normalize, exact_method)^

Low-level integration routine for 2-center ERIs.

##### Arguments:
 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)

#### SUBROUTINEeri_mme_3c_integrate(param, la_min, la_max, lb_min, lb_max, lc_min, lc_max, zeta, zetb, zetc, ra, rb, rc, habc, o1, o2, o3, gg_count, gr_count, rr_count, transp)^

Low-level integration routine for 3-center ERIs

##### Arguments:
 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 ...