GBTOlib: library for evaluation of molecular integrals in mixed Gaussian / B-spline basis
111
|
Functions/Subroutines | |
subroutine, public | init_CGTO_pw_expansions_mod (inp_max_l_pw, max_l_cgto) |
subroutine, public | init_dbg (bspline_grid) |
USED ONLY FOR DEBUGGING. More... | |
subroutine | construct_radial_grid (this, inp_bspline_grid, first_bspline_index, nuclei, delta_r1, x, w, n, n_rng_knot) |
subroutine | final (this) |
subroutine | construct_GK_angular_grid (this, n_div, r, w1, n_points) |
subroutine | eval_Xlm_on_lebedev_grid (this, n) |
subroutine | eval_Y_l_BTO_BTO (this) |
subroutine | eval_regular_grid (this, A, B, delta_r) |
subroutine | eval_exponential_grid (this, alp, n) |
Exponential grid on [0,1] with points accumulating towards 1. More... | |
subroutine | assign_grid (this, r_points, weights) |
subroutine | write_CGTO_shell_pw_expansion_obj (this) |
subroutine | eval_BTO_CGTO_Y_lm (this, grid_r1_r2) |
subroutine | write_Y_lm_to_file (this, scratch_directory) |
subroutine | expand_pw_in_bsplines (this, grid_r1_r2, cgto_m, lm) |
subroutine | eval_coulomb_integrals (this, grid_r1_r2) |
subroutine | eval_radial_GG_BB (this, grid_r1_r2) |
Calculates the radial integral 2-electron integrals between all pairs of BTOs and all partial waves of the GG pair. More... | |
subroutine | eval_CGTO_pair_radial_grid (this, a, x, w, n) |
subroutine | eval_CGTO_radial_grid (this, only_on_bto_grid, grid_r1_r2, delta_r1, x, w, n, n_rng_knot, nuclei) |
subroutine | radial_grid_mo (centers, R_min, R_max, bspline_grid, delta_cgto_grid, x, w, n, r_points, weights, n_total_points) |
Radial grid used when integrating over the molecular orbitals purely numerically. More... | |
subroutine | radial_grid (centers, only_on_bto_grid, R_min, R_max, bspline_grid, delta_cgto_grid, x, w, n, n_rng_knot, r_points, weights, n_total_points) |
Determines the radial grid needed to describe, 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. More... | |
subroutine | radial_grid_CGTO_pair (cgto_A, cgto_B, R_min, R_max, x, w, n, delta_cgto_grid, r_points, weights, n_total_points) |
subroutine | omp_calculate_CGTO_pw_coefficients_analytic (threshold, max_l_inp, max_lp, cgto_shell, r_points, angular_integrals, non_neg_indices_l, gaunt_angular_integrals, non_neg_indices_l_lp) |
Calculates the partial wave expansion of CGTO up to partial wave L=max_l_inp and on the grid of radial points r_points. From this it generates the double angular projections for X_lm up to l=max_lp. It uses auxiliary arrays declared on top of this routine. More... | |
subroutine | 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. More... | |
real(kind=cfp) function | eval_Xlm_x_pair_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. More... | |
real(kind=cfp) function | gto_pair_eval_R (cgto_A, m_A, cgto_B, m_B, x, R) |
Evaluates the product of a pair of CGTOs for the given m values at radial distance x and for angular direction given by vector R. More... | |
subroutine | precalculate_pair_solh_translation_coeffs (CGTO_A_L, RA_A, Xlm_CGTO_A_center, CGTO_B_L, RA_B, Xlm_CGTO_B_center, transl_cfs_AB) |
subroutine | calculate_pair_lambda_couplings (l, m, CGTO_A_L, CGTO_B_L, n_contr_pairs, Xlm_product_CGTO_center, transl_cfs_AB, c_pair_lambda) |
real(kind=cfp) function | CGTO_pw_coefficient_stable (asym, r, l, lm, Lg, Lg_Mg, c_lambda, contraction_besi, prim_fac, n_prim, besi_args) |
subroutine | precalculate_solh_translation_coeffs (CGTO_L, RA, Xlm_CGTO_center, transl_cfs) |
subroutine | calculate_lambda_couplings (CGTO_L, l, m, Xlm_CGTO_center, transl_cfs, c_lambda) |
real(kind=cfp) function | besi_half_asym (z, l) |
subroutine, public | precalculate_Xlm_for_nuclei (nuclei, max_l, Xlm_nuclei, n_Xlm_nuclei) |
Calculates the real spherical harmonics for all l,m up to l=max_l for directions corresponding to the nuclear positions. More... | |
subroutine | precalculate_Xlm_for_CGTO_center (RA, max_l, Xlm_CGTO_center) |
Calculates the real spherical harmonics for all l,m up to l=max_l for directions corresponding to the nuclear positions. More... | |
subroutine | precalculate_Xlm_for_CGTO_product_center (n_contr_pairs, RA, max_l, Xlm_product_CGTO_center) |
subroutine | calc_resh_coefficients (L) |
subroutine | calc_solh_coefficients (L) |
Variables | |
type(cgto_shell_data_obj), dimension(n_alp), public | dbg_cgto |
type(couplings_type), public | cpl |
Used to evaluate various coupling coefficients. More... | |
subroutine cgto_pw_expansions_gbl::assign_grid | ( | class(pw_expansion_obj) | this, |
real(kind=cfp), dimension(:), intent(in) | r_points, | ||
real(kind=cfp), dimension(:), intent(in) | weights | ||
) |
real(kind=cfp) function cgto_pw_expansions_gbl::besi_half_asym | ( | real(kind=cfp), intent(in) | z, |
integer, intent(in) | l | ||
) |
subroutine cgto_pw_expansions_gbl::calc_resh_coefficients | ( | integer, intent(in) | L | ) |
subroutine cgto_pw_expansions_gbl::calc_solh_coefficients | ( | integer, intent(in) | L | ) |
subroutine cgto_pw_expansions_gbl::calculate_lambda_couplings | ( | integer, intent(in) | CGTO_L, |
integer, intent(in) | l, | ||
integer, intent(in) | m, | ||
real(kind=cfp), dimension(:), allocatable | Xlm_CGTO_center, | ||
real(kind=cfp), dimension(:,:,:), allocatable | transl_cfs, | ||
real(kind=cfp), dimension(:,:,:), allocatable | c_lambda | ||
) |
subroutine cgto_pw_expansions_gbl::calculate_pair_lambda_couplings | ( | integer, intent(in) | l, |
integer, intent(in) | m, | ||
integer, intent(in) | CGTO_A_L, | ||
integer, intent(in) | CGTO_B_L, | ||
integer, intent(in) | n_contr_pairs, | ||
real(kind=cfp), dimension(:), allocatable | Xlm_product_CGTO_center, | ||
real(kind=cfp), dimension(:,:,:,:,:), allocatable | transl_cfs_AB, | ||
real(kind=cfp), dimension(:,:,:,:,:), allocatable | c_pair_lambda | ||
) |
real(kind=cfp) function cgto_pw_expansions_gbl::CGTO_pw_coefficient_stable | ( | real(kind=cfp), intent(in) | asym, |
real(kind=cfp), intent(in) | r, | ||
integer, intent(in) | l, | ||
integer, intent(in) | lm, | ||
integer, intent(in) | Lg, | ||
integer, intent(in) | Lg_Mg, | ||
real(kind=cfp), dimension(0:,0:,:,:), intent(in) | c_lambda, | ||
real(kind=cfp), dimension(0:), intent(in) | contraction_besi, | ||
real(kind=cfp), dimension(n_prim), intent(in) | prim_fac, | ||
integer, intent(in) | n_prim, | ||
real(kind=cfp), dimension(n_prim), intent(in) | besi_args | ||
) |
subroutine cgto_pw_expansions_gbl::construct_GK_angular_grid | ( | class(legendre_grid_r1_r2_obj) | this, |
integer, intent(in) | n_div, | ||
real(kind=cfp), dimension(:,:), allocatable | r, | ||
real(kind=cfp), dimension(:), allocatable | w1, | ||
integer, intent(out) | n_points | ||
) |
subroutine cgto_pw_expansions_gbl::construct_radial_grid | ( | class(legendre_grid_r1_r2_obj) | this, |
type(bspline_grid_obj) | inp_bspline_grid, | ||
integer, intent(in) | first_bspline_index, | ||
type(nucleus_type), dimension(:) | nuclei, | ||
real(kind=cfp), intent(in) | delta_r1, | ||
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 | ||
) |
subroutine cgto_pw_expansions_gbl::eval_BTO_CGTO_Y_lm | ( | class(cgto_shell_pw_expansion_obj) | this, |
class(legendre_grid_r1_r2_obj) | grid_r1_r2 | ||
) |
subroutine cgto_pw_expansions_gbl::eval_CGTO_pair_radial_grid | ( | class(cgto_shell_pair_pw_expansion_obj) | this, |
real(kind=cfp), intent(in) | a, | ||
real(kind=cfp), dimension(2*n+1), intent(in) | x, | ||
real(kind=cfp), dimension(2*n+1), intent(in) | w, | ||
integer, intent(in) | n | ||
) |
subroutine cgto_pw_expansions_gbl::eval_CGTO_radial_grid | ( | class(cgto_shell_pw_expansion_obj) | this, |
logical, intent(in) | only_on_bto_grid, | ||
class(legendre_grid_r1_r2_obj) | grid_r1_r2, | ||
real(kind=cfp), intent(in) | delta_r1, | ||
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, | ||
type(nucleus_type), dimension(:), optional | nuclei | ||
) |
subroutine cgto_pw_expansions_gbl::eval_coulomb_integrals | ( | class(cgto_shell_pair_pw_expansion_obj) | this, |
class(legendre_grid_r1_r2_obj) | grid_r1_r2 | ||
) |
subroutine cgto_pw_expansions_gbl::eval_exponential_grid | ( | class(pw_expansion_obj) | this, |
real(kind=cfp), intent(in) | alp, | ||
integer, intent(in) | n | ||
) |
Exponential grid on [0,1] with points accumulating towards 1.
subroutine cgto_pw_expansions_gbl::eval_radial_GG_BB | ( | class(cgto_shell_pair_pw_expansion_obj) | this, |
class(legendre_grid_r1_r2_obj) | grid_r1_r2 | ||
) |
Calculates the radial integral 2-electron integrals between all pairs of BTOs and all partial waves of the GG pair.
subroutine cgto_pw_expansions_gbl::eval_regular_grid | ( | class(pw_expansion_obj) | this, |
real(kind=cfp), intent(in) | A, | ||
real(kind=cfp), intent(in) | B, | ||
real(kind=cfp), intent(in) | delta_r | ||
) |
subroutine cgto_pw_expansions_gbl::eval_Xlm_on_lebedev_grid | ( | class(legendre_grid_r1_r2_obj) | this, |
integer, intent(in) | n | ||
) |
real(kind=cfp) function cgto_pw_expansions_gbl::eval_Xlm_x_pair_cgto_surface | ( | class(xlm_x_pair_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.
subroutine cgto_pw_expansions_gbl::eval_Y_l_BTO_BTO | ( | class(legendre_grid_r1_r2_obj) | this | ) |
subroutine cgto_pw_expansions_gbl::expand_pw_in_bsplines | ( | class(cgto_shell_pw_expansion_obj) | this, |
class(legendre_grid_r1_r2_obj) | grid_r1_r2, | ||
integer, intent(in) | cgto_m, | ||
integer, intent(in) | lm | ||
) |
subroutine cgto_pw_expansions_gbl::final | ( | class(legendre_grid_r1_r2_obj) | this | ) |
real(kind=cfp) function cgto_pw_expansions_gbl::gto_pair_eval_R | ( | type(cgto_shell_data_obj), intent(in) | cgto_A, |
integer, intent(in) | m_A, | ||
type(cgto_shell_data_obj), intent(in) | cgto_B, | ||
integer, intent(in) | m_B, | ||
real(kind=cfp), intent(in) | x, | ||
real(kind=cfp), dimension(3), intent(in) | R | ||
) |
Evaluates the product of a pair of CGTOs for the given m values at radial distance x and for angular direction given by vector R.
subroutine, public cgto_pw_expansions_gbl::init_CGTO_pw_expansions_mod | ( | integer, intent(in) | inp_max_l_pw, |
integer, intent(in) | max_l_cgto | ||
) |
subroutine, public cgto_pw_expansions_gbl::init_dbg | ( | type(bspline_grid_obj) | bspline_grid | ) |
USED ONLY FOR DEBUGGING.
subroutine cgto_pw_expansions_gbl::omp_calculate_CGTO_pair_pw_coefficients_analytic | ( | integer, intent(in) | max_l, |
type(cgto_shell_data_obj), intent(in) | cgto_A, | ||
type(cgto_shell_data_obj), 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.
subroutine cgto_pw_expansions_gbl::omp_calculate_CGTO_pw_coefficients_analytic | ( | real(kind=cfp), intent(in) | threshold, |
integer, intent(in) | max_l_inp, | ||
integer, intent(in) | max_lp, | ||
type(cgto_shell_data_obj), intent(in) | cgto_shell, | ||
real(kind=cfp), dimension(:), allocatable | r_points, | ||
real(kind=cfp), dimension(:,:), allocatable | angular_integrals, | ||
integer, dimension(:,:), allocatable | non_neg_indices_l, | ||
real(kind=cfp), dimension(:,:), allocatable | gaunt_angular_integrals, | ||
integer, dimension(:,:,:), allocatable | non_neg_indices_l_lp | ||
) |
Calculates the partial wave expansion of CGTO up to partial wave L=max_l_inp and on the grid of radial points r_points. From this it generates the double angular projections for X_lm up to l=max_lp. It uses auxiliary arrays declared on top of this routine.
subroutine cgto_pw_expansions_gbl::precalculate_pair_solh_translation_coeffs | ( | integer, intent(in) | CGTO_A_L, |
real(kind=cfp), intent(in) | RA_A, | ||
real(kind=cfp), dimension(:), allocatable | Xlm_CGTO_A_center, | ||
integer, intent(in) | CGTO_B_L, | ||
real(kind=cfp), intent(in) | RA_B, | ||
real(kind=cfp), dimension(:), allocatable | Xlm_CGTO_B_center, | ||
real(kind=cfp), dimension(:,:,:,:,:), allocatable | transl_cfs_AB | ||
) |
subroutine cgto_pw_expansions_gbl::precalculate_solh_translation_coeffs | ( | integer, intent(in) | CGTO_L, |
real(kind=cfp), intent(in) | RA, | ||
real(kind=cfp), dimension(:), allocatable | Xlm_CGTO_center, | ||
real(kind=cfp), dimension(:,:,:), allocatable | transl_cfs | ||
) |
subroutine cgto_pw_expansions_gbl::precalculate_Xlm_for_CGTO_center | ( | real(kind=cfp), dimension(3), intent(in) | RA, |
integer, intent(in) | max_l, | ||
real(kind=cfp), dimension(:), allocatable | Xlm_CGTO_center | ||
) |
Calculates the real spherical harmonics for all l,m up to l=max_l for directions corresponding to the nuclear positions.
subroutine cgto_pw_expansions_gbl::precalculate_Xlm_for_CGTO_product_center | ( | integer, intent(in) | n_contr_pairs, |
real(kind=cfp), dimension(3,n_contr_pairs), intent(in) | RA, | ||
integer, intent(in) | max_l, | ||
real(kind=cfp), dimension(:), allocatable | Xlm_product_CGTO_center | ||
) |
subroutine, public cgto_pw_expansions_gbl::precalculate_Xlm_for_nuclei | ( | type(nucleus_type), dimension(:), intent(in) | nuclei, |
integer, intent(in) | max_l, | ||
real(kind=cfp), dimension(:), allocatable | Xlm_nuclei, | ||
integer, intent(out) | n_Xlm_nuclei | ||
) |
Calculates the real spherical harmonics for all l,m up to l=max_l for directions corresponding to the nuclear positions.
subroutine cgto_pw_expansions_gbl::radial_grid | ( | real(kind=cfp), dimension(:), intent(in) | centers, |
logical, intent(in) | only_on_bto_grid, | ||
real(kind=cfp), intent(in) | R_min, | ||
real(kind=cfp), intent(in) | R_max, | ||
type(bspline_grid_obj), intent(in) | bspline_grid, | ||
real(kind=cfp), intent(in) | delta_cgto_grid, | ||
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 | ||
) |
Determines the radial grid needed to describe, 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 cgto_pw_expansions_gbl::radial_grid_CGTO_pair | ( | type(cgto_shell_data_obj), intent(in) | cgto_A, |
type(cgto_shell_data_obj), intent(in) | cgto_B, | ||
real(kind=cfp), intent(in) | R_min, | ||
real(kind=cfp), intent(in) | R_max, | ||
real(kind=cfp), dimension(2*n+1), intent(in) | x, | ||
real(kind=cfp), dimension(2*n+1), intent(in) | w, | ||
integer, intent(in) | n, | ||
real(kind=cfp), intent(in) | delta_cgto_grid, | ||
real(kind=cfp), dimension(:), allocatable | r_points, | ||
real(kind=cfp), dimension(:), allocatable | weights, | ||
integer, intent(out) | n_total_points | ||
) |
subroutine cgto_pw_expansions_gbl::radial_grid_mo | ( | real(kind=cfp), dimension(:), intent(in) | centers, |
real(kind=cfp), intent(in) | R_min, | ||
real(kind=cfp), intent(in) | R_max, | ||
type(bspline_grid_obj), intent(in) | bspline_grid, | ||
real(kind=cfp), intent(in) | delta_cgto_grid, | ||
real(kind=cfp), dimension(2*n+1), intent(in) | x, | ||
real(kind=cfp), dimension(2*n+1), intent(in) | w, | ||
integer, intent(in) | n, | ||
real(kind=cfp), dimension(:), allocatable | r_points, | ||
real(kind=cfp), dimension(:), allocatable | weights, | ||
integer, intent(out) | n_total_points | ||
) |
Radial grid used when integrating over the molecular orbitals purely numerically.
subroutine cgto_pw_expansions_gbl::write_CGTO_shell_pw_expansion_obj | ( | class(cgto_shell_pw_expansion_obj) | this | ) |
subroutine cgto_pw_expansions_gbl::write_Y_lm_to_file | ( | class(cgto_shell_pw_expansion_obj) | this, |
character(len=line_len), intent(in) | scratch_directory | ||
) |
type(couplings_type), public cgto_pw_expansions_gbl::cpl |
Used to evaluate various coupling coefficients.
type(cgto_shell_data_obj), dimension(n_alp), public cgto_pw_expansions_gbl::dbg_cgto |