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

Functions/Subroutines

subroutine, public GG_initialize (cgto_shells, bto_shells, a, dipole_damp_factor, delta_r1, bbb_column, ecp_column, symmetry_data, shell_starting_indices)
 Determine wheter tails will be subtracted when the integrals will be calculated. If so then it calculates the norms of the continuum shells.
subroutine, public GG_shell_integrals (shell_a, shell_b, a, b, starting_index_a, starting_index_b, use_spherical_cgto_alg, max_property_l, property_center, symmetry_data, olap_column, kei_column, prop_column, nai_column, ecp_column, bbb_column, one_elham_column, int_index, integrals)
subroutine, public GGGG_initialize (cgto_shells, shell_starting_indices, tol, a, keep_ab_cd_order, two_p_continuum, indexing_method_inp)
subroutine, public GGGG_shell_integrals (shell_a, shell_b, shell_c, shell_d, a, b, c, d, starting_index_a, starting_index_b, starting_index_c, starting_index_d, use_spherical_cgto_alg, two_el_column, int_index, integrals)
subroutine, public GGGG_final
 Gets rid of all arrays local to this module related to evaluation of 2-electron integrals. Additionally, the arrays used by cgto_hgp and eri_sph are removed, too: these can be large for high ang. momentum.

Function/Subroutine Documentation

◆ GG_initialize()

subroutine, public cgto_integrals_gbl::GG_initialize ( type(cgto_shell_data_obj), dimension(:), intent(in) cgto_shells,
type(bto_shell_data_obj), dimension(:), intent(in), optional bto_shells,
real(kind=cfp), intent(in) a,
real(kind=cfp), intent(in) dipole_damp_factor,
real(kind=cfp), intent(in) delta_r1,
integer, intent(in) bbb_column,
integer, intent(in) ecp_column,
type(symmetry_obj), intent(in) symmetry_data,
integer, dimension(:), intent(in) shell_starting_indices )

Determine wheter tails will be subtracted when the integrals will be calculated. If so then it calculates the norms of the continuum shells.

Warning
It is assumed that the CGTO shells on input ARE NOT NORMALIZED TO THE R-MATRIX SPHERE.

◆ GG_shell_integrals()

subroutine, public cgto_integrals_gbl::GG_shell_integrals ( type(cgto_shell_data_obj), intent(in), target shell_a,
type(cgto_shell_data_obj), intent(in), target shell_b,
integer, intent(in) a,
integer, intent(in) b,
integer, intent(in) starting_index_a,
integer, intent(in) starting_index_b,
logical, intent(in) use_spherical_cgto_alg,
integer, intent(in) max_property_l,
real(kind=cfp), dimension(3), intent(in) property_center,
type(symmetry_obj), intent(in) symmetry_data,
integer, intent(in) olap_column,
integer, intent(in) kei_column,
integer, intent(in) prop_column,
integer, intent(in) nai_column,
integer, intent(in) ecp_column,
integer, intent(in) bbb_column,
integer, intent(in) one_elham_column,
integer, dimension(:,:), allocatable int_index,
real(kind=cfp), dimension(:,:), allocatable integrals )
Warning
This routine assumes that the arrays for output int_index and integrals have been allocated to the correct dimensions and that the column indices *_column are allowed, i.e. if they are greater than 0 they must be within the limits of the array integrals.
Not thread safe. We assume that the shells on input have been normalized to the requested R-matrix radius.
It is important to realize that the order of the generated integrals, i.e. the different (M_A,M_A) combinations, are prescribed by the first routine which generates int_index: typically the olap_kei_sph routine. ALL SUBSEQUENT INTEGRAL ROUTINES MUST OBEY THE SAME ORDER. TODO Generate int_index only once at the beginning of GG_shell_integrals and make it an INPUT array for all other routines which should then merely check that they generate the integrals in the correct order!
Here is the call graph for this function:

◆ GGGG_final()

subroutine, public cgto_integrals_gbl::GGGG_final

Gets rid of all arrays local to this module related to evaluation of 2-electron integrals. Additionally, the arrays used by cgto_hgp and eri_sph are removed, too: these can be large for high ang. momentum.

Here is the call graph for this function:

◆ GGGG_initialize()

subroutine, public cgto_integrals_gbl::GGGG_initialize ( type(cgto_shell_data_obj), dimension(:), intent(in), target cgto_shells,
integer, dimension(:), intent(in) shell_starting_indices,
real(kind=cfp), intent(in) tol,
real(kind=cfp), intent(in) a,
logical, intent(in) keep_ab_cd_order,
logical, intent(in) two_p_continuum,
integer, intent(in) indexing_method_inp )
Warning
We assume that the overal norms of the contractions have been multiplied into CGTO_shells()norms!
Here is the call graph for this function:

◆ GGGG_shell_integrals()

subroutine, public cgto_integrals_gbl::GGGG_shell_integrals ( type(cgto_shell_data_obj), intent(in) shell_a,
type(cgto_shell_data_obj), intent(in) shell_b,
type(cgto_shell_data_obj), intent(in) shell_c,
type(cgto_shell_data_obj), intent(in) shell_d,
integer, intent(in) a,
integer, intent(in) b,
integer, intent(in) c,
integer, intent(in) d,
integer, intent(in) starting_index_a,
integer, intent(in) starting_index_b,
integer, intent(in) starting_index_c,
integer, intent(in) starting_index_d,
logical, intent(in) use_spherical_cgto_alg,
integer, intent(in) two_el_column,
integer, dimension(:,:), allocatable int_index,
real(kind=cfp), dimension(:,:), allocatable integrals )
Warning
We assume that the overal norms of the contractions have been multiplied into CGTO_shells()norms and that GGGG_initialize has been called before!
Here is the call graph for this function: