xc_consumer_gxc_t Derived Type

type, public, extends(xc_consumer_tde_t) :: xc_consumer_gxc_t


Inherits

type~~xc_consumer_gxc_t~~InheritsGraph type~xc_consumer_gxc_t xc_consumer_gxc_t type~xc_consumer_tde_t xc_consumer_tde_t type~xc_consumer_gxc_t->type~xc_consumer_tde_t type~xc_consumer_t xc_consumer_t type~xc_consumer_tde_t->type~xc_consumer_t type~par_env_t par_env_t type~xc_consumer_t->type~par_env_t pe

Components

Type Visibility Attributes Name Initial
real(kind=fp), public :: E_xc
real(kind=fp), public :: E_exch
real(kind=fp), public :: E_corr
real(kind=fp), public :: N_elec
real(kind=fp), public :: E_kin
real(kind=fp), public :: G_total(3)
type(par_env_t), public :: pe
integer, public :: nMtx = 1
real(kind=fp), public, pointer :: da(:,:,:) => null()
real(kind=fp), public, pointer :: db(:,:,:) => null()
real(kind=fp), public, allocatable :: focks(:,:,:,:,:)
real(kind=fp), public, allocatable :: mo(:,:,:,:,:)
real(kind=fp), public, allocatable :: rRho(:,:,:,:)
real(kind=fp), public, allocatable :: drRho(:,:,:,:,:)
real(kind=fp), public, allocatable :: rTau(:,:,:,:)
real(kind=fp), public, allocatable :: focks_(:,:)
real(kind=fp), public, allocatable :: tmpMO_(:,:)
real(kind=fp), public, allocatable :: tmpDensity_(:,:,:)
real(kind=fp), public, allocatable :: moG1_(:,:)
real(kind=fp), public, allocatable :: tmp_(:,:)

Type-Bound Procedures

procedure, public :: parallel_start

  • private subroutine parallel_start(self, xce, nThreads)

    Arguments

    Type IntentOptional Attributes Name
    class(xc_consumer_tde_t), intent(inout), target :: self
    class(xc_engine_t), intent(in) :: xce
    integer, intent(in) :: nThreads

procedure, public :: parallel_stop

  • private subroutine parallel_stop(self)

    Arguments

    Type IntentOptional Attributes Name
    class(xc_consumer_tde_t), intent(inout) :: self

procedure, public :: update

  • private subroutine update(self, xce, myThread)

    Arguments

    Type IntentOptional Attributes Name
    class(xc_consumer_tde_t), intent(inout) :: self
    class(xc_engine_t), intent(in) :: xce
    integer :: myThread

procedure, public :: postUpdate

  • private subroutine postUpdate(self, xce, myThread)

    Arguments

    Type IntentOptional Attributes Name
    class(xc_consumer_tde_t), intent(inout) :: self
    class(xc_engine_t), intent(in) :: xce
    integer :: myThread

procedure, public :: clean

  • private subroutine clean(self)

    Arguments

    Type IntentOptional Attributes Name
    class(xc_consumer_tde_t), intent(inout) :: self

procedure, public :: resetXCPointers

  • private subroutine resetXCPointers(self, xce, da, db, mo, moG1, myThread)

    @brief Adjust internal memory storage for a given number of pruned grid points @author Konstantin Komarov

    Arguments

    Type IntentOptional Attributes Name
    class(xc_consumer_tde_t), intent(inout), target :: self
    class(xc_engine_t), intent(in) :: xce
    real(kind=fp), intent(out), pointer :: da(:,:,:)
    real(kind=fp), intent(out), pointer :: db(:,:,:)
    real(kind=fp), intent(out), pointer :: mo(:,:,:,:)
    real(kind=fp), intent(out), pointer :: moG1(:,:,:,:)
    integer, intent(in) :: myThread

procedure, public :: computeRAll

  • private subroutine computeRAll(self, xce, myThread)

    @brief Compute required MO-like values as well as \rho, \sigma, and \tau

    Arguments

    Type IntentOptional Attributes Name
    class(xc_consumer_tde_t), intent(inout) :: self
    class(xc_engine_t), intent(in) :: xce
    integer :: myThread

procedure, public :: resetOrbPointers

  • private subroutine resetOrbPointers(self, xce, focks, tmp, myThread)

    Arguments

    Type IntentOptional Attributes Name
    class(xc_consumer_tde_t), intent(inout), target :: self
    class(xc_engine_t), intent(in) :: xce
    real(kind=fp), intent(out), pointer :: focks(:,:,:,:)
    real(kind=fp), intent(out), optional, pointer :: tmp(:,:,:)
    integer, intent(in) :: myThread

procedure, public :: RUpdate => GxcRUpdate

  • private subroutine GxcRUpdate(dat, xce, mythread)

    @brief Compute XC 3rd derivative contractions needed for TD-DFT gradient, namely: \sum_{mns,kls'} (G_xc){mns,kls',pqs''} * (X+Y) * (X+Y)_{kls'} @details not spin-polarized version @param[inout] fa Kohn-Sham matrices @author Vladimir Mironov

    Arguments

    Type IntentOptional Attributes Name
    class(xc_consumer_gxc_t) :: dat
    class(xc_engine_t) :: xce
    integer :: mythread

procedure, public :: UUpdate => GxcUUpdate

  • private subroutine GxcUUpdate(dat, xce, mythread)

    @brief Compute XC 3rd derivative contractions needed for TD-DFT gradient, namely: \sum_{mns,kls'} (G_xc){mns,kls',pqs''} * (X+Y) * (X+Y)_{kls'} @details spin-polarized version @param[inout] fa Kohn-Sham matrices @author Vladimir Mironov

    Arguments

    Type IntentOptional Attributes Name
    class(xc_consumer_gxc_t) :: dat
    class(xc_engine_t) :: xce
    integer :: mythread