mod_dft_xclib Module


Uses

  • module~~mod_dft_xclib~~UsesGraph module~mod_dft_xclib mod_dft_xclib module~functionals functionals module~mod_dft_xclib->module~functionals module~precision precision module~mod_dft_xclib->module~precision module~functionals->module~precision iso_c_binding iso_c_binding module~functionals->iso_c_binding xc_f03_lib_m xc_f03_lib_m module~functionals->xc_f03_lib_m iso_fortran_env iso_fortran_env module~precision->iso_fortran_env

Used by

  • module~~mod_dft_xclib~~UsedByGraph module~mod_dft_xclib mod_dft_xclib module~mod_dft_xc_libxc mod_dft_xc_libxc module~mod_dft_xc_libxc->module~mod_dft_xclib module~mod_dft_gridint mod_dft_gridint module~mod_dft_gridint->module~mod_dft_xc_libxc module~mod_dft_gridint_energy mod_dft_gridint_energy module~mod_dft_gridint_energy->module~mod_dft_gridint module~mod_dft_gridint_fxc mod_dft_gridint_fxc module~mod_dft_gridint_fxc->module~mod_dft_gridint module~mod_dft_gridint_grad mod_dft_gridint_grad module~mod_dft_gridint_grad->module~mod_dft_gridint module~mod_dft_gridint_gxc mod_dft_gridint_gxc module~mod_dft_gridint_gxc->module~mod_dft_gridint module~mod_dft_gridint_gxc->module~mod_dft_gridint_fxc module~mod_dft_gridint_tdxc_grad mod_dft_gridint_tdxc_grad module~mod_dft_gridint_tdxc_grad->module~mod_dft_gridint proc~derexc_blk derexc_blk proc~derexc_blk->module~mod_dft_gridint proc~dmatd_blk dmatd_blk proc~dmatd_blk->module~mod_dft_gridint proc~tddft_fxc tddft_fxc proc~tddft_fxc->module~mod_dft_gridint proc~tddft_gxc tddft_gxc proc~tddft_gxc->module~mod_dft_gridint proc~tddft_xc_gradient tddft_xc_gradient proc~tddft_xc_gradient->module~mod_dft_gridint proc~utddft_fxc utddft_fxc proc~utddft_fxc->module~mod_dft_gridint proc~utddft_xc_gradient utddft_xc_gradient proc~utddft_xc_gradient->module~mod_dft_gridint proc~dftder dftder proc~dftder->module~mod_dft_gridint_grad proc~dftexcor dftexcor proc~dftexcor->module~mod_dft_gridint_energy proc~oqp_tdhf_z_vector oqp_tdhf_z_vector proc~oqp_tdhf_z_vector->module~mod_dft_gridint_fxc proc~oqp_tdhf_z_vector->module~mod_dft_gridint_gxc proc~tdhf_energy tdhf_energy proc~tdhf_energy->module~mod_dft_gridint_fxc proc~tdhf_gradient tdhf_gradient proc~tdhf_gradient->module~mod_dft_gridint_tdxc_grad

Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: XCLIB_LIBXC = 0

Derived Types

type, public ::  xc_pack_t

Components

Type Visibility Attributes Name Initial
integer, public :: ra = 1
integer, public :: rb = 2
integer, public :: ga = 1
integer, public :: gc = 2
integer, public :: gb = 3
integer, public :: ta = 1
integer, public :: tb = 2
integer, public :: rara = 1
integer, public :: rarb = 2
integer, public :: rbrb = 3
integer, public :: raga = 1
integer, public :: ragc = 2
integer, public :: ragb = 3
integer, public :: rbga = 4
integer, public :: rbgc = 5
integer, public :: rbgb = 6
integer, public :: rata = 1
integer, public :: ratb = 2
integer, public :: rbta = 3
integer, public :: rbtb = 4
integer, public :: gaga = 1
integer, public :: gagc = 2
integer, public :: gagb = 3
integer, public :: gcgc = 4
integer, public :: gbgc = 5
integer, public :: gbgb = 6
integer, public :: gata = 1
integer, public :: gatb = 2
integer, public :: gcta = 3
integer, public :: gctb = 4
integer, public :: gbta = 5
integer, public :: gbtb = 6
integer, public :: tata = 1
integer, public :: tatb = 2
integer, public :: tbtb = 3
integer, public :: rarara = 1
integer, public :: rararb = 2
integer, public :: rarbrb = 3
integer, public :: rbrbrb = 4
integer, public :: gagaga = 1
integer, public :: gagagc = 2
integer, public :: gagagb = 3
integer, public :: gagcgc = 4
integer, public :: gagbgc = 5
integer, public :: gagbgb = 6
integer, public :: gcgcgc = 7
integer, public :: gbgcgc = 8
integer, public :: gbgbgc = 9
integer, public :: gbgbgb = 10
integer, public :: raraga = 1
integer, public :: raragc = 2
integer, public :: raragb = 3
integer, public :: rarbga = 4
integer, public :: rarbgc = 5
integer, public :: rarbgb = 6
integer, public :: rbrbga = 7
integer, public :: rbrbgc = 8
integer, public :: rbrbgb = 9
integer, public :: ragaga = 1
integer, public :: ragagc = 2
integer, public :: ragagb = 3
integer, public :: ragcgc = 4
integer, public :: ragbgc = 5
integer, public :: ragbgb = 6
integer, public :: rbgaga = 7
integer, public :: rbgagc = 8
integer, public :: rbgagb = 9
integer, public :: rbgcgc = 10
integer, public :: rbgbgc = 11
integer, public :: rbgbgb = 12
integer, public :: tatata = 1
integer, public :: tatatb = 2
integer, public :: tatbtb = 3
integer, public :: tbtbtb = 4
integer, public :: rarata = 1
integer, public :: raratb = 2
integer, public :: rarbta = 3
integer, public :: rarbtb = 4
integer, public :: rbrbta = 5
integer, public :: rbrbtb = 6
integer, public :: ratata = 1
integer, public :: ratatb = 2
integer, public :: ratbtb = 3
integer, public :: rbtata = 4
integer, public :: rbtatb = 5
integer, public :: rbtbtb = 6
integer, public :: ragata = 1
integer, public :: ragatb = 2
integer, public :: ragcta = 3
integer, public :: ragctb = 4
integer, public :: ragbta = 5
integer, public :: ragbtb = 6
integer, public :: rbgata = 7
integer, public :: rbgatb = 8
integer, public :: rbgcta = 9
integer, public :: rbgctb = 10
integer, public :: rbgbta = 11
integer, public :: rbgbtb = 12
integer, public :: gagata = 1
integer, public :: gagatb = 2
integer, public :: gagcta = 3
integer, public :: gagctb = 4
integer, public :: gagbta = 5
integer, public :: gagbtb = 6
integer, public :: gcgcta = 7
integer, public :: gcgctb = 8
integer, public :: gbgcta = 9
integer, public :: gbgctb = 10
integer, public :: gbgbta = 11
integer, public :: gbgbtb = 12
integer, public :: gatata = 1
integer, public :: gatatb = 2
integer, public :: gatbtb = 3
integer, public :: gctata = 4
integer, public :: gctatb = 5
integer, public :: gctbtb = 6
integer, public :: gbtata = 7
integer, public :: gbtatb = 8
integer, public :: gbtbtb = 9

type, public, abstract ::  xc_lib_t

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()

Type-Bound Procedures

procedure(init_xc_lib), public, deferred :: init
procedure(compute_xc_lib), public, deferred :: compute
procedure(setPts_xc_lib), public, deferred :: setPts
procedure, public :: clean
procedure, public :: scalexc
procedure, public, non_overridable :: echo
procedure, public, non_overridable :: getEnergy
procedure, public, non_overridable :: resetEnergy