GBTOlib: library for evaluation of molecular integrals in mixed Gaussian / B-spline basis  111
Variables
const Module Reference

Variables

integer, parameter stdout = 6
 unit for standard output More...
 
integer, parameter stdin = 5
 unit for standard input More...
 
integer, parameter line_len = 132
 length of one line More...
 
integer, parameter len_ufmat = 11
 
character(len_ufmat-2), parameter fmat = 'formatted'
 
character(len_ufmat), parameter ufmat = 'unformatted'
 
character(len=19), parameter no_header = 'No header specified'
 Default character string used for the int_input_outputheader variable. More...
 
character(len= *), parameter cgto_overlap_kinetic_ints = 'Overlap and kinetic energy integrals for contracted spherical GTOs'
 Character parameters used by the method l_mol_basismolecular_integrals to identify the type of molecular integral requested. These headers are used by the user to request the specific integral. More...
 
character(len= *), parameter cgto_cgto_two_el_ints = 'Two-electron integrals for contracted spherical GTOs'
 
character(len= *), parameter bto_overlap_kinetic_ints = 'Overlap and kinetic energy integrals for BTOs'
 
character(len= *), parameter cgto_bto_overlap_kinetic_ints = 'Overlap and kinetic energy integrals between contracted spherical GTOs and BTOs'
 
character(len= *), parameter cgto_cgto_bloch_terms = 'Matrix elements of the Bloch operator between contracted spherical CMS GTOs'
 
character(len= *), parameter cgto_bto_bloch_terms = 'Matrix elements of the Bloch operator between BTOs and contracted spherical CMS GTOs'
 
character(len= *), parameter bto_bto_bloch_terms = 'Matrix elements of the Bloch operator between BTOs'
 
integer, parameter tf_max_l = 6
 translation_formula_obj: maximum principal quantum number for which we have the translation formulas. This is constant is also used as a maximum GTO L value in all integral calculations. More...
 
integer, parameter tf_max_m = 6
 translation_formula_obj: maximum azimuthal quantum number (corresponding to tf_max_l) for which we have the translation formulas. More...
 
integer, parameter tf_max_n = 36
 translation_formula_obj: number of terms in the longest translation formula from the ones that are included in translation_formula_obj More...
 
integer, parameter max_contr_len = 10
 Maximum allowed number of contraction coefficients defining the contracted GTO function. This parameter can be increased/decreased as needed. It is used throught the program to define dimensions of some arrays. More...
 
real(kind=wp), parameter boys_tol_dprec = epsilon(1.0_wp)
 Convergence parameter for the calculation of the Boys function using boys_function. The convergence is chosen as the machine epsilon for double precision reals. More...
 
integer, parameter boys_maxi_dprec = 140
 Empirically found value for the largest power of T required to calculate the Boys function \(F_{m}(T)\) for \(T=0,\dots,60\) with the accuracy epsilon(1.0_wp). More...
 
real(kind=wp), parameter boys_tol_qprec = epsilon(1.0_ep1)
 Convergence parameter for the calculation of the Boys function using boys_function_quad. The convergence is chosen as the machine epsilon for quad precision reals. More...
 
real(kind=wp), parameter boys_f_dprec_asym_thr = 60.0_wp
 The Boys function calculated using the routine boys_function will be calculated using the asymptotic expansion if the input parameter T is .ge. this value. Note that this value was determined using Mathematica assuming tf_max_l = 6, i.e. mmax = 24 (see boys_function for details). For T=85 and mmax=24 the error in using the asymptotic expansion is not greater than ~3.10^-15. For T=60 the values of the Boys function for m .ge. 12 are .le. 10^{-16}. For m = 12 the relative precision of the asymptotic formula is ~10^{-14}. Therefore for T > 60 and double precision we can safely calculate the Boys function using the asymptotic expansion. It is also important to note that for T=60 the full numerical evaluation involving series fails in double precision for large mmax. Therefore increasing boys_f_dprec_asym_thr beyond 60 cannot go without modifying boys_function to branch into boys_function_quad for T>60 .and. T<boys_f_dprec_asym_thr in order to avoid numerical errors in this range of T. In general the larger the tf_max_l the larger the value of boys_f_dprec_asym_thr. Clearly, the numerical stability of boys_function effectively determines the limit on the largest GTO L in the basis: if large L are needed then boys_function_quad must be used (for certain range of T values) which is also much slower than boys_function. More...
 
real(kind=wp), parameter boys_f_qprec_asym_thr = 140.0_wp
 See comment for boys_f_dprec_asym_thr. This value is the threshold for the use of the asymptotic expansion in the quadruple precision function boys_function_quad (assuming mmax=24). For T=140 the asymptotic formula gives results accurate to full quadruple precision. More...
 
real(kind=wp), parameter int_rel_prec = 10d-10
 Molecular integrals with relative precision last than or equal to this value will trigger an error. This parameter is used only as a default in integral_optionsprec, so this parameter can be effectively adjusted on run-time. More...
 
real(kind=wp), parameter int_del_thr = 10d-11
 Molecular integrals (contracted) smaller than this value will be neglected. Similarly to int_rel_prec this value is used only as a sensible default in integral_optionstol. More...
 
real(kind=wp), parameter thrs_symm_ortho = 10d-6
 Maximum allowed value for a cross overlap of two orbitals after the symmetric orthogonalization has been performed. More...
 
real(kind=wp), parameter thrs_gs_ortho = 10d-10
 Maximum allowed value for a cross overlap of two orbitals after the Gramm-Schmidt orthogonalization has been performed. More...
 
real(kind=wp), parameter thrs_cf_sym_ortho_trans = 10d-10
 Coefficients in the transformation matrix for the symmetric orthogonalization smaller than this value will be neglected. More...
 
real(kind=wp), parameter thrs_lin_dep_gs_ortho = 10d-7
 Threshold value for self-overlap of an orbital (before normalization) using during the Gramm-Schmidt orthogonalization. If an orbital has a self-overlap (before normalization) smaller than this value then we assume that linear dependency in the orbital basis is present. In other words we decide that self-overlaps smaller than this value would lead to numerical problems. More...
 
real(kind=wp), parameter epsabs = 10d-10
 Absolute precision for the numerical quadrature routine dqags. More...
 
real(kind=wp), parameter epsrel = 10d-10
 Relative precision for the numerical quadrature routine dqags. More...
 
integer, parameter limit = 1000
 Determines the maximum number of subintervals in the partition of the given integration interval in dqags. More...
 
integer, parameter lenw = 4*LIMIT
 Dimensioning parameter for dqags. More...
 
integer, parameter c1_id = 1
 Numerical identifier of the C1 point group-symmetry. More...
 
integer, parameter cs_id = 2
 Numerical identifier of the Cs point group-symmetry. More...
 
integer, parameter c2_id = 3
 Numerical identifier of the C2 point group-symmetry. More...
 
integer, parameter ci_id = 4
 Numerical identifier of the Ci point group-symmetry. More...
 
integer, parameter c2v_id = 5
 Numerical identifier of the C2v point group-symmetry. More...
 
integer, parameter c2h_id = 6
 Numerical identifier of the C2h point group-symmetry. More...
 
integer, parameter d2_id = 7
 Numerical identifier of the D2 point group-symmetry. More...
 
integer, parameter d2h_id = 8
 Numerical identifier of the D2h point group-symmetry. More...
 
integer, parameter nuc_nam_len = 2
 Length of the character variable 'name' in the nucleus_type object. More...
 
integer, parameter sym_op_nam_len = 3
 Length of the character variable sym_op specifying the symmetry operation in the geometry_obj object. More...
 

Variable Documentation

◆ boys_f_dprec_asym_thr

real(kind=wp), parameter const::boys_f_dprec_asym_thr = 60.0_wp

The Boys function calculated using the routine boys_function will be calculated using the asymptotic expansion if the input parameter T is .ge. this value. Note that this value was determined using Mathematica assuming tf_max_l = 6, i.e. mmax = 24 (see boys_function for details). For T=85 and mmax=24 the error in using the asymptotic expansion is not greater than ~3.10^-15. For T=60 the values of the Boys function for m .ge. 12 are .le. 10^{-16}. For m = 12 the relative precision of the asymptotic formula is ~10^{-14}. Therefore for T > 60 and double precision we can safely calculate the Boys function using the asymptotic expansion. It is also important to note that for T=60 the full numerical evaluation involving series fails in double precision for large mmax. Therefore increasing boys_f_dprec_asym_thr beyond 60 cannot go without modifying boys_function to branch into boys_function_quad for T>60 .and. T<boys_f_dprec_asym_thr in order to avoid numerical errors in this range of T. In general the larger the tf_max_l the larger the value of boys_f_dprec_asym_thr. Clearly, the numerical stability of boys_function effectively determines the limit on the largest GTO L in the basis: if large L are needed then boys_function_quad must be used (for certain range of T values) which is also much slower than boys_function.

◆ boys_f_qprec_asym_thr

real(kind=wp), parameter const::boys_f_qprec_asym_thr = 140.0_wp

See comment for boys_f_dprec_asym_thr. This value is the threshold for the use of the asymptotic expansion in the quadruple precision function boys_function_quad (assuming mmax=24). For T=140 the asymptotic formula gives results accurate to full quadruple precision.

◆ boys_maxi_dprec

integer, parameter const::boys_maxi_dprec = 140

Empirically found value for the largest power of T required to calculate the Boys function \(F_{m}(T)\) for \(T=0,\dots,60\) with the accuracy epsilon(1.0_wp).

◆ boys_tol_dprec

real(kind=wp), parameter const::boys_tol_dprec = epsilon(1.0_wp)

Convergence parameter for the calculation of the Boys function using boys_function. The convergence is chosen as the machine epsilon for double precision reals.

◆ boys_tol_qprec

real(kind=wp), parameter const::boys_tol_qprec = epsilon(1.0_ep1)

Convergence parameter for the calculation of the Boys function using boys_function_quad. The convergence is chosen as the machine epsilon for quad precision reals.

◆ bto_bto_bloch_terms

character(len=*), parameter const::bto_bto_bloch_terms = 'Matrix elements of the Bloch operator between BTOs'

◆ bto_overlap_kinetic_ints

character(len=*), parameter const::bto_overlap_kinetic_ints = 'Overlap and kinetic energy integrals for BTOs'

◆ c1_id

integer, parameter const::c1_id = 1

Numerical identifier of the C1 point group-symmetry.

◆ c2_id

integer, parameter const::c2_id = 3

Numerical identifier of the C2 point group-symmetry.

◆ c2h_id

integer, parameter const::c2h_id = 6

Numerical identifier of the C2h point group-symmetry.

◆ c2v_id

integer, parameter const::c2v_id = 5

Numerical identifier of the C2v point group-symmetry.

◆ cgto_bto_bloch_terms

character(len=*), parameter const::cgto_bto_bloch_terms = 'Matrix elements of the Bloch operator between BTOs and contracted spherical CMS GTOs'

◆ cgto_bto_overlap_kinetic_ints

character(len=*), parameter const::cgto_bto_overlap_kinetic_ints = 'Overlap and kinetic energy integrals between contracted spherical GTOs and BTOs'

◆ cgto_cgto_bloch_terms

character(len=*), parameter const::cgto_cgto_bloch_terms = 'Matrix elements of the Bloch operator between contracted spherical CMS GTOs'

◆ cgto_cgto_two_el_ints

character(len=*), parameter const::cgto_cgto_two_el_ints = 'Two-electron integrals for contracted spherical GTOs'

◆ cgto_overlap_kinetic_ints

character(len=*), parameter const::cgto_overlap_kinetic_ints = 'Overlap and kinetic energy integrals for contracted spherical GTOs'

Character parameters used by the method l_mol_basismolecular_integrals to identify the type of molecular integral requested. These headers are used by the user to request the specific integral.

◆ ci_id

integer, parameter const::ci_id = 4

Numerical identifier of the Ci point group-symmetry.

◆ cs_id

integer, parameter const::cs_id = 2

Numerical identifier of the Cs point group-symmetry.

◆ d2_id

integer, parameter const::d2_id = 7

Numerical identifier of the D2 point group-symmetry.

◆ d2h_id

integer, parameter const::d2h_id = 8

Numerical identifier of the D2h point group-symmetry.

◆ epsabs

real(kind=wp), parameter const::epsabs = 10d-10

Absolute precision for the numerical quadrature routine dqags.

◆ epsrel

real(kind=wp), parameter const::epsrel = 10d-10

Relative precision for the numerical quadrature routine dqags.

◆ fmat

character(len_ufmat-2), parameter const::fmat = 'formatted'

◆ int_del_thr

real(kind=wp), parameter const::int_del_thr = 10d-11

Molecular integrals (contracted) smaller than this value will be neglected. Similarly to int_rel_prec this value is used only as a sensible default in integral_optionstol.

◆ int_rel_prec

real(kind=wp), parameter const::int_rel_prec = 10d-10

Molecular integrals with relative precision last than or equal to this value will trigger an error. This parameter is used only as a default in integral_optionsprec, so this parameter can be effectively adjusted on run-time.

Warning
Not all integral calculation routines are necessarily using this parameter.

◆ len_ufmat

integer, parameter const::len_ufmat = 11

◆ lenw

integer, parameter const::lenw = 4*LIMIT

Dimensioning parameter for dqags.

◆ limit

integer, parameter const::limit = 1000

Determines the maximum number of subintervals in the partition of the given integration interval in dqags.

◆ line_len

integer, parameter const::line_len = 132

length of one line

◆ max_contr_len

integer, parameter const::max_contr_len = 10

Maximum allowed number of contraction coefficients defining the contracted GTO function. This parameter can be increased/decreased as needed. It is used throught the program to define dimensions of some arrays.

◆ no_header

character(len=19), parameter const::no_header = 'No header specified'

Default character string used for the int_input_outputheader variable.

◆ nuc_nam_len

integer, parameter const::nuc_nam_len = 2

Length of the character variable 'name' in the nucleus_type object.

◆ stdin

integer, parameter const::stdin = 5

unit for standard input

◆ stdout

integer, parameter const::stdout = 6

unit for standard output

◆ sym_op_nam_len

integer, parameter const::sym_op_nam_len = 3

Length of the character variable sym_op specifying the symmetry operation in the geometry_obj object.

◆ tf_max_l

integer, parameter const::tf_max_l = 6

translation_formula_obj: maximum principal quantum number for which we have the translation formulas. This is constant is also used as a maximum GTO L value in all integral calculations.

Warning
This parameter is related to the parameters of the Boys function (see boys_function). Therefore any change in this parameter must be followed by thorough tests of accuracy of evaluation of the Boys function and changes to the related parameters (also see below).

◆ tf_max_m

integer, parameter const::tf_max_m = 6

translation_formula_obj: maximum azimuthal quantum number (corresponding to tf_max_l) for which we have the translation formulas.

◆ tf_max_n

integer, parameter const::tf_max_n = 36

translation_formula_obj: number of terms in the longest translation formula from the ones that are included in translation_formula_obj

◆ thrs_cf_sym_ortho_trans

real(kind=wp), parameter const::thrs_cf_sym_ortho_trans = 10d-10

Coefficients in the transformation matrix for the symmetric orthogonalization smaller than this value will be neglected.

◆ thrs_gs_ortho

real(kind=wp), parameter const::thrs_gs_ortho = 10d-10

Maximum allowed value for a cross overlap of two orbitals after the Gramm-Schmidt orthogonalization has been performed.

◆ thrs_lin_dep_gs_ortho

real(kind=wp), parameter const::thrs_lin_dep_gs_ortho = 10d-7

Threshold value for self-overlap of an orbital (before normalization) using during the Gramm-Schmidt orthogonalization. If an orbital has a self-overlap (before normalization) smaller than this value then we assume that linear dependency in the orbital basis is present. In other words we decide that self-overlaps smaller than this value would lead to numerical problems.

◆ thrs_symm_ortho

real(kind=wp), parameter const::thrs_symm_ortho = 10d-6

Maximum allowed value for a cross overlap of two orbitals after the symmetric orthogonalization has been performed.

Warning
This value should be actually equal to the threshold value for the integrals.

◆ ufmat

character(len_ufmat), parameter const::ufmat = 'unformatted'