xc_consumer_t Derived Type

type, public, abstract :: xc_consumer_t

@brief Basic type to consume XC values on a grid


Inherits

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

Inherited by

type~~xc_consumer_t~~InheritedByGraph type~xc_consumer_t xc_consumer_t type~xc_consumer_grad_t xc_consumer_grad_t type~xc_consumer_grad_t->type~xc_consumer_t type~xc_consumer_ks_t xc_consumer_ks_t type~xc_consumer_ks_t->type~xc_consumer_t type~xc_consumer_tde_t xc_consumer_tde_t type~xc_consumer_tde_t->type~xc_consumer_t type~xc_consumer_tdg_t xc_consumer_tdg_t type~xc_consumer_tdg_t->type~xc_consumer_t type~xc_consumer_gxc_t xc_consumer_gxc_t type~xc_consumer_gxc_t->type~xc_consumer_tde_t

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

Type-Bound Procedures

procedure(xc_consumer_parallel_start), public, deferred, pass :: parallel_start

  • subroutine xc_consumer_parallel_start(self, xce, nthreads) Prototype

    @brief Initialization of the data for XC consumer

    Note

    This class should handle multithreaded runs by its own means

    Note

    This subroutine is executed inside the parallel region by master thread only

    Arguments

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

procedure(xc_consumer_parallel_stop), public, deferred, pass :: parallel_stop

  • subroutine xc_consumer_parallel_stop(self) Prototype

    @brief Finalization of data in parallel run

    Note

    This subroutine is executed outside of the parallel region

    Arguments

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

procedure(xc_consumer_update), public, deferred, pass :: update

  • subroutine xc_consumer_update(self, xce, mythread) Prototype

    @brief Main subroutine to consume XC functional values provided by xc_engine_t

    Note

    This subroutine is executed inside the parallel region by every thread

    Arguments

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

procedure(xc_consumer_postUpdate), public, deferred, pass :: postUpdate

  • subroutine xc_consumer_postUpdate(self, xce, mythread) Prototype

    Note

    This subroutine is executed inside the parallel region by every thread

    Arguments

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

procedure(xc_consumer_clean), public, deferred, pass :: clean

  • subroutine xc_consumer_clean(self) Prototype

    @brief Release resources of xc_consumer_t

    Note

    This subroutine is executed outside of the parallel region

    Arguments

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