![]() |
(git:b77b4be)
|
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. | |
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. | |
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. | |
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). | |
Methods aiming for error estimate and automatic cutoff calibration. integrals.
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.
hmat | ... |
h_inv | ... |
G_min | ... |
vol | ... |
zet_min | Minimum exponent |
l_mm | Total ang. mom. quantum number |
zet_max | Max. exponents to estimate cutoff error |
l_max_zet | Max. total ang. mom. quantum numbers to estimate cutoff error |
n_minimax | Number of terms in minimax approximation |
cutoff_l | Initial guess of lower bound for cutoff |
cutoff_r | Initial guess of upper bound for cutoff |
tol | Tolerance (cutoff precision) |
delta | to modify initial guess interval |
cutoff | Best cutoff |
err_mm | Minimax error |
err_c | Cutoff error |
C_mm | Scaling 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.
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.
cutoff | ... |
hmat | ... |
h_inv | ... |
vol | ... |
G_min | ... |
zet_min | Exponent of P to estimate minimax error |
l_mm | total ang. mom. quantum number of P to estimate minimax error |
zet_max | Max. exponents of P to estimate cutoff error |
l_max_zet | Max. total ang. mom. quantum numbers of P to estimate cutoff error |
n_minimax | Number of terms in minimax approximation |
minimax_aw | Minimax coefficients |
err_mm | Minimax error |
err_ctff | Cutoff error |
C_mm | Scaling constant to generalize AM-GM upper bound estimate to minimax approx. |
para_env | ... |
Definition at line 202 of file eri_mme_error_control.F.
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.
cutoff | ... |
hmat | ... |
vol | ... |
G_min | ... |
zet_min | Exponent of P to estimate minimax error |
l_mm | total ang. mom. quantum number of P to estimate minimax error |
n_minimax | Number of terms in minimax approximation |
minimax_aw | Minimax coefficients |
err_mm | Minimax error |
delta_mm | ... |
potential | ... |
pot_par | ... |
Definition at line 240 of file eri_mme_error_control.F.
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.
cutoff | ... |
h_inv | ... |
G_min | ... |
zet_max | Max. exponents of P to estimate cutoff error |
l_max_zet | Max. total ang. mom. quantum numbers of P to estimate cutoff error |
n_minimax | Number of terms in minimax approximation |
minimax_aw | Minimax coefficients |
err_ctff | Cutoff error |
C_mm | Scaling constant to generalize AM-GM upper bound estimate to minimax approx. |
para_env | ... |
Definition at line 285 of file eri_mme_error_control.F.