![]() |
(git:b77b4be)
|
Methods related to properties of Hermite and Cartesian Gaussian functions. More...
Functions/Subroutines | |
pure subroutine, public | create_hermite_to_cartesian (zet, l_max, h_to_c) |
Create matrix to transform between cartesian and hermite gaussian basis functions. | |
pure real(kind=dp) function, public | hermite_gauss_norm (zet, l) |
Norm of 1d Hermite-Gauss functions. | |
subroutine, public | get_minimax_coeff_v_gspace (n_minimax, cutoff, g_min, minimax_aw, potential, pot_par, err_minimax) |
Get minimax coefficient a_i and w_i for approximating 1/G^2 by sum_i w_i exp(-a_i G^2) | |
pure subroutine, public | create_gaussian_overlap_dist_to_hermite (l, m, a, b, r1, r2, h_or_c_product, e) |
Expand 1d product of cartesian (or hermite) gaussians into single hermite gaussians: Find E_t^{lm} s.t. F(l, a, r-R1) * F(m, b, r-R2) = sum_{t=0}^{l+m} E_t^{lm} H(t, p, r-R_P) with p = a + b, R_P = (a*R1 + b*R2)/p. The function F can be either Cartesian Gaussian or Hermite Gaussian. | |
Variables | |
integer, parameter, public | eri_mme_coulomb = 1 |
integer, parameter, public | eri_mme_yukawa = 2 |
integer, parameter, public | eri_mme_longrange = 3 |
Methods related to properties of Hermite and Cartesian Gaussian functions.
pure subroutine, public eri_mme_gaussian::create_hermite_to_cartesian | ( | real(kind=dp), intent(in) | zet, |
integer, intent(in) | l_max, | ||
real(kind=dp), dimension(:, :), intent(out), allocatable | h_to_c | ||
) |
Create matrix to transform between cartesian and hermite gaussian basis functions.
zet | exponent |
l_max | ... |
h_to_c | transformation matrix with dimensions (0:l_max, 0:l_max) |
Definition at line 50 of file eri_mme_gaussian.F.
pure real(kind=dp) function, public eri_mme_gaussian::hermite_gauss_norm | ( | real(kind=dp), intent(in) | zet, |
integer, dimension(3), intent(in) | l | ||
) |
Norm of 1d Hermite-Gauss functions.
zet | ... |
l | ... |
Definition at line 75 of file eri_mme_gaussian.F.
subroutine, public eri_mme_gaussian::get_minimax_coeff_v_gspace | ( | integer, intent(in) | n_minimax, |
real(kind=dp), intent(in) | cutoff, | ||
real(kind=dp), intent(in) | g_min, | ||
real(kind=dp), dimension(:), intent(out) | minimax_aw, | ||
integer, intent(in), optional | potential, | ||
real(kind=dp), intent(in), optional | pot_par, | ||
real(kind=dp), intent(out), optional | err_minimax | ||
) |
Get minimax coefficient a_i and w_i for approximating 1/G^2 by sum_i w_i exp(-a_i G^2)
n_minimax | Number of minimax terms |
cutoff | Plane Wave cutoff |
G_min | Minimum absolute value of G |
minimax_aw | Minimax coefficients a_i, w_i |
potential | potential to use. Accepts the following values: 1: coulomb potential V(r)=1/r 2: yukawa potential V(r)=e(-a*r)/r 3: long-range coulomb erf(a*r)/r |
pot_par | potential parameter a for yukawa V(r)=e(-a*r)/r or long-range coulomb V(r)=erf(a*r)/r |
err_minimax | Maximum error MAX (|1/G^2-\sum_i w_i exp(-a_i G^2)|) |
Definition at line 98 of file eri_mme_gaussian.F.
pure subroutine, public eri_mme_gaussian::create_gaussian_overlap_dist_to_hermite | ( | integer, intent(in) | l, |
integer, intent(in) | m, | ||
real(kind=dp), intent(in) | a, | ||
real(kind=dp), intent(in) | b, | ||
real(kind=dp), intent(in) | r1, | ||
real(kind=dp), intent(in) | r2, | ||
integer, intent(in) | h_or_c_product, | ||
real(kind=dp), dimension(-1:l+m+1, -1:l, -1:m), intent(out) | e | ||
) |
Expand 1d product of cartesian (or hermite) gaussians into single hermite gaussians: Find E_t^{lm} s.t. F(l, a, r-R1) * F(m, b, r-R2) = sum_{t=0}^{l+m} E_t^{lm} H(t, p, r-R_P) with p = a + b, R_P = (a*R1 + b*R2)/p. The function F can be either Cartesian Gaussian or Hermite Gaussian.
l | ... |
m | ... |
a | ... |
b | ... |
R1 | ... |
R2 | ... |
H_or_C_product | 1: cartesian product, 2: hermite product |
E | ... |
Definition at line 193 of file eri_mme_gaussian.F.
integer, parameter, public eri_mme_gaussian::eri_mme_coulomb = 1 |
Definition at line 29 of file eri_mme_gaussian.F.
integer, parameter, public eri_mme_gaussian::eri_mme_yukawa = 2 |
Definition at line 29 of file eri_mme_gaussian.F.
integer, parameter, public eri_mme_gaussian::eri_mme_longrange = 3 |
Definition at line 29 of file eri_mme_gaussian.F.