SIRIUS 7.5.0
Electronic structure library and applications
Public Member Functions | Private Member Functions | List of all members
sirius::XC_functional Class Reference

Interface class to Libxc. More...

#include <xc_functional.hpp>

Inherits sirius::XC_functional_base.

Public Member Functions

 XC_functional (spfft::Transform const &fft__, r3::matrix< double > const &lattice_vectors__, const std::string libxc_name__, int num_spins__)
 
 XC_functional (XC_functional &&src__)
 
const std::string refs () const
 
int family () const
 
bool is_vdw () const
 
void vdw_update_unit_cell (spfft::Transform const &fft__, r3::matrix< double > const &lattice_vectors__)
 
int kind () const
 
- Public Member Functions inherited from sirius::XC_functional_base
 XC_functional_base (const std::string libxc_name__, int num_spins__)
 
 XC_functional_base (XC_functional_base &&src__)
 
const std::string name () const
 
const std::string refs () const
 
int family () const
 
xc_func_type * handler ()
 
bool is_lda () const
 
bool is_gga () const
 
int kind () const
 
bool is_exchange () const
 
bool is_correlation () const
 
bool is_exchange_correlation () const
 
void get_lda (const int size, const double *rho, double *v, double *e) const
 Get LDA contribution. More...
 
void get_lda (const int size, const double *rho_up, const double *rho_dn, double *v_up, double *v_dn, double *e) const
 Get LSDA contribution. More...
 
void get_gga (const int size, const double *rho, const double *sigma, double *vrho, double *vsigma, double *e) const
 Get GGA contribution. More...
 
void get_gga (const int size, const double *rho_up, const double *rho_dn, const double *sigma_uu, const double *sigma_ud, const double *sigma_dd, double *vrho_up, double *vrho_dn, double *vsigma_uu, double *vsigma_ud, double *vsigma_dd, double *e) const
 Get spin-resolved GGA contribution. More...
 
void set_dens_threshold (double tre)
 set density threshold of libxc, if density is below tre, all xc output will be set to 0. More...
 

Private Member Functions

 XC_functional (const XC_functional &src)=delete
 
XC_functionaloperator= (const XC_functional &src)=delete
 

Additional Inherited Members

- Protected Attributes inherited from sirius::XC_functional_base
std::string libxc_name_
 
int num_spins_
 
std::unique_ptr< xc_func_type > handler_ {nullptr}
 
bool libxc_initialized_ {false}
 

Detailed Description

Interface class to Libxc.

Definition at line 43 of file xc_functional.hpp.

Constructor & Destructor Documentation

◆ XC_functional() [1/2]

sirius::XC_functional::XC_functional ( spfft::Transform const &  fft__,
r3::matrix< double > const &  lattice_vectors__,
const std::string  libxc_name__,
int  num_spins__ 
)
inline

Definition at line 61 of file xc_functional.hpp.

◆ XC_functional() [2/2]

sirius::XC_functional::XC_functional ( XC_functional &&  src__)
inline

Definition at line 146 of file xc_functional.hpp.

◆ ~XC_functional()

sirius::XC_functional::~XC_functional ( )
inline

Definition at line 156 of file xc_functional.hpp.

Member Function Documentation

◆ refs()

const std::string sirius::XC_functional::refs ( ) const
inline

Definition at line 167 of file xc_functional.hpp.

◆ family()

int sirius::XC_functional::family ( ) const
inline

Definition at line 186 of file xc_functional.hpp.

◆ is_vdw()

bool sirius::XC_functional::is_vdw ( ) const
inline

Definition at line 196 of file xc_functional.hpp.

◆ vdw_update_unit_cell()

void sirius::XC_functional::vdw_update_unit_cell ( spfft::Transform const &  fft__,
r3::matrix< double > const &  lattice_vectors__ 
)
inline

Definition at line 205 of file xc_functional.hpp.

◆ kind()

int sirius::XC_functional::kind ( ) const
inline

Definition at line 219 of file xc_functional.hpp.


The documentation for this class was generated from the following file: