Octopus
xc_oct_m Module Reference

Data Types

type  internal_quantities_t
 
type  xc_t
 

Functions/Subroutines

subroutine, public xc_write_info (xcs, iunit, namespace)
 
subroutine, public xc_write_fxc_info (xcs, iunit, namespace)
 
subroutine, public xc_init_device_support (xcs, namespace)
 
logical function, public xc_is_using_device (namespace)
 Check if XC will run on device (parses config and checks availability) More...
 
subroutine, public xc_init (xcs, namespace, ndim, periodic_dim, nel, x_id, c_id, xk_id, ck_id, hartree_fock, ispin)
 
subroutine, public xc_end (xcs)
 
logical pure function, public xc_is_orbital_dependent (xcs)
 Is the xc family orbital dependent. More...
 
pure logical function, public family_is_gga (family, only_collinear)
 Is the xc function part of the GGA family. More...
 
pure logical function, public family_is_supported (family)
 Is the xc family internally supported by Octopus. More...
 
pure logical function, public family_is_mgga (family, only_collinear)
 Is the xc function part of the mGGA family. More...
 
pure logical function, public family_is_nc_mgga (family)
 
logical pure function, public family_is_mgga_with_exc (xcs)
 Is the xc function part of the mGGA family with an energy functional. More...
 
logical pure function, public family_is_hybrid (xcs)
 Returns true if the functional is an hybrid functional. More...
 
pure logical function, public in_family (family, xc_families)
 
logical function xc_compute_exchange (xc, theory_level)
 Theory levels and functionals for which exacy exchange is required. More...
 
subroutine set_hybrid_params (xcs, namespace, cam_ext)
 Sets external parameters for some hybrid functionals. More...
 
logical function, public xc_is_not_size_consistent (xcs, namespace)
 Is one of the x or c functional is not size consistent. More...
 
logical pure function, public xc_is_energy_functional (xcs)
 Is one of the x or c functional is not an energy functional. More...
 

Variables

real(real64), parameter, public xc_tiny = 1.0e-12_real64
 Arbitrary definition of tiny, for use in XC context. More...
 
integer, parameter, public lr_none = 0
 
integer, parameter, public lr_x = 1
 

Function/Subroutine Documentation

◆ xc_write_info()

subroutine, public xc_oct_m::xc_write_info ( type(xc_t), intent(in)  xcs,
integer, intent(in), optional  iunit,
type(namespace_t), intent(in), optional  namespace 
)

Definition at line 264 of file xc.F90.

◆ xc_write_fxc_info()

subroutine, public xc_oct_m::xc_write_fxc_info ( type(xc_t), intent(in)  xcs,
integer, intent(in), optional  iunit,
type(namespace_t), intent(in), optional  namespace 
)

Definition at line 286 of file xc.F90.

◆ xc_init_device_support()

subroutine, public xc_oct_m::xc_init_device_support ( type(xc_t), intent(inout)  xcs,
type(namespace_t), intent(in)  namespace 
)

Definition at line 307 of file xc.F90.

◆ xc_is_using_device()

logical function, public xc_oct_m::xc_is_using_device ( type(namespace_t), intent(in)  namespace)

Check if XC will run on device (parses config and checks availability)

Definition at line 320 of file xc.F90.

◆ xc_init()

subroutine, public xc_oct_m::xc_init ( type(xc_t), intent(out)  xcs,
type(namespace_t), intent(in)  namespace,
integer, intent(in)  ndim,
integer, intent(in)  periodic_dim,
real(real64), intent(in)  nel,
integer, intent(in)  x_id,
integer, intent(in)  c_id,
integer, intent(in)  xk_id,
integer, intent(in)  ck_id,
logical, intent(in)  hartree_fock,
integer, intent(in)  ispin 
)

Definition at line 344 of file xc.F90.

◆ xc_end()

subroutine, public xc_oct_m::xc_end ( type(xc_t), intent(inout)  xcs)

Definition at line 607 of file xc.F90.

◆ xc_is_orbital_dependent()

logical pure function, public xc_oct_m::xc_is_orbital_dependent ( type(xc_t), intent(in)  xcs)

Is the xc family orbital dependent.

Note that at the moment this routine consider all mGGAs to be orbital dependent while it should be formally only the one having a dependence in vtau

Definition at line 671 of file xc.F90.

◆ family_is_gga()

pure logical function, public xc_oct_m::family_is_gga ( integer, intent(in)  family,
logical, intent(in), optional  only_collinear 
)

Is the xc function part of the GGA family.

Definition at line 682 of file xc.F90.

◆ family_is_supported()

pure logical function, public xc_oct_m::family_is_supported ( integer, intent(in)  family)

Is the xc family internally supported by Octopus.

This is used internally to check if we need to call libxc or not OEP functionals are treated separately.

Definition at line 700 of file xc.F90.

◆ family_is_mgga()

pure logical function, public xc_oct_m::family_is_mgga ( integer, intent(in)  family,
logical, intent(in), optional  only_collinear 
)

Is the xc function part of the mGGA family.

Definition at line 709 of file xc.F90.

◆ family_is_nc_mgga()

pure logical function, public xc_oct_m::family_is_nc_mgga ( integer, intent(in)  family)

Definition at line 720 of file xc.F90.

◆ family_is_mgga_with_exc()

logical pure function, public xc_oct_m::family_is_mgga_with_exc ( type(xc_t), intent(in)  xcs)

Is the xc function part of the mGGA family with an energy functional.

Definition at line 728 of file xc.F90.

◆ family_is_hybrid()

logical pure function, public xc_oct_m::family_is_hybrid ( type(xc_t), intent(in)  xcs)

Returns true if the functional is an hybrid functional.

Definition at line 743 of file xc.F90.

◆ in_family()

pure logical function, public xc_oct_m::in_family ( integer, intent(in)  family,
integer, dimension(:), intent(in)  xc_families 
)

Definition at line 756 of file xc.F90.

◆ xc_compute_exchange()

logical function xc_oct_m::xc_compute_exchange ( class(xc_t), intent(in)  xc,
integer, intent(in)  theory_level 
)
private

Theory levels and functionals for which exacy exchange is required.

Definition at line 764 of file xc.F90.

◆ set_hybrid_params()

subroutine xc_oct_m::set_hybrid_params ( type(xc_t), intent(inout)  xcs,
type(namespace_t), intent(in)  namespace,
type(xc_cam_t), intent(in)  cam_ext 
)
private

Sets external parameters for some hybrid functionals.

Parameters
[in]cam_extExternal CAM parameters to add for the hybrids

Definition at line 783 of file xc.F90.

◆ xc_is_not_size_consistent()

logical function, public xc_oct_m::xc_is_not_size_consistent ( type(xc_t), intent(in)  xcs,
type(namespace_t), intent(in)  namespace 
)

Is one of the x or c functional is not size consistent.

Definition at line 828 of file xc.F90.

◆ xc_is_energy_functional()

logical pure function, public xc_oct_m::xc_is_energy_functional ( type(xc_t), intent(in)  xcs)

Is one of the x or c functional is not an energy functional.

Definition at line 838 of file xc.F90.

Variable Documentation

◆ xc_tiny

real(real64), parameter, public xc_oct_m::xc_tiny = 1.0e-12_real64

Arbitrary definition of tiny, for use in XC context.

Definition at line 255 of file xc.F90.

◆ lr_none

integer, parameter, public xc_oct_m::lr_none = 0

Definition at line 257 of file xc.F90.

◆ lr_x

integer, parameter, public xc_oct_m::lr_x = 1

Definition at line 257 of file xc.F90.