basis_tools Module

@brief This module contains types and subroutines to manipulate basis set @details The main goal of this module is to split SP(L) type shells onto pair of S and P shells. It significantly simplifies code for one- and two-electron integrals. @date -Sep, 2018- Initial release @author Vladimir Mironov


Uses

  • module~~basis_tools~~UsesGraph module~basis_tools basis_tools iso_fortran_env iso_fortran_env module~basis_tools->iso_fortran_env module~atomic_structure_m atomic_structure_m module~basis_tools->module~atomic_structure_m module~constants constants module~basis_tools->module~constants module~io_constants io_constants module~basis_tools->module~io_constants module~parallel parallel module~basis_tools->module~parallel module~precision precision module~basis_tools->module~precision iso_c_binding iso_c_binding module~atomic_structure_m->iso_c_binding module~constants->module~precision module~parallel->iso_fortran_env module~parallel->module~precision module~parallel->iso_c_binding mpi mpi module~parallel->mpi module~precision->iso_fortran_env

Used by

  • module~~basis_tools~~UsedByGraph module~basis_tools basis_tools module~dft dft module~dft->module~basis_tools module~ecp_tool ecp_tool module~ecp_tool->module~basis_tools module~grd1 grd1 module~grd1->module~basis_tools module~grd1->module~ecp_tool module~mod_shell_tools mod_shell_tools module~grd1->module~mod_shell_tools module~types types module~grd1->module~types module~mod_1e_primitives mod_1e_primitives module~grd1->module~mod_1e_primitives module~grd2 grd2 module~grd2->module~basis_tools module~grd2_rys grd2_rys module~grd2->module~grd2_rys module~int2_compute int2_compute module~grd2->module~int2_compute module~grd2_rys->module~basis_tools module~hf_gradient_mod hf_gradient_mod module~hf_gradient_mod->module~basis_tools module~hf_gradient_mod->module~grd2 module~hf_gradient_mod->module~types module~int1 int1 module~int1->module~basis_tools module~int1->module~mod_shell_tools module~int1->module~mod_1e_primitives module~int2_compute->module~basis_tools module~int2e_rys int2e_rys module~int2_compute->module~int2e_rys module~int2e_rotaxis int2e_rotaxis module~int2e_rotaxis->module~basis_tools module~int2e_rys->module~basis_tools module~mod_dft_fuzzycell mod_dft_fuzzycell module~mod_dft_fuzzycell->module~basis_tools module~mod_dft_gridint mod_dft_gridint module~mod_dft_gridint->module~basis_tools module~mod_shell_tools->module~basis_tools module~tdhf_gradient_mod tdhf_gradient_mod module~tdhf_gradient_mod->module~basis_tools module~tdhf_gradient_mod->module~grd2 module~tdhf_gradient_mod->module~types module~tdhf_lib tdhf_lib module~tdhf_lib->module~basis_tools module~tdhf_lib->module~int2_compute module~tdhf_mrsf_lib tdhf_mrsf_lib module~tdhf_mrsf_lib->module~basis_tools module~tdhf_mrsf_lib->module~int2_compute module~tdhf_z_vector_mod tdhf_z_vector_mod module~tdhf_z_vector_mod->module~basis_tools module~tdhf_z_vector_mod->module~int2_compute module~tdhf_z_vector_mod->module~tdhf_lib module~tdhf_z_vector_mod->module~types module~types->module~basis_tools proc~derexc_blk derexc_blk proc~derexc_blk->module~basis_tools proc~derexc_blk->module~mod_dft_gridint proc~derexc_blk->module~types proc~dft_fc_blk dft_fc_blk proc~dft_fc_blk->module~basis_tools proc~dft_initialize dft_initialize proc~dft_initialize->module~basis_tools proc~dft_initialize->module~types proc~dftexcor dftexcor proc~dftexcor->module~basis_tools proc~dftexcor->module~types module~mod_dft_gridint_energy mod_dft_gridint_energy proc~dftexcor->module~mod_dft_gridint_energy proc~dmatd_blk dmatd_blk proc~dmatd_blk->module~basis_tools proc~dmatd_blk->module~mod_dft_gridint proc~dmatd_blk->module~types proc~electric_moments electric_moments proc~electric_moments->module~basis_tools proc~electric_moments->module~int1 proc~electric_moments->module~types proc~fock_jk fock_jk proc~fock_jk->module~basis_tools proc~fock_jk->module~int2_compute proc~fock_jk->module~types proc~get_ab_initio_density get_ab_initio_density proc~get_ab_initio_density->module~basis_tools proc~get_ab_initio_density->module~types proc~get_states_overlap get_states_overlap proc~get_states_overlap->module~basis_tools proc~get_states_overlap->module~tdhf_mrsf_lib proc~get_states_overlap->module~types proc~get_structures_ao_overlap get_structures_ao_overlap proc~get_structures_ao_overlap->module~basis_tools proc~get_structures_ao_overlap->module~int1 proc~get_structures_ao_overlap->module~types proc~get_td_transition_dipole get_td_transition_dipole proc~get_td_transition_dipole->module~basis_tools proc~get_td_transition_dipole->module~int1 proc~get_td_transition_dipole->module~tdhf_lib proc~get_td_transition_dipole->module~types proc~get_transition_dipole get_transition_dipole proc~get_transition_dipole->module~basis_tools proc~get_transition_dipole->module~int1 proc~grd2_driver grd2_driver proc~grd2_driver->module~basis_tools proc~grd2_driver->module~types proc~guess_hcore guess_hcore proc~guess_hcore->module~basis_tools proc~guess_hcore->module~types proc~guess_huckel guess_huckel proc~guess_huckel->module~basis_tools proc~guess_huckel->module~types proc~guess_json guess_json proc~guess_json->module~basis_tools proc~guess_json->module~types proc~hf_energy hf_energy proc~hf_energy->module~basis_tools proc~hf_energy->module~dft proc~hf_energy->module~types proc~huckel_guess huckel_guess proc~huckel_guess->module~basis_tools proc~huckel_guess->module~int1 proc~huckel_guess->module~types proc~int1e int1e proc~int1e->module~basis_tools proc~int1e->module~int1 proc~int1e->module~types proc~libint_compute_eri libint_compute_eri proc~libint_compute_eri->module~basis_tools proc~libint_print_eri libint_print_eri proc~libint_print_eri->module~basis_tools proc~lowdin lowdin proc~lowdin->module~basis_tools proc~lowdin->module~types proc~mksphar mksphar proc~mksphar->module~basis_tools proc~mulliken mulliken proc~mulliken->module~basis_tools proc~mulliken->module~types proc~multipole_integrals multipole_integrals proc~multipole_integrals->module~basis_tools proc~omp_hst omp_hst proc~omp_hst->module~basis_tools proc~omp_hst->module~ecp_tool proc~oqp_resp_charges oqp_resp_charges proc~oqp_resp_charges->module~basis_tools proc~oqp_resp_charges->module~int1 proc~oqp_resp_charges->module~types proc~print_eigvec_vals_labeled print_eigvec_vals_labeled proc~print_eigvec_vals_labeled->module~basis_tools proc~print_eigvec_vals_labeled->module~types proc~print_geo print_geo proc~print_geo->module~basis_tools proc~print_mo_range print_mo_range proc~print_mo_range->module~basis_tools proc~print_mo_range->module~types proc~print_sym_labeled print_sym_labeled proc~print_sym_labeled->module~basis_tools proc~run_population_analysis run_population_analysis proc~run_population_analysis->module~basis_tools proc~run_population_analysis->module~types proc~run_xc run_xc proc~run_xc->module~basis_tools proc~scf_driver scf_driver proc~scf_driver->module~basis_tools proc~scf_driver->module~dft proc~scf_driver->module~int2_compute proc~scf_driver->module~types proc~shell_den_screen_mrsf shell_den_screen_mrsf proc~shell_den_screen_mrsf->module~basis_tools proc~shell_den_screen_mrsf->module~types proc~shlrpagrd shlrpagrd proc~shlrpagrd->module~basis_tools proc~shlrpagrd->module~types proc~shltd shltd proc~shltd->module~basis_tools proc~shltd->module~types proc~tddft_fxc tddft_fxc proc~tddft_fxc->module~basis_tools proc~tddft_fxc->module~mod_dft_gridint proc~tddft_fxc->module~types proc~tddft_gxc tddft_gxc proc~tddft_gxc->module~basis_tools proc~tddft_gxc->module~mod_dft_gridint proc~tddft_gxc->module~types proc~tddft_xc_gradient tddft_xc_gradient proc~tddft_xc_gradient->module~basis_tools proc~tddft_xc_gradient->module~mod_dft_gridint proc~tddft_xc_gradient->module~types proc~tdhf_1e_grad tdhf_1e_grad proc~tdhf_1e_grad->module~basis_tools proc~tdhf_1e_grad->module~grd1 proc~tdhf_1e_grad->module~types proc~tdhf_2e_grad tdhf_2e_grad proc~tdhf_2e_grad->module~basis_tools proc~tdhf_2e_grad->module~types proc~tdhf_energy tdhf_energy proc~tdhf_energy->module~basis_tools proc~tdhf_energy->module~dft proc~tdhf_energy->module~int2_compute proc~tdhf_energy->module~tdhf_lib proc~tdhf_energy->module~types module~mod_dft_gridint_fxc mod_dft_gridint_fxc proc~tdhf_energy->module~mod_dft_gridint_fxc proc~tdhf_gradient tdhf_gradient proc~tdhf_gradient->module~basis_tools proc~tdhf_gradient->module~dft proc~tdhf_gradient->module~grd1 proc~tdhf_gradient->module~tdhf_lib proc~tdhf_gradient->module~types module~mod_dft_gridint_tdxc_grad mod_dft_gridint_tdxc_grad proc~tdhf_gradient->module~mod_dft_gridint_tdxc_grad proc~tdhf_mrsf_energy tdhf_mrsf_energy proc~tdhf_mrsf_energy->module~basis_tools proc~tdhf_mrsf_energy->module~int2_compute proc~tdhf_mrsf_energy->module~tdhf_lib proc~tdhf_mrsf_energy->module~tdhf_mrsf_lib proc~tdhf_mrsf_energy->module~types proc~tdhf_sf_energy tdhf_sf_energy proc~tdhf_sf_energy->module~basis_tools proc~tdhf_sf_energy->module~int2_compute proc~tdhf_sf_energy->module~tdhf_lib proc~tdhf_sf_energy->module~types proc~utddft_fxc utddft_fxc proc~utddft_fxc->module~basis_tools proc~utddft_fxc->module~mod_dft_gridint proc~utddft_fxc->module~types proc~utddft_xc_gradient utddft_xc_gradient proc~utddft_xc_gradient->module~basis_tools proc~utddft_xc_gradient->module~mod_dft_gridint proc~utddft_xc_gradient->module~types module~c_interop c_interop module~c_interop->module~types module~mod_1e_primitives->module~mod_shell_tools module~mod_dft_gridint_energy->module~mod_dft_gridint module~mod_dft_gridint_fxc->module~mod_dft_gridint module~mod_dft_gridint_grad mod_dft_gridint_grad module~mod_dft_gridint_grad->module~mod_dft_gridint module~mod_dft_gridint_gxc mod_dft_gridint_gxc module~mod_dft_gridint_gxc->module~mod_dft_gridint module~mod_dft_gridint_gxc->module~mod_dft_gridint_fxc module~mod_dft_gridint_tdxc_grad->module~mod_dft_gridint proc~apply_basis_c apply_basis_C proc~apply_basis_c->module~types proc~apply_basis_c->module~c_interop proc~compute_states_overlap compute_states_overlap proc~compute_states_overlap->module~types proc~dftclean dftclean proc~dftclean->module~types proc~dftder dftder proc~dftder->module~types proc~dftder->module~mod_dft_gridint_grad proc~get_mrsf_transition_density get_mrsf_transition_density proc~get_mrsf_transition_density->module~types proc~get_state_overlap_c get_state_overlap_C proc~get_state_overlap_c->module~types proc~get_state_overlap_c->module~c_interop proc~get_structures_ao_overlap_c get_structures_ao_overlap_C proc~get_structures_ao_overlap_c->module~types proc~get_structures_ao_overlap_c->module~c_interop proc~get_transition_density get_transition_density proc~get_transition_density->module~tdhf_lib proc~grad_1e_ecp grad_1e_ecp proc~grad_1e_ecp->module~types proc~guess_hcore_c guess_hcore_C proc~guess_hcore_c->module~types proc~guess_hcore_c->module~c_interop proc~guess_huckel_c guess_huckel_C proc~guess_huckel_c->module~types proc~guess_huckel_c->module~c_interop proc~guess_json_c guess_json_C proc~guess_json_c->module~types proc~guess_json_c->module~c_interop proc~hf_gradient hf_gradient proc~hf_gradient->module~dft proc~hf_gradient->module~grd1 proc~ints_exchange ints_exchange proc~ints_exchange->module~int2e_rotaxis proc~ints_exchange->module~int2e_rys proc~ints_exchange->module~types proc~libxc_input libxc_input proc~libxc_input->module~types proc~mo_reorder mo_reorder proc~mo_reorder->module~types proc~mrinivec mrinivec proc~mrinivec->module~types proc~mrsf_tlf mrsf_tlf proc~mrsf_tlf->module~types proc~mrsfcbc mrsfcbc proc~mrsfcbc->module~types proc~mrsfesum mrsfesum proc~mrsfesum->module~types proc~mrsfmntoia mrsfmntoia proc~mrsfmntoia->module~types proc~mrsfxvec mrsfxvec proc~mrsfxvec->module~types proc~oqp_apply_basis oqp_apply_basis proc~oqp_apply_basis->module~types proc~oqp_banner oqp_banner proc~oqp_banner->module~types proc~oqp_banner_c oqp_banner_C proc~oqp_banner_c->module~types proc~oqp_banner_c->module~c_interop proc~oqp_tdhf_z_vector oqp_tdhf_z_vector proc~oqp_tdhf_z_vector->module~dft proc~oqp_tdhf_z_vector->module~tdhf_lib proc~oqp_tdhf_z_vector->module~mod_dft_gridint_fxc proc~oqp_tdhf_z_vector->module~mod_dft_gridint_gxc proc~print_nac print_nac proc~print_nac->module~types proc~print_results~2 print_results proc~print_results~2->module~types proc~resp_charges_c resp_charges_C proc~resp_charges_c->module~types proc~resp_charges_c->module~c_interop proc~sfdmat sfdmat proc~sfdmat->module~tdhf_lib proc~tdhf_energy_c tdhf_energy_C proc~tdhf_energy_c->module~types proc~tdhf_energy_c->module~c_interop proc~tdhf_mrsf_energy_c tdhf_mrsf_energy_C proc~tdhf_mrsf_energy_c->module~types proc~tdhf_mrsf_energy_c->module~c_interop proc~tdhf_sf_energy_c tdhf_sf_energy_C proc~tdhf_sf_energy_c->module~types proc~tdhf_sf_energy_c->module~c_interop proc~tdhf_z_vector_c tdhf_z_vector_C proc~tdhf_z_vector_c->module~types proc~tdhf_z_vector_c->module~c_interop proc~tdhf_gradient_c tdhf_gradient_C proc~tdhf_gradient_c->module~c_interop

Interfaces

public interface bas_norm_matrix

  • private subroutine bas_norm_matrix_tr(a, p, ld)

    @brief Scale matrix A with matrix \f$ P \cdot P^T \f$ @details A is a packed square matrix, P is a column vector @author Vladimir Mironov @date -Sep, 2018- Initial release

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(inout) :: a(:)
    real(kind=real64), intent(in), allocatable :: p(:)
    integer, intent(in) :: ld
  • private subroutine bas_norm_matrix_sq(a, p, ld)

    @brief Scale matrix A with matrix \f$ P \cdot P^T \f$ @details A is a full square matrix, P is a column vector @author Vladimir Mironov @date -Sep, 2018- Initial release

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(inout) :: a(:,:)
    real(kind=real64), intent(in), allocatable :: p(:)
    integer, intent(in) :: ld

public interface bas_denorm_matrix

  • private subroutine bas_denorm_matrix_tr(a, p, ld)

    @brief Scale matrix A with matrix \f$ 1/P \cdot 1/P^T \f$ @details A is a packed square matrix, P is a column vector @author Vladimir Mironov @date -Sep, 2018- Initial release

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(inout) :: a(:)
    real(kind=real64), intent(inout), allocatable :: p(:)
    integer, intent(in) :: ld
  • private subroutine bas_denorm_matrix_sq(a, p, ld)

    @brief Scale matrix A with matrix \f$ 1/P \cdot 1/P^T \f$ @details A is a full square matrix, P is a column vector @author Vladimir Mironov @date -Sep, 2018- Initial release

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(inout) :: a(:,:)
    real(kind=real64), intent(inout), allocatable :: p(:)
    integer, intent(in) :: ld

Derived Types

type, public ::  ecp_parameters

Components

Type Visibility Attributes Name Initial
real(kind=real64), public, dimension(:), allocatable :: ecp_ex
real(kind=real64), public, dimension(:), allocatable :: ecp_cc
real(kind=real64), public, dimension(:), allocatable :: ecp_coord
integer, public, dimension(:), allocatable :: ecp_r_ex
integer, public, dimension(:), allocatable :: ecp_am
integer, public, dimension(:), allocatable :: n_expo
logical, public :: is_ecp = .false.

type, public ::  basis_set

Components

Type Visibility Attributes Name Initial
real(kind=real64), public, dimension(:), allocatable :: ex
real(kind=real64), public, dimension(:), allocatable :: cc
real(kind=real64), public, dimension(:), allocatable :: bfnrm
integer, public, dimension(:), allocatable :: g_offset
integer, public, dimension(:), allocatable :: origin
integer, public, dimension(:), allocatable :: am
integer, public, dimension(:), allocatable :: ncontr
integer, public, dimension(:), allocatable :: ao_offset
integer, public, dimension(:), allocatable :: naos
integer, public, dimension(:), allocatable :: ecp_zn_num
integer, public :: nshell = 0
integer, public :: nprim = 0
integer, public :: nbf = 0
integer, public :: mxcontr = 0
integer, public :: mxam = 0
type(ecp_parameters), public :: ecp_params
type(atomic_structure), public, pointer :: atoms
real(kind=real64), public, allocatable :: at_mx_dist2(:)
real(kind=real64), public, allocatable :: prim_mx_dist2(:)
real(kind=real64), public, allocatable :: shell_mx_dist2(:)
real(kind=real64), public, allocatable :: shell_centers(:,:)

Type-Bound Procedures

procedure, public, pass(basis) :: from_file
procedure, public, pass(basis) :: append
procedure, public, pass(basis) :: load
procedure, public, pass(basis) :: dump
procedure, public, pass(basis) :: normalize_primitives
procedure, public, pass(basis) :: normalize_contracted
procedure, public, pass(basis) :: set_bfnorms
procedure, public, pass(basis) :: reserve => omp_sp_reserve
generic, public :: aoval => compAOv, compAOvg, compAOvgg
procedure, public, pass(basis) :: compAOv
procedure, public, pass(basis) :: compAOvg
procedure, public, pass(basis) :: compAOvgg
procedure, public, pass(basis) :: init_shell_centers
procedure, public :: set_screening => comp_basis_mxdists
procedure, public, pass(basis) :: basis_broadcast
procedure, public, pass(basis) :: bf_label
procedure, public, pass(basis) :: bf_to_shell