tdhf_lib Module


Uses

  • module~~tdhf_lib~~UsesGraph module~tdhf_lib tdhf_lib module~basis_tools basis_tools module~tdhf_lib->module~basis_tools module~int2_compute int2_compute module~tdhf_lib->module~int2_compute module~oqp_linalg oqp_linalg module~tdhf_lib->module~oqp_linalg module~precision precision module~tdhf_lib->module~precision module~basis_tools->module~precision 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~int2_compute->module~basis_tools module~int2_compute->module~precision module~int2_compute->module~atomic_structure_m module~int2_pairs int2_pairs module~int2_compute->module~int2_pairs module~int2e_libint int2e_libint module~int2_compute->module~int2e_libint module~int2e_rys int2e_rys module~int2_compute->module~int2e_rys module~messages messages module~int2_compute->module~messages module~int2_compute->module~parallel module~blas_wrap blas_wrap module~oqp_linalg->module~blas_wrap module~lapack_wrap lapack_wrap module~oqp_linalg->module~lapack_wrap module~precision->iso_fortran_env iso_c_binding iso_c_binding module~atomic_structure_m->iso_c_binding module~blas_wrap->module~precision module~blas_wrap->module~messages module~mathlib_types mathlib_types module~blas_wrap->module~mathlib_types module~constants->module~precision module~int2_pairs->module~precision module~int2e_libint->module~precision module~int2e_libint->module~constants module~int2e_libint->module~int2_pairs module~int2e_libint->iso_c_binding module~libint_f libint_f module~int2e_libint->module~libint_f module~int2e_rys->module~basis_tools module~int2e_rys->module~precision module~int2e_rys->module~constants module~lapack_wrap->module~precision module~lapack_wrap->module~messages module~lapack_wrap->module~mathlib_types module~messages->module~precision module~messages->module~io_constants comm_IOFILE comm_IOFILE module~messages->comm_IOFILE comm_PAR comm_PAR module~messages->comm_PAR module~parallel->module~precision module~parallel->iso_fortran_env module~parallel->iso_c_binding mpi mpi module~parallel->mpi module~libint_f->iso_c_binding

Used by

  • module~~tdhf_lib~~UsedByGraph module~tdhf_lib tdhf_lib module~tdhf_z_vector_mod tdhf_z_vector_mod module~tdhf_z_vector_mod->module~tdhf_lib proc~get_td_transition_dipole get_td_transition_dipole proc~get_td_transition_dipole->module~tdhf_lib proc~get_transition_density get_transition_density proc~get_transition_density->module~tdhf_lib proc~oqp_tdhf_z_vector oqp_tdhf_z_vector proc~oqp_tdhf_z_vector->module~tdhf_lib proc~sfdmat sfdmat proc~sfdmat->module~tdhf_lib proc~tdhf_energy tdhf_energy proc~tdhf_energy->module~tdhf_lib proc~tdhf_gradient tdhf_gradient proc~tdhf_gradient->module~tdhf_lib proc~tdhf_mrsf_energy tdhf_mrsf_energy proc~tdhf_mrsf_energy->module~tdhf_lib proc~tdhf_sf_energy tdhf_sf_energy proc~tdhf_sf_energy->module~tdhf_lib

Derived Types

type, public, extends(int2_fock_data_t) ::  int2_td_data_t

Components

Type Visibility Attributes Name Initial
logical, public :: multipass = .false.
integer, public :: num_passes = 1
integer, public :: cur_pass = 1
real(kind=dp), public :: scale_coulomb = 1.0d0
real(kind=dp), public :: scale_exchange = 1.0d0
type(par_env_t), public :: pe
integer, public :: nshells = 0
integer, public :: fockdim = 0
integer, public :: nthreads = 1
integer, public :: nfocks = 1
real(kind=dp), public, allocatable :: f(:,:,:)
real(kind=dp), public, allocatable :: dsh(:,:)
real(kind=dp), public :: max_den = 1.0d0
real(kind=dp), public, pointer :: d(:,:) => null()
real(kind=dp), public, allocatable :: apb(:,:,:,:)
real(kind=dp), public, allocatable :: amb(:,:,:,:)
real(kind=dp), public, pointer :: d2(:,:,:) => null()
logical, public :: int_apb = .true.
logical, public :: int_amb = .false.
logical, public :: tamm_dancoff = .false.
logical, public :: tamm_dancoff_coulomb = .false.

Type-Bound Procedures

generic, public :: screen => screen_ij, screen_ijkl
procedure, public :: screen_ij => int2_fock_data_t_screen_ij
procedure, public :: screen_ijkl => int2_fock_data_t_screen_ijkl
procedure, public :: int2_fock_data_t_parallel_start
procedure, public :: int2_fock_data_t_parallel_stop
procedure, public :: parallel_start => int2_td_data_t_parallel_start
procedure, public :: parallel_stop => int2_td_data_t_parallel_stop
procedure, public :: init_screen => int2_td_data_t_init_screen
procedure, public :: update => int2_td_data_t_update
procedure, public :: clean => int2_td_data_t_clean

type, public, extends(int2_td_data_t) ::  int2_tdgrd_data_t

Components

Type Visibility Attributes Name Initial
logical, public :: multipass = .false.
integer, public :: num_passes = 1
integer, public :: cur_pass = 1
real(kind=dp), public :: scale_coulomb = 1.0d0
real(kind=dp), public :: scale_exchange = 1.0d0
type(par_env_t), public :: pe
integer, public :: nshells = 0
integer, public :: fockdim = 0
integer, public :: nthreads = 1
integer, public :: nfocks = 1
real(kind=dp), public, allocatable :: f(:,:,:)
real(kind=dp), public, allocatable :: dsh(:,:)
real(kind=dp), public :: max_den = 1.0d0
real(kind=dp), public, pointer :: d(:,:) => null()
real(kind=dp), public, allocatable :: apb(:,:,:,:)
real(kind=dp), public, allocatable :: amb(:,:,:,:)
real(kind=dp), public, pointer :: d2(:,:,:) => null()
logical, public :: int_apb = .true.
logical, public :: int_amb = .false.
logical, public :: tamm_dancoff = .false.
logical, public :: tamm_dancoff_coulomb = .false.

Type-Bound Procedures

generic, public :: screen => screen_ij, screen_ijkl
procedure, public :: screen_ij => int2_fock_data_t_screen_ij
procedure, public :: screen_ijkl => int2_fock_data_t_screen_ijkl
procedure, public :: int2_fock_data_t_parallel_start
procedure, public :: int2_fock_data_t_parallel_stop
procedure, public :: parallel_start => int2_td_data_t_parallel_start
procedure, public :: parallel_stop => int2_td_data_t_parallel_stop
procedure, public :: init_screen => int2_td_data_t_init_screen
procedure, public :: clean => int2_td_data_t_clean
procedure, public :: update => int2_tdgrd_data_t_update

type, public, extends(int2_fock_data_t) ::  int2_rpagrd_data_t

Components

Type Visibility Attributes Name Initial
logical, public :: multipass = .false.
integer, public :: num_passes = 1
integer, public :: cur_pass = 1
real(kind=dp), public :: scale_coulomb = 1.0d0
real(kind=dp), public :: scale_exchange = 1.0d0
type(par_env_t), public :: pe
integer, public :: nshells = 0
integer, public :: fockdim = 0
integer, public :: nthreads = 1
integer, public :: nfocks = 1
real(kind=dp), public, allocatable :: f(:,:,:)
real(kind=dp), public, allocatable :: dsh(:,:)
real(kind=dp), public :: max_den = 1.0d0
real(kind=dp), public, pointer :: d(:,:) => null()
real(kind=dp), public, allocatable :: hpp(:,:,:,:,:)
real(kind=dp), public, allocatable :: hpt(:,:,:,:,:)
real(kind=dp), public, allocatable :: hmm(:,:,:,:,:)
real(kind=dp), public, pointer :: xpy(:,:,:,:) => null()
real(kind=dp), public, pointer :: xmy(:,:,:,:) => null()
real(kind=dp), public, pointer :: t(:,:,:,:) => null()
integer, public :: np = 0
integer, public :: nm = 0
integer, public :: nt = 0
integer, public :: nspin = 0
integer, public :: nbf = 0
logical, public :: tamm_dancoff = .false.

Type-Bound Procedures

generic, public :: screen => screen_ij, screen_ijkl
procedure, public :: screen_ij => int2_fock_data_t_screen_ij
procedure, public :: screen_ijkl => int2_fock_data_t_screen_ijkl
procedure, public :: int2_fock_data_t_parallel_start
procedure, public :: int2_fock_data_t_parallel_stop
procedure, public :: parallel_start => int2_rpagrd_data_t_parallel_start
procedure, public :: parallel_stop => int2_rpagrd_data_t_parallel_stop
procedure, public :: init_screen => int2_rpagrd_data_t_init_screen
procedure, public :: update => int2_rpagrd_data_t_update
procedure, public :: clean => int2_rpagrd_data_t_clean
procedure, public, non_overridable :: hplus => int2_rpagrd_data_t_update_hplus
procedure, public, non_overridable :: hminus => int2_rpagrd_data_t_update_hminus

Subroutines

public subroutine int2_td_data_t_parallel_start(this, basis, nthreads)

Arguments

Type IntentOptional Attributes Name
class(int2_td_data_t), intent(inout), target :: this
type(basis_set), intent(in) :: basis
integer, intent(in) :: nthreads

public subroutine int2_td_data_t_parallel_stop(this)

Arguments

Type IntentOptional Attributes Name
class(int2_td_data_t), intent(inout) :: this

public subroutine int2_td_data_t_clean(this)

Arguments

Type IntentOptional Attributes Name
class(int2_td_data_t), intent(inout) :: this

public subroutine int2_td_data_t_init_screen(this, basis)

Arguments

Type IntentOptional Attributes Name
class(int2_td_data_t), intent(inout), target :: this
type(basis_set), intent(in) :: basis

public subroutine int2_td_data_t_update(this, buf)

Arguments

Type IntentOptional Attributes Name
class(int2_td_data_t), intent(inout) :: this
type(int2_storage_t), intent(inout) :: buf

public subroutine int2_tdgrd_data_t_update(this, buf)

Arguments

Type IntentOptional Attributes Name
class(int2_tdgrd_data_t), intent(inout) :: this
type(int2_storage_t), intent(inout) :: buf

public subroutine shltd(dsh, da, basis)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(out) :: dsh(:,:)
real(kind=dp), intent(in), dimension(:,:,:) :: da
type(basis_set), intent(in) :: basis

public subroutine inivec(eiga, eigb, bvec_mo, xm, nocca, noccb, nvec)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:) :: eiga
real(kind=dp), intent(in), dimension(:) :: eigb
real(kind=dp), intent(out), dimension(:,:) :: bvec_mo
real(kind=dp), intent(out), dimension(:) :: xm
integer, intent(in) :: nocca
integer, intent(in) :: noccb
integer, intent(in) :: nvec

public subroutine iatogen(pv, av, nocca, noccb)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), contiguous, target :: pv(:)
real(kind=dp), intent(out) :: av(:,:)
integer, intent(in) :: nocca
integer, intent(in) :: noccb

public subroutine mntoia(pao, pmo, va, vb, nocca, noccb)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:,:) :: pao
real(kind=dp), intent(out), dimension(*) :: pmo
real(kind=dp), intent(in), target, dimension(:,:) :: va
real(kind=dp), intent(in), target, dimension(:,:) :: vb
integer, intent(in) :: nocca
integer, intent(in) :: noccb

public subroutine rparedms(b, ap_b, am_b, xm_p, xm_m, nvec, tamm_dancoff)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:,:) :: b
real(kind=dp), intent(in), dimension(:,:) :: ap_b
real(kind=dp), intent(in), dimension(:,:) :: am_b
real(kind=dp), intent(out), dimension(:,:) :: xm_p
real(kind=dp), intent(out), dimension(:,:) :: xm_m
integer, intent(in) :: nvec
logical :: tamm_dancoff

public subroutine rpaeig(ee, vl, vr, apb, amb, scr, tamm_dancoff)

@brief Diagonalize small reduced RPA matrix

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(out), dimension(:) :: ee
real(kind=dp), intent(out), dimension(:,:) :: vl
real(kind=dp), intent(out), dimension(:,:) :: vr
real(kind=dp), intent(in), dimension(:,:) :: apb
real(kind=dp), intent(inout), dimension(:,:) :: amb
real(kind=dp), intent(inout), dimension(:) :: scr
logical, intent(in) :: tamm_dancoff

public subroutine rpavnorm(vr, vl, tamm_dancoff)

@brief Normalize V1 and V2 by biorthogonality condition

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(out), dimension(:,:) :: vr
real(kind=dp), intent(out), dimension(:,:) :: vl
logical, intent(in) :: tamm_dancoff

public subroutine rpaechk(ee, nvec, ndsr, imax, tamm_dancoff)

@brief Remove negative eigenvalues

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout), dimension(:) :: ee
integer, intent(in) :: nvec
integer, intent(in) :: ndsr
integer, intent(inout) :: imax
logical, intent(in) :: tamm_dancoff

public subroutine rpaprint(ee, err, cnvtol, iter, imax, ndsr, do_neg)

@brief Print current excitation energies and errors

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: ee(:)
real(kind=dp), intent(in) :: err(:)
real(kind=dp), intent(in) :: cnvtol
integer, intent(in) :: iter
integer, intent(in) :: imax
integer, intent(in) :: ndsr
logical, optional :: do_neg

public subroutine rpaexpndv(vr, vl, vro, vlo, br, bl, ndsr, tamm_dancoff)

@brief Expand reduced vectors to real size space

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: vr(:,:)
real(kind=dp), intent(in) :: vl(:,:)
real(kind=dp), intent(out) :: vro(:,:)
real(kind=dp), intent(out) :: vlo(:,:)
real(kind=dp), intent(in) :: br(:,:)
real(kind=dp), intent(in) :: bl(:,:)
integer, intent(in) :: ndsr
logical, intent(in) :: tamm_dancoff

public subroutine rparesvec(q, w_l, w_r, v_l, v_r, ee, abd, ndsr, errors, tol, imax, tamm_dancoff)

@brief Construct residual vectors and check convergence

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(out), dimension(ubound(w_l,1),ndsr,*) :: q
real(kind=dp), intent(inout), dimension(:,:) :: w_l
real(kind=dp), intent(inout), dimension(:,:) :: w_r
real(kind=dp), intent(inout), dimension(:,:) :: v_l
real(kind=dp), intent(inout), dimension(:,:) :: v_r
real(kind=dp), intent(in), dimension(:) :: ee
real(kind=dp), intent(in), dimension(:) :: abd
integer, intent(in) :: ndsr
real(kind=dp), intent(inout) :: errors(:)
real(kind=dp), intent(in) :: tol
integer, intent(in) :: imax
logical :: tamm_dancoff

public subroutine rpanewb(ndsr, bvec, q, novec, nvec, ick, tamm_dancoff)

@brief Orthonormalize q(xvec_dim,ndsr*2) and append to bvec

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ndsr
real(kind=dp), intent(out), dimension(:,:) :: bvec
real(kind=dp), intent(inout), dimension(:,:) :: q
integer, intent(inout) :: novec
integer, intent(inout) :: nvec
integer, intent(out) :: ick
logical, intent(in) :: tamm_dancoff

public subroutine esum(e, pmo, z, nocc, ivec)

@breif Add (E_a-E_i)*Z_ai to Pmo

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: e(:)
real(kind=dp), intent(inout) :: pmo(:,:)
real(kind=dp), intent(in) :: z(:,:)
integer, intent(in) :: nocc
integer, intent(in) :: ivec

public subroutine tdhf_unrelaxed_density(xmy, xpy, mo, t, nocc, tda)

@brief Compute unrelaxed difference density matrix for R-TDDFT

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: xmy(*)
real(kind=dp), intent(in) :: xpy(*)
real(kind=dp), intent(in) :: mo(:,:)
real(kind=dp), intent(out) :: t(*)
integer, intent(in) :: nocc
logical, intent(in) :: tda

public subroutine int2_rpagrd_data_t_parallel_start(this, basis, nthreads)

Arguments

Type IntentOptional Attributes Name
class(int2_rpagrd_data_t), intent(inout), target :: this
type(basis_set), intent(in) :: basis
integer, intent(in) :: nthreads

public subroutine int2_rpagrd_data_t_parallel_stop(this)

Arguments

Type IntentOptional Attributes Name
class(int2_rpagrd_data_t), intent(inout) :: this

public subroutine int2_rpagrd_data_t_clean(this)

Arguments

Type IntentOptional Attributes Name
class(int2_rpagrd_data_t), intent(inout) :: this

public subroutine int2_rpagrd_data_t_init_screen(this, basis)

Arguments

Type IntentOptional Attributes Name
class(int2_rpagrd_data_t), intent(inout), target :: this
type(basis_set), intent(in) :: basis

public subroutine int2_rpagrd_data_t_update(this, buf)

Arguments

Type IntentOptional Attributes Name
class(int2_rpagrd_data_t), intent(inout) :: this
type(int2_storage_t), intent(inout) :: buf

public subroutine int2_rpagrd_data_t_update_hplus(this, buf, hp, v)

@brief Compute H^+[V] over a set of integrals

Arguments

Type IntentOptional Attributes Name
class(int2_rpagrd_data_t), intent(inout) :: this
type(int2_storage_t), intent(inout) :: buf
real(kind=dp), intent(inout) :: hp(:,:,:)
real(kind=dp), intent(in) :: v(:,:,:)

public subroutine int2_rpagrd_data_t_update_hminus(this, buf, hm, v)

@brief Compute H^-[V] over a set of integrals

Arguments

Type IntentOptional Attributes Name
class(int2_rpagrd_data_t), intent(inout) :: this
type(int2_storage_t), intent(inout) :: buf
real(kind=dp), intent(inout) :: hm(:,:,:)
real(kind=dp), intent(in) :: v(:,:,:)

public subroutine shlrpagrd(dsh, d, basis)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(out) :: dsh(:,:)
real(kind=dp), intent(in), dimension(:,:,:,:) :: d
type(basis_set), intent(in) :: basis

public subroutine symmetrize_matrices(a, lda, nmtx)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout) :: a(lda,lda,*)
integer, intent(in) :: lda
integer, intent(in) :: nmtx