Documentation for module eri_mme_gaussian

Methods related to properties of Hermite and Cartesian Gaussian functions.

source: eri_mme_gaussian.F
Loading...

public Subroutines/Functions:

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.
Create matrix to transform between cartesian and hermite gaussian basis functions.
Get minimax coefficient a_i and w_i for approximating 1/G^2 by sum_i w_i exp(-a_i G^2)
FUNCTION
REAL(dp) PURE
hermite_gauss_norm (zet, l)
Norm of 1d Hermite-Gauss functions

PURE SUBROUTINEcreate_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.

Arguments:
INTEGER,
INTENT(in)
:: l ...
INTEGER,
INTENT(in)
:: m ...
REAL(dp),
INTENT(in)
:: a ...
REAL(dp),
INTENT(in)
:: b ...
REAL(dp),
INTENT(in)
:: r1 ...
REAL(dp),
INTENT(in)
:: r2 ...
INTEGER,
INTENT(in)
:: h_or_c_product 1: cartesian product, 2: hermite product
REAL(dp),
INTENT(out)
:: e(-1:l+m+1,-1:l,-1:m) ...

PURE SUBROUTINEcreate_hermite_to_cartesian(zet, l_max, h_to_c)

Create matrix to transform between cartesian and hermite gaussian basis functions.

Arguments:
REAL(dp),
INTENT(in)
:: zet exponent
INTEGER,
INTENT(in)
:: l_max ...
REAL(dp),
INTENT(out),
ALLOCATABLE
:: h_to_c(:,:) transformation matrix with dimensions (0:l_max, 0:l_max)

SUBROUTINEget_minimax_coeff_v_gspace(n_minimax, cutoff, g_min, minimax_aw, 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)

Arguments:
INTEGER,
INTENT(in)
:: n_minimax Number of minimax terms
REAL(dp),
INTENT(in)
:: cutoff Plane Wave cutoff
REAL(dp),
INTENT(in)
:: g_min Minimum absolute value of G
REAL(dp),
INTENT(out)
:: minimax_aw(:) Minimax coefficients a_i, w_i
REAL(dp),
INTENT(out),
OPTIONAL
:: err_minimax Maximum error MAX (|1/G^2-\sum_i w_i exp(-a_i G^2)|)

PURE FUNCTIONhermite_gauss_norm(zet, l)

Norm of 1d Hermite-Gauss functions

Return Value ::
REAL(dp)
Arguments:
REAL(dp),
INTENT(in)
:: zet ...
INTEGER,
INTENT(in)
:: l(3) ...