GBTOlib: library for evaluation of molecular integrals in mixed Gaussian / B-spline basis
111
|
This object contains routines for evaluation of the Boys function in double precision. The object must be first initialized using the method init and its argument values imax and mmax. imax corresponds to the largest power in series expansion of the Boys function that is needed to evaluate the Boys function in the expected range of T values. For T in the range 0,60 the value of imax has been determined to be 140. The routine eval then calculates at once the string of Boys functions for a range of m values. More...
Public Member Functions | |
procedure | init => init_boys |
Calculates the values fac_terms for the i and m values whose range is determined by the arguments imax and mmax. Also, the Boys function is precalculated for the number of values given by grid_len. More... | |
procedure | eval => eval_boys_function |
Returns the string of Boys functions \(F_{m}(T)\) for \(m=0,\dots,m_{max}\). More... | |
procedure | eval_taylor => eval_boys_function_taylor |
Uses the combination of the Taylor expansion and the Horner scheme for polynomial evaluation and the asymptotic expansion to obtain the value of the Boys function. This routine becomes available following the initialization which determines the order of the Taylor expansion and the density of the tabulated grid of values of the Boys function. More... | |
procedure | final => final_boys |
Deallocates the array fac_terms and resets the values of imax and mmax. More... | |
This object contains routines for evaluation of the Boys function in double precision. The object must be first initialized using the method init and its argument values imax and mmax. imax corresponds to the largest power in series expansion of the Boys function that is needed to evaluate the Boys function in the expected range of T values. For T in the range 0,60 the value of imax has been determined to be 140. The routine eval then calculates at once the string of Boys functions for a range of m values.
procedure gto_routines_gbl::boys_function_obj::eval |
Returns the string of Boys functions \(F_{m}(T)\) for \(m=0,\dots,m_{max}\).
\[ F_{m}(T) = \int_{0}^{1}x^{2m}\exp[-Tx^2]dx. \]
The result is a double precision array boys_function(1:mmax+1) containing the value of the Boys function for \(m=0,\dots,m_{max}\). The Boys function is calculated first for \(m = m_{max}\) using the series expansion:
\[ F_{m}(T) = \exp[-T]\sum_{i=0}^{\infty}\frac{(2m-1)!!(2T)^{i}}{(2m+2i+1)!!} \]
and then for \(m = m_{max}-1,\dots,0\) using the recurrence:
\[ F_{m}(T) = \frac{2TF_{m+1}(T)+\exp[-T]}{2m+1}. \]
For T > 60 we use the asymptotic formula for the Boys function:
\[ F_{m}(T) \approx \frac{1}{2T^{m+1/2}}\Gamma(m+1/2). \]
[in] | T | Real value corresponding to T in \(F_{m}(T)\). |
[in] | mmax | Integer value corresponding to \(m_{max}\) in \(F_{m}(T)\), \(m=0,\dots,m_{max}\). boys_function Double precision array boys_function(1:mmax+1) containing the values: \(F_{m}(T)\), \(m=0,\dots,m_{max}\). |
procedure gto_routines_gbl::boys_function_obj::eval_taylor |
Uses the combination of the Taylor expansion and the Horner scheme for polynomial evaluation and the asymptotic expansion to obtain the value of the Boys function. This routine becomes available following the initialization which determines the order of the Taylor expansion and the density of the tabulated grid of values of the Boys function.
procedure gto_routines_gbl::boys_function_obj::final |
Deallocates the array fac_terms and resets the values of imax and mmax.
procedure gto_routines_gbl::boys_function_obj::init |
Calculates the values fac_terms for the i and m values whose range is determined by the arguments imax and mmax. Also, the Boys function is precalculated for the number of values given by grid_len.