(git:3add494)
eri_mme_error_control Module Reference

Methods aiming for error estimate and automatic cutoff calibration. integrals. More...

Functions/Subroutines

subroutine, public calibrate_cutoff (hmat, h_inv, G_min, vol, zet_min, l_mm, zet_max, l_max_zet, n_minimax, cutoff_l, cutoff_r, tol, delta, cutoff, err_mm, err_c, C_mm, para_env, print_calib, unit_nr)
 Find optimal cutoff minimizing errors due to minimax approximation and due to finite cutoff using bisection on the difference of the errors. More...
 
subroutine, public cutoff_minimax_error (cutoff, hmat, h_inv, vol, G_min, zet_min, l_mm, zet_max, l_max_zet, n_minimax, minimax_aw, err_mm, err_ctff, C_mm, para_env)
 Compute upper bounds for the errors of 2-center ERI's (P|P) due to minimax approximation and due to finite cutoff, where P is a normalized Hermite Gaussian. More...
 
subroutine, public minimax_error (cutoff, hmat, vol, G_min, zet_min, l_mm, n_minimax, minimax_aw, err_mm, delta_mm, potential, pot_par)
 Minimax error, simple analytical formula Note minimax error may blow up for small exponents. This is also observed numerically, but in this case, error estimate is no upper bound. More...
 
subroutine, public cutoff_error (cutoff, h_inv, G_min, zet_max, l_max_zet, n_minimax, minimax_aw, err_ctff, C_mm, para_env)
 Cutoff error, estimating G > G_c part of Ewald sum by using C/3 * 1/(Gx^2*Gy^2*Gz^2)^1/3 as an upper bound for 1/G^2 (AM-GM inequality) and its minimax approximation (factor C). More...
 

Detailed Description

Methods aiming for error estimate and automatic cutoff calibration. integrals.

History
2015 09 created
Author
Patrick Seewald

Function/Subroutine Documentation

◆ calibrate_cutoff()

subroutine, public eri_mme_error_control::calibrate_cutoff ( real(kind=dp), dimension(3, 3), intent(in)  hmat,
real(kind=dp), dimension(3, 3), intent(in)  h_inv,
real(kind=dp), intent(in)  G_min,
real(kind=dp)  vol,
real(kind=dp), intent(in)  zet_min,
integer, intent(in)  l_mm,
real(kind=dp), intent(in)  zet_max,
integer, intent(in)  l_max_zet,
integer, intent(in)  n_minimax,
real(kind=dp), intent(in)  cutoff_l,
real(kind=dp), intent(in)  cutoff_r,
real(kind=dp), intent(in)  tol,
real(kind=dp), intent(in)  delta,
real(kind=dp), intent(out)  cutoff,
real(kind=dp), intent(out)  err_mm,
real(kind=dp), intent(out)  err_c,
real(kind=dp), intent(out)  C_mm,
type(mp_para_env_type), intent(in)  para_env,
logical, intent(in)  print_calib,
integer, intent(in)  unit_nr 
)

Find optimal cutoff minimizing errors due to minimax approximation and due to finite cutoff using bisection on the difference of the errors.

Parameters
hmat...
h_inv...
G_min...
vol...
zet_minMinimum exponent
l_mmTotal ang. mom. quantum number
zet_maxMax. exponents to estimate cutoff error
l_max_zetMax. total ang. mom. quantum numbers to estimate cutoff error
n_minimaxNumber of terms in minimax approximation
cutoff_lInitial guess of lower bound for cutoff
cutoff_rInitial guess of upper bound for cutoff
tolTolerance (cutoff precision)
deltato modify initial guess interval
cutoffBest cutoff
err_mmMinimax error
err_cCutoff error
C_mmScaling constant to generalize AM-GM upper bound estimate to minimax approx.
para_env...
print_calib...
unit_nr...

Definition at line 63 of file eri_mme_error_control.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cutoff_minimax_error()

subroutine, public eri_mme_error_control::cutoff_minimax_error ( real(kind=dp), intent(in)  cutoff,
real(kind=dp), dimension(3, 3), intent(in)  hmat,
real(kind=dp), dimension(3, 3), intent(in)  h_inv,
real(kind=dp), intent(in)  vol,
real(kind=dp), intent(in)  G_min,
real(kind=dp), intent(in)  zet_min,
integer, intent(in)  l_mm,
real(kind=dp), intent(in)  zet_max,
integer, intent(in)  l_max_zet,
integer, intent(in)  n_minimax,
real(kind=dp), dimension(:), intent(out)  minimax_aw,
real(kind=dp), intent(out)  err_mm,
real(kind=dp), intent(out)  err_ctff,
real(kind=dp), intent(out)  C_mm,
type(mp_para_env_type), intent(in)  para_env 
)

Compute upper bounds for the errors of 2-center ERI's (P|P) due to minimax approximation and due to finite cutoff, where P is a normalized Hermite Gaussian.

Parameters
cutoff...
hmat...
h_inv...
vol...
G_min...
zet_minExponent of P to estimate minimax error
l_mmtotal ang. mom. quantum number of P to estimate minimax error
zet_maxMax. exponents of P to estimate cutoff error
l_max_zetMax. total ang. mom. quantum numbers of P to estimate cutoff error
n_minimaxNumber of terms in minimax approximation
minimax_awMinimax coefficients
err_mmMinimax error
err_ctffCutoff error
C_mmScaling constant to generalize AM-GM upper bound estimate to minimax approx.
para_env...

Definition at line 202 of file eri_mme_error_control.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ minimax_error()

subroutine, public eri_mme_error_control::minimax_error ( real(kind=dp), intent(in)  cutoff,
real(kind=dp), dimension(3, 3), intent(in)  hmat,
real(kind=dp), intent(in)  vol,
real(kind=dp), intent(in)  G_min,
real(kind=dp), intent(in)  zet_min,
integer, intent(in)  l_mm,
integer, intent(in)  n_minimax,
real(kind=dp), dimension(:), intent(out)  minimax_aw,
real(kind=dp), intent(out)  err_mm,
real(kind=dp), intent(out)  delta_mm,
integer, intent(in), optional  potential,
real(kind=dp), intent(in), optional  pot_par 
)

Minimax error, simple analytical formula Note minimax error may blow up for small exponents. This is also observed numerically, but in this case, error estimate is no upper bound.

Parameters
cutoff...
hmat...
vol...
G_min...
zet_minExponent of P to estimate minimax error
l_mmtotal ang. mom. quantum number of P to estimate minimax error
n_minimaxNumber of terms in minimax approximation
minimax_awMinimax coefficients
err_mmMinimax error
delta_mm...
potential...
pot_par...

Definition at line 240 of file eri_mme_error_control.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cutoff_error()

subroutine, public eri_mme_error_control::cutoff_error ( real(kind=dp), intent(in)  cutoff,
real(kind=dp), dimension(3, 3), intent(in)  h_inv,
real(kind=dp), intent(in)  G_min,
real(kind=dp), intent(in)  zet_max,
integer, intent(in)  l_max_zet,
integer, intent(in)  n_minimax,
real(kind=dp), dimension(:), intent(inout)  minimax_aw,
real(kind=dp), intent(out)  err_ctff,
real(kind=dp), intent(out)  C_mm,
type(mp_para_env_type), intent(in)  para_env 
)

Cutoff error, estimating G > G_c part of Ewald sum by using C/3 * 1/(Gx^2*Gy^2*Gz^2)^1/3 as an upper bound for 1/G^2 (AM-GM inequality) and its minimax approximation (factor C).

Note: usually, minimax approx. falls off faster than 1/G**2, so C should be approximately 1. The error is calculated for all l up to l_max and golden section search algorithm is applied to find the exponent that maximizes cutoff error.

Parameters
cutoff...
h_inv...
G_min...
zet_maxMax. exponents of P to estimate cutoff error
l_max_zetMax. total ang. mom. quantum numbers of P to estimate cutoff error
n_minimaxNumber of terms in minimax approximation
minimax_awMinimax coefficients
err_ctffCutoff error
C_mmScaling constant to generalize AM-GM upper bound estimate to minimax approx.
para_env...

Definition at line 285 of file eri_mme_error_control.F.

Here is the call graph for this function:
Here is the caller graph for this function: