(git:b195825)
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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: More...
 
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. More...
 
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. More...
 
pure elemental subroutine, public eri_mme_lattice_summation::get_l (lco, l, lx, ly, lz)
 ... More...