xc_libxc_t Derived Type

type, public, extends(xc_lib_t) :: xc_libxc_t


Inherits

type~~xc_libxc_t~~InheritsGraph type~xc_libxc_t xc_libxc_t type~xc_lib_t xc_lib_t type~xc_libxc_t->type~xc_lib_t type~xc_pack_t xc_pack_t type~xc_lib_t->type~xc_pack_t ids

Inherited by

type~~xc_libxc_t~~InheritedByGraph type~xc_libxc_t xc_libxc_t type~xc_engine_t xc_engine_t type~xc_engine_t->type~xc_libxc_t XCLib

Components

Type Visibility Attributes Name Initial
logical, public :: reqSigma = .FALSE.
logical, public :: reqTau = .FALSE.
logical, public :: reqLapl = .FALSE.
logical, public :: reqBeta = .FALSE.
integer, public :: maxPts = 0
integer, public :: numPts = 0
integer, public :: nDer = 0
real(kind=fp), public :: E_xc = 0.0
real(kind=fp), public :: E_exch = 0.0
real(kind=fp), public :: E_corr = 0.0
logical, public :: providesEXC = .FALSE.
logical, public :: providesEX = .FALSE.
logical, public :: providesEC = .FALSE.
integer, public :: xclibID = XCLIB_LIBXC
type(xc_pack_t), public :: ids
real(kind=fp), public, allocatable :: memory_(:)
real(kind=fp), public, contiguous, pointer :: rho(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: drho(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: sig(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: tau(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: lapl(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: exc(:) => NULL()
real(kind=fp), public, contiguous, pointer :: d1dr(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d1ds(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d1dt(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d1dl(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d2r2(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d2s2(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d2t2(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d2rs(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d2rt(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d2st(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d2rl(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d2sl(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d2tl(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d2l2(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3r3(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3r2s(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3rs2(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3s3(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3t3(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3r2t(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3s2t(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3rt2(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3st2(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3rst(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3r2l(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3rl2(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3rsl(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3rtl(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3s2l(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3sl2(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3stl(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3t2l(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3tl2(:,:) => NULL()
real(kind=fp), public, contiguous, pointer :: d3l3(:,:) => NULL()
integer, public :: nSpin
real(kind=fp), public, contiguous, pointer :: lib_output(:) => null()

Type-Bound Procedures

procedure, public :: clean

  • private subroutine clean(self)

    @brief Cleanup @author Vladimir Mironov

    Arguments

    Type IntentOptional Attributes Name
    class(xc_lib_t) :: self

procedure, public :: scalexc

  • private subroutine scalexc(self, wts)

    @brief Scale XC values by grid weights @author Vladimir Mironov

    Arguments

    Type IntentOptional Attributes Name
    class(xc_lib_t) :: self
    real(kind=fp) :: wts(:)

procedure, public, non_overridable :: echo

  • private subroutine echo(self)

    @brief Print parameters of the xc_engine_t instance @author Vladimir Mironov

    Arguments

    Type IntentOptional Attributes Name
    class(xc_lib_t) :: self

procedure, public, non_overridable :: getEnergy

  • private subroutine getEnergy(self, E_xc, E_exch, E_corr)

    @brief Get debug statistics @author Vladimir Mironov

    Arguments

    Type IntentOptional Attributes Name
    class(xc_lib_t) :: self
    real(kind=fp), intent(out) :: E_xc
    real(kind=fp), intent(out) :: E_exch
    real(kind=fp), intent(out) :: E_corr

procedure, public, non_overridable :: resetEnergy

  • private subroutine resetEnergy(self)

    @brief Set debug statistics @author Vladimir Mironov

    Arguments

    Type IntentOptional Attributes Name
    class(xc_lib_t) :: self

procedure, public :: init

  • public subroutine init(self, reqSigma, reqTau, reqLapl, reqBeta, maxPts, nDer)

    Arguments

    Type IntentOptional Attributes Name
    class(xc_libxc_t) :: self
    logical, intent(in) :: reqSigma
    logical, intent(in) :: reqTau
    logical, intent(in) :: reqLapl
    logical, intent(in) :: reqBeta
    integer, intent(in) :: maxPts
    integer, intent(in) :: nDer

procedure, public :: setPts

  • public subroutine setPts(self, numPts)

    Arguments

    Type IntentOptional Attributes Name
    class(xc_libxc_t), target :: self
    integer, intent(in) :: numPts

procedure, public :: compute

  • public subroutine compute(self, functional, wts)

    Arguments

    Type IntentOptional Attributes Name
    class(xc_libxc_t) :: self
    class(functional_t) :: functional
    real(kind=fp), intent(in) :: wts(:)