GBTOlib: library for evaluation of molecular integrals in mixed Gaussian / B-spline basis 111
Loading...
Searching...
No Matches
bto_gto_integrals_mod Module Reference

Functions/Subroutines

subroutine precalculate_Xlm_on_Lebedev_grid (l)
 Calculates the real spherical harmonics for all (l,m) combinations up to l=L on all available Lebedev grids. The values are stored in the module private array Xlm_Lebedev.
subroutine, public BTO_GTO_one_electron_integrals (cms_bto, cgto, nuclei, integrals)
 Calculates the one electron mixed integrals between the given shell of CGTOs and all BTOs. It is required that the first break point of the BTO grid lies radially behind the center of the CGTO. The nuclei that form the nuclear potential is also required to lie radially before the BTOs. The calculated integrals are output in the array integrals in the order: (BTO m,BTO l,BTO ind),(CGTO m),(integral type). The types of integrals calculated here are the following: overlap=1,kinetic energy=2,nuclear attraction=3,property (up to l=2)=4,...,12.
subroutine, public radial_grid_CGTO_pair (cgto_1, cgto_2, threshold, rmat_radius, x, w, n, n_rng_knot, r_points, weights, n_total_points, r_min, r_max)
 Determines the radial grid needed to describe, within the accuracy threshold, integrals involving the CGTO and the B-splines on the given grid. We assume that if the CGTO spanned the whole B-spline grid it would be sufficient to use the given quadrature rule (x,w,n) within each knot interval. For CGTOs whose radial extent is smaller than the range of the B-spline grid the number of quadrature points within each knot interval is expanded by the factor ceiling(n_int/R), where R is the extent of the CGTO (determined to coincide with the nearest larger knot) and n_int is the number of distinct intervals of knots in the B-spline basis.
subroutine, public BTO_GTO_two_el_BB_GG (cgto_shell_1, cgto_shell_2, cms_bto, integrals)
subroutine, public BTO_GTO_two_el_BG_GG (cgto_shell_1, cgto_shell_2, cms_bto, cgto_shell_3, integrals)
subroutine, public BTO_GTO_two_el_BG_BG (cgto_shell_1, cgto_shell_2, cms_bto, integrals)
subroutine, public omp_calculate_CGTO_pw_coefficients_analytic (max_l, cgto, r_points, angular_integrals)
 Calculates the partial wave expansion of CGTO up to partial wave L=max_l and on the grid of radial points r_points.
subroutine, public omp_calculate_CGTO_pair_pw_coefficients_analytic (max_l, cgto_a, cgto_b, r_points, angular_integrals)
 Calculates the partial wave expansion of a product of two CGTOs up to partial wave L=max_l and on the grid of radial points r_points.
subroutine, public calculate_Tl_matrix (bspline_sol, tl)
real(wp) function, public wp_eval_radial_free_bspline (data, x)
real(ep1) function, public ep_eval_radial_free_bspline (data, x)
subroutine, public solve_poisson_equation (bspline_sol, tl, source_term, r1, r2, r, w, n_total_points, max_l, l, a, b, bspline_cfs)
 Solves the Poission equation for a given angular momentum value (l) and for the source term evaluated on a given quadrature grid.
real(kind=cfp) function, public eval_Xlm_x_cgto_surface (this, x, y)
 Evaluates the product of CGTO and a real spherical harmonic at a given point in space. x,y are the spherical polar coordinates on the sphere.
subroutine, public calc_resh_coefficients (l)
subroutine, public calc_solh_coefficients (l)

Function/Subroutine Documentation

◆ BTO_GTO_one_electron_integrals()

subroutine, public bto_gto_integrals_mod::BTO_GTO_one_electron_integrals ( type(bto_data), intent(inout) cms_bto,
type(cgto_data), intent(inout) cgto,
type(nucleus_type), dimension(:), intent(in) nuclei,
real(kind=cfp), dimension(:,:,:), allocatable integrals )

Calculates the one electron mixed integrals between the given shell of CGTOs and all BTOs. It is required that the first break point of the BTO grid lies radially behind the center of the CGTO. The nuclei that form the nuclear potential is also required to lie radially before the BTOs. The calculated integrals are output in the array integrals in the order: (BTO m,BTO l,BTO ind),(CGTO m),(integral type). The types of integrals calculated here are the following: overlap=1,kinetic energy=2,nuclear attraction=3,property (up to l=2)=4,...,12.

Warning
The integrals are calculated for the whole basis of radial B-splines but the Bloch term is only added for r=cms_btoB.
Todo

make sure the integrals are calculated only for rad. b-splines starting from cms_btoind_0_der!!!!

this routine can be called only if the CGTO is indeed non-negligible on the BTO grid otherwise the routine radial_grid_CGTO will not work

Here is the call graph for this function:

◆ BTO_GTO_two_el_BB_GG()

subroutine, public bto_gto_integrals_mod::BTO_GTO_two_el_BB_GG ( type(cgto_data), intent(inout) cgto_shell_1,
type(cgto_data), intent(inout) cgto_shell_2,
type(bto_data), intent(inout) cms_bto,
real(kind=cfp), dimension(:), allocatable integrals )
Here is the call graph for this function:

◆ BTO_GTO_two_el_BG_BG()

subroutine, public bto_gto_integrals_mod::BTO_GTO_two_el_BG_BG ( type(cgto_data), intent(inout) cgto_shell_1,
type(cgto_data), intent(inout) cgto_shell_2,
type(bto_data), intent(inout) cms_bto,
real(kind=cfp), dimension(:), allocatable integrals )
Here is the call graph for this function:

◆ BTO_GTO_two_el_BG_GG()

subroutine, public bto_gto_integrals_mod::BTO_GTO_two_el_BG_GG ( type(cgto_data), intent(inout) cgto_shell_1,
type(cgto_data), intent(inout) cgto_shell_2,
type(bto_data), intent(inout) cms_bto,
type(cgto_data), intent(inout) cgto_shell_3,
real(kind=cfp), dimension(:), allocatable integrals )
Here is the call graph for this function:

◆ calc_resh_coefficients()

subroutine, public bto_gto_integrals_mod::calc_resh_coefficients ( integer, intent(in) l)
Here is the call graph for this function:

◆ calc_solh_coefficients()

subroutine, public bto_gto_integrals_mod::calc_solh_coefficients ( integer, intent(in) l)
Here is the call graph for this function:

◆ calculate_Tl_matrix()

subroutine, public bto_gto_integrals_mod::calculate_Tl_matrix ( type(bto_data), intent(inout) bspline_sol,
real(kind=cfp), dimension(:,:,:), allocatable tl )

◆ ep_eval_radial_free_bspline()

real(ep1) function, public bto_gto_integrals_mod::ep_eval_radial_free_bspline ( class(radial_free_bspline) data,
real(ep1), intent(in) x )

◆ eval_Xlm_x_cgto_surface()

real(kind=cfp) function, public bto_gto_integrals_mod::eval_Xlm_x_cgto_surface ( class(xlm_x_cgto_surface) this,
real(kind=cfp), intent(in) x,
real(kind=cfp), intent(in) y )

Evaluates the product of CGTO and a real spherical harmonic at a given point in space. x,y are the spherical polar coordinates on the sphere.

◆ omp_calculate_CGTO_pair_pw_coefficients_analytic()

subroutine, public bto_gto_integrals_mod::omp_calculate_CGTO_pair_pw_coefficients_analytic ( integer, intent(in) max_l,
type(cgto_data), intent(in) cgto_a,
type(cgto_data), intent(in) cgto_b,
real(kind=cfp), dimension(:), allocatable r_points,
real(kind=cfp), dimension(:,:,:,:), allocatable angular_integrals )

Calculates the partial wave expansion of a product of two CGTOs up to partial wave L=max_l and on the grid of radial points r_points.

Here is the call graph for this function:

◆ omp_calculate_CGTO_pw_coefficients_analytic()

subroutine, public bto_gto_integrals_mod::omp_calculate_CGTO_pw_coefficients_analytic ( integer, intent(in) max_l,
type(cgto_data), intent(in) cgto,
real(kind=cfp), dimension(:), allocatable r_points,
real(kind=cfp), dimension(:,:,:), allocatable angular_integrals )

Calculates the partial wave expansion of CGTO up to partial wave L=max_l and on the grid of radial points r_points.

◆ precalculate_Xlm_on_Lebedev_grid()

subroutine bto_gto_integrals_mod::precalculate_Xlm_on_Lebedev_grid ( integer, intent(in) l)

Calculates the real spherical harmonics for all (l,m) combinations up to l=L on all available Lebedev grids. The values are stored in the module private array Xlm_Lebedev.

◆ radial_grid_CGTO_pair()

subroutine, public bto_gto_integrals_mod::radial_grid_CGTO_pair ( type(cgto_data), intent(inout) cgto_1,
type(cgto_data), intent(inout) cgto_2,
real(kind=cfp), intent(in) threshold,
real(kind=cfp), intent(in) rmat_radius,
real(kind=cfp), dimension(2*n+1), intent(in) x,
real(kind=cfp), dimension(2*n+1), intent(in) w,
integer, intent(in) n,
integer, intent(in) n_rng_knot,
real(kind=cfp), dimension(:), allocatable r_points,
real(kind=cfp), dimension(:), allocatable weights,
integer, intent(out) n_total_points,
real(kind=cfp), intent(out) r_min,
real(kind=cfp), intent(out) r_max )

Determines the radial grid needed to describe, within the accuracy threshold, integrals involving the CGTO and the B-splines on the given grid. We assume that if the CGTO spanned the whole B-spline grid it would be sufficient to use the given quadrature rule (x,w,n) within each knot interval. For CGTOs whose radial extent is smaller than the range of the B-spline grid the number of quadrature points within each knot interval is expanded by the factor ceiling(n_int/R), where R is the extent of the CGTO (determined to coincide with the nearest larger knot) and n_int is the number of distinct intervals of knots in the B-spline basis.

◆ solve_poisson_equation()

subroutine, public bto_gto_integrals_mod::solve_poisson_equation ( type(bto_data), intent(inout) bspline_sol,
real(kind=cfp), dimension(bspline_sol%n,bspline_sol%n,0:max_l), intent(in) tl,
real(kind=cfp), dimension(n_total_points), intent(in) source_term,
real(kind=cfp), intent(in) r1,
real(kind=cfp), intent(in) r2,
real(kind=cfp), dimension(n_total_points), intent(in) r,
real(kind=cfp), dimension(n_total_points), intent(in) w,
integer, intent(in) n_total_points,
integer, intent(in) max_l,
integer, intent(in) l,
real(kind=cfp), intent(out) a,
real(kind=cfp), intent(out) b,
real(kind=cfp), dimension(bspline_sol%n,1), intent(out) bspline_cfs )

Solves the Poission equation for a given angular momentum value (l) and for the source term evaluated on a given quadrature grid.

◆ wp_eval_radial_free_bspline()

real(wp) function, public bto_gto_integrals_mod::wp_eval_radial_free_bspline ( class(radial_free_bspline) data,
real(wp), intent(in) x )