int1 Module

@author Vladimir Mironov @brief This module contains subroutines for 1-electron integrals calculation. @date Sep, 2018 Initial release


Uses

  • module~~int1~~UsesGraph module~int1 int1 iso_fortran_env iso_fortran_env module~int1->iso_fortran_env module~basis_tools basis_tools module~int1->module~basis_tools module~messages messages module~int1->module~messages module~mod_1e_primitives mod_1e_primitives module~int1->module~mod_1e_primitives module~mod_shell_tools mod_shell_tools module~int1->module~mod_shell_tools 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 comm_IOFILE comm_IOFILE module~messages->comm_IOFILE comm_PAR comm_PAR module~messages->comm_PAR module~messages->module~io_constants module~messages->module~precision module~mod_1e_primitives->iso_fortran_env module~mod_1e_primitives->module~mod_shell_tools module~mod_1e_primitives->module~constants module~mod_gauss_hermite mod_gauss_hermite module~mod_1e_primitives->module~mod_gauss_hermite module~rys rys module~mod_1e_primitives->module~rys module~xyz_order xyz_order module~mod_1e_primitives->module~xyz_order module~mod_shell_tools->module~basis_tools module~mod_shell_tools->module~precision iso_c_binding iso_c_binding module~atomic_structure_m->iso_c_binding module~constants->module~precision module~mod_gauss_hermite->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 module~rys->module~constants module~rys->module~precision module~rys_lut rys_lut module~rys->module~rys_lut

Used by

  • module~~int1~~UsedByGraph module~int1 int1 proc~electric_moments electric_moments proc~electric_moments->module~int1 proc~get_structures_ao_overlap get_structures_ao_overlap proc~get_structures_ao_overlap->module~int1 proc~get_td_transition_dipole get_td_transition_dipole proc~get_td_transition_dipole->module~int1 proc~get_transition_dipole get_transition_dipole proc~get_transition_dipole->module~int1 proc~huckel_guess huckel_guess proc~huckel_guess->module~int1 proc~int1e int1e proc~int1e->module~int1 proc~oqp_resp_charges oqp_resp_charges proc~oqp_resp_charges->module~int1

Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: blocksize = 28*28
integer, public, parameter :: mult_bs(0:MAX_EL_MOM) = [1, 3, 6, 10]
integer, public, parameter :: mult_all_bs(MAX_EL_MOM) = [3, 9, 19]

Interfaces

public interface int1_coul

  • private subroutine int1_coul_xyzc(cntp, xyzc, nat, chgtol, blk)

    @brief Compute contracted block of Coulomb 1e integrals @param[in] cntp shell pair data @param[in] xyzc coordinates and charges of particles @param[in] nat number of particles @param[in] chgtol cut-off for charge @param[inout] blk block of 1e Coulomb integrals @author Vladimir Mironov @date Sep, 2018 Initial release

    Arguments

    Type IntentOptional Attributes Name
    type(shpair_t), intent(in) :: cntp
    real(kind=real64), intent(in), contiguous :: xyzc(:)
    integer, intent(in) :: nat
    real(kind=real64), intent(in) :: chgtol
    real(kind=real64), intent(inout), contiguous :: blk(:)
  • private subroutine int1_coul_x_y_z_c(cntp, x, y, z, c, nat, chgtol, blk)

    @brief Compute contracted block of Coulomb 1e integrals @param[in] cntp shell pair data @param[in] x X coordinates of charged particles @param[in] y Y coordinates of charged particles @param[in] z Z coordinates of charged particles @param[in] c charges of particles @param[in] nat number of particles @param[in] chgtol cut-off for charge @param[inout] blk block of 1e Coulomb integrals @author Vladimir Mironov @date Sep, 2018 Initial release

    Arguments

    Type IntentOptional Attributes Name
    type(shpair_t), intent(in) :: cntp
    real(kind=REAL64), intent(in), CONTIGUOUS :: x(:)
    real(kind=REAL64), intent(in), CONTIGUOUS :: y(:)
    real(kind=REAL64), intent(in), CONTIGUOUS :: z(:)
    real(kind=REAL64), intent(in), CONTIGUOUS :: c(:)
    integer, intent(in) :: nat
    real(kind=REAL64), intent(in) :: chgtol
    real(kind=REAL64), intent(inout), CONTIGUOUS :: blk(:)
  • private subroutine int1_coul_xyz_c(cntp, xyz, c, nat, chgtol, blk)

    @brief Compute contracted block of Coulomb 1e integrals @param[in] cntp shell pair data @param[in] xyz coordinates of particles @param[in] c charges of particles @param[in] nat number of particles @param[in] chgtol cut-off for charge @param[inout] blk block of 1e Coulomb integrals @author Vladimir Mironov @date Sep, 2018 Initial release

    Arguments

    Type IntentOptional Attributes Name
    type(shpair_t), intent(in) :: cntp
    real(kind=REAL64), intent(in), CONTIGUOUS :: xyz(:,:)
    real(kind=REAL64), intent(in), CONTIGUOUS :: c(:)
    integer, intent(in) :: nat
    real(kind=REAL64), intent(in) :: chgtol
    real(kind=REAL64), intent(inout), CONTIGUOUS :: blk(:)

Subroutines

public subroutine omp_hst(basis, coord, zq, h, s, t, z, debug, logtol, comm, usempi)

@brief Driver for conventional h, S, and T integrals @details Compute one electron integrals and core Hamiltonian, - S is evaluated by Gauss-Hermite quadrature, - T is an overlap with -2,0,+2 angular momentum shifts, - V is evaluated by Gauss-Rys quadrature, then \f$ h = T+V \f$ Also, do \f$ L_z \f$ integrals if requested

Read more…

Arguments

Type IntentOptional Attributes Name
type(basis_set), intent(in) :: basis
real(kind=real64), intent(in), contiguous :: coord(:,:)
real(kind=real64), intent(in), contiguous :: zq(:)
real(kind=real64), intent(inout), contiguous :: h(:)
real(kind=real64), intent(inout), contiguous :: s(:)
real(kind=real64), intent(inout), contiguous :: t(:)
real(kind=real64), intent(inout), optional, contiguous :: z(:)
logical, intent(in), optional :: debug
real(kind=real64), intent(in), optional :: logtol
integer(kind=int32) :: comm
logical(kind=c_bool), intent(in) :: usempi

public subroutine multipole_integrals(basis, ints, r, mxmom, debug, logtol)

@brief Driver for multipole integrals @details Compute one electron multipole integrals Integrals are evaluated by Gauss-Hermite quadrature, @author Vladimir Mironov @date Feb, 2023 Initial release

Read more…

Arguments

Type IntentOptional Attributes Name
type(basis_set), intent(in) :: basis
real(kind=real64), intent(inout), contiguous :: ints(:,:)
real(kind=real64), intent(in) :: r(:)
integer, intent(in) :: mxmom
logical, intent(in), optional :: debug
real(kind=real64), intent(in), optional :: logtol

public subroutine electrostatic_potential(basis, x, y, z, wt, d, pot, logtol)

@brief Compute electronic contribution to electrostatic potential on a grid @author Vladimir Mironov @date Sep, 2023 Initial release

Read more…

Arguments

Type IntentOptional Attributes Name
type(basis_set), intent(inout) :: basis
real(kind=real64), intent(in), contiguous :: x(:)
real(kind=real64), intent(in), contiguous :: y(:)
real(kind=real64), intent(in), contiguous :: z(:)
real(kind=real64), intent(in), contiguous :: wt(:)
real(kind=real64), intent(inout), contiguous :: d(:)
real(kind=real64), intent(out), contiguous :: pot(:)
real(kind=real64), intent(in), optional :: logtol

public subroutine basis_overlap(s, basis1, basis2, tol)

@brief Compute overlap matrix between two basis sets @details Overlap integrals are computed using Gauss-Hermite quadrature formula @author Igor S. Gerasimov @date Oct, 2022 Initial release

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=REAL64), intent(inout), CONTIGUOUS :: s(:,:)
type(basis_set), intent(in) :: basis1
type(basis_set), intent(in) :: basis2
real(kind=REAL64), intent(in) :: tol

public subroutine overlap(s, basis, tol)

@brief Compute overlap and integrals @details Overlap integrals are computed using Gauss-Hermite quadrature formula @author Vladimir Mironov @date Mar, 2023 Initial release

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=REAL64), intent(inout), CONTIGUOUS :: s(:)
type(basis_set), intent(in) :: basis
real(kind=REAL64), intent(in) :: tol