GBTOlib: library for evaluation of molecular integrals in mixed Gaussian / B-spline basis  111
Public Member Functions | List of all members
gto_routines_gbl::boys_function_obj Type Reference

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

Detailed Description

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.

Member Function/Subroutine Documentation

◆ eval()

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). \]

Parameters
[in]TReal value corresponding to T in \(F_{m}(T)\).
[in]mmaxInteger 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}\).
Warning
It is vital for calculation of the two electron integrals that the Boys function is calculated as accurately as possible since it is used to start the recurrent evaluation of the integrals. It is important to understand that the limits on the maximum GTO L used are connected with the precision of calculation of the corresponding Boys functions. Given the largest GTO L in the basis the largest required mmax is 4L. The parameters involved in the calculation of the Boys function (see the module const) have been tuned for the case L_max=6, i.e. mmax=24.

◆ eval_taylor()

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.

◆ final()

procedure gto_routines_gbl::boys_function_obj::final

Deallocates the array fac_terms and resets the values of imax and mmax.

Here is the call graph for this function:

◆ init()

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.


The documentation for this type was generated from the following file: