(git:374b731)
Loading...
Searching...
No Matches
eri_mme_lattice_summation.F File Reference

Go to the source code of this file.

Modules

module  eri_mme_lattice_summation
 Ewald sums to represent integrals in direct and reciprocal lattice.
 

Functions/Subroutines

subroutine, public eri_mme_lattice_summation::eri_mme_2c_get_rads (la_max, lb_max, zeta, zetb, a_mm, g_min, r_min, sum_precision, g_rad, r_rad)
 Get summation radii for 2c integrals.
 
subroutine, public eri_mme_lattice_summation::eri_mme_3c_get_rads (la_max, lb_max, lc_max, zeta, zetb, zetc, a_mm, g_min, r_min, sum_precision, g_rads_1, r_rads_2, r_rads_3)
 Get summation radii for 3c integrals.
 
subroutine, public eri_mme_lattice_summation::eri_mme_2c_get_bounds (hmat, h_inv, vol, is_ortho, g_min, r_min, la_max, lb_max, zeta, zetb, a_mm, sum_precision, n_sum_1d, n_sum_3d, g_bounds, g_rad, r_bounds, r_rad)
 Get summation bounds for 2c integrals.
 
subroutine, public eri_mme_lattice_summation::eri_mme_3c_get_bounds (hmat, h_inv, vol, is_ortho, g_min, r_min, la_max, lb_max, lc_max, zeta, zetb, zetc, a_mm, sum_precision, n_sum_1d, n_sum_3d, g_bounds_1, g_rads_1, r_bounds_2, r_rads_2, r_bounds_3, r_rads_3)
 Get summation bounds for 3c integrals.
 
pure subroutine, public eri_mme_lattice_summation::pgf_sum_2c_gspace_1d (s_g, r, alpha, inv_lgth, g_c)
 Compute Ewald-like sum for 2-center ERIs in G space in 1 dimension S_G(l, alpha) = (-i)^l*inv_lgth*sum_G( C(l, alpha, G) exp(iGR) ), with C(l, alpha, r) = r^l exp(-alpha*r^2), dG = inv_lgth*twopi and G = -G_bound*dG, (-G_bound + 1)*dG, ..., G_bound*dG for all l < = l_max.
 
pure subroutine, public eri_mme_lattice_summation::pgf_sum_2c_gspace_3d (s_g, l_max, r, alpha, h_inv, g_c, g_rad, vol, potential, pot_par)
 As pgf_sum_2c_gspace_1d but 3d sum required for non-orthorhombic cells.
 
pure subroutine, public eri_mme_lattice_summation::pgf_sum_2c_rspace_1d (s_r, r, alpha, lgth, r_c)
 Compute Ewald-like sum for 2-center ERIs in R space in 1 dimension S_R(l, alpha) = SQRT(alpha/pi) sum_R'( H(l, alpha, R-R') ), with H(l, alpha, R) = (-d/dR)^l exp(-alpha*R^2), dR = lgth and R' = -R_min*dR, (-R_min + 1)*dR, ..., R_max*dR, for all l < = l_max.
 
pure subroutine, public eri_mme_lattice_summation::pgf_sum_2c_rspace_3d (s_r, l_max, r, alpha, hmat, h_inv, r_c, r_rad)
 As pgf_sum_2c_rspace_1d but 3d sum required for non-orthorhombic cells.
 
pure subroutine, public eri_mme_lattice_summation::pgf_sum_2c_gspace_1d_deltal (s_g, alpha, inv_lgth, g_min, g_c, delta_l, prefactor)
 Compute 1d sum S_G(l, alpha) = inv_lgth*sum_G( C(l, alpha, delta_l, G) ) with C(l, alpha, delta_l, G) = prefactor*|G|^(l-delta_l) exp(-alpha*G^2) if G not equal 0 C(l = 0, alpha, delta_l, 0) = 1, C(l>0, alpha, delta_l, 0) = 0 dG = inv_lgth*twopi and G = -G_bound*dG, (-G_bound + 1)*dG, ..., G_bound*dG for all l < = l_max.
 
subroutine, public eri_mme_lattice_summation::pgf_sum_3c_1d (s_g, ra, rb, rc, zeta, zetb, zetc, a_mm, lgth, r_bounds_3)
 Compute Ewald-like sum for 3-center integrals in 1 dimension S_G(l, m, n, alpha, beta, gamma) = i^(l+m+n)*(-1)^(l+m)*inv_lgth^2* sum_G sum_G'( exp(i G R1) C(l,alpha,G) C(m,beta,G'-G) C(n,gamma,G') exp(i G' R2) ) for all l < = l_max, m <= m_max, n <= n_max. a_mm is the minimax exponent. alpha = 1/(4 zeta), beta = 1/(4 zetb), gamma = 1/(4 zetc) + a_mm R1 = RB-RA; R2 = RC-RB Note on method / order arguments: Three equivalent methods (Poisson summation) to compute this sum over Cartesian Gaussians C or Hermite Gaussians H and reciprocal lattice vectors G or direct lattice vectors R:
 
subroutine, public eri_mme_lattice_summation::pgf_sum_3c_3d (s_g, la_max, lb_max, lc_max, ra, rb, rc, zeta, zetb, zetc, a_mm, hmat, h_inv, vol, g_bounds_1, r_bounds_2, r_bounds_3, g_rads_1, r_rads_2, r_rads_3, method, method_out, order)
 As pgf_sum_3c_1d but 3d sum required for non-orthorhombic cells.
 
pure real(kind=dp) function, dimension(3), public eri_mme_lattice_summation::ellipsoid_bounds (s_rad, s_to_e)
 Compute bounding box for ellipsoid. This is needed in order to find summation bounds for sphere for sums over non-orthogonal lattice vectors.
 
pure elemental subroutine, public eri_mme_lattice_summation::get_l (lco, l, lx, ly, lz)
 ...