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

Interface class to Libxc. More...

#include <xc_functional_base.hpp>

Inherited by sirius::XC_functional.

Public Member Functions

 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...
 

Protected Attributes

std::string libxc_name_
 
int num_spins_
 
std::unique_ptr< xc_func_type > handler_ {nullptr}
 
bool libxc_initialized_ {false}
 

Private Member Functions

 XC_functional_base (const XC_functional_base &src)=delete
 
XC_functional_baseoperator= (const XC_functional_base &src)=delete
 

Detailed Description

Interface class to Libxc.

Definition at line 1387 of file xc_functional_base.hpp.

Constructor & Destructor Documentation

◆ XC_functional_base() [1/2]

sirius::XC_functional_base::XC_functional_base ( const std::string  libxc_name__,
int  num_spins__ 
)
inline

Definition at line 1406 of file xc_functional_base.hpp.

◆ XC_functional_base() [2/2]

sirius::XC_functional_base::XC_functional_base ( XC_functional_base &&  src__)
inline

Definition at line 1433 of file xc_functional_base.hpp.

◆ ~XC_functional_base()

sirius::XC_functional_base::~XC_functional_base ( )
inline

Definition at line 1442 of file xc_functional_base.hpp.

Member Function Documentation

◆ name()

const std::string sirius::XC_functional_base::name ( ) const
inline

Definition at line 1449 of file xc_functional_base.hpp.

◆ refs()

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

Definition at line 1458 of file xc_functional_base.hpp.

◆ family()

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

Definition at line 1475 of file xc_functional_base.hpp.

◆ handler()

xc_func_type * sirius::XC_functional_base::handler ( )
inline

Definition at line 1488 of file xc_functional_base.hpp.

◆ is_lda()

bool sirius::XC_functional_base::is_lda ( ) const
inline

Definition at line 1497 of file xc_functional_base.hpp.

◆ is_gga()

bool sirius::XC_functional_base::is_gga ( ) const
inline

Definition at line 1502 of file xc_functional_base.hpp.

◆ kind()

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

Definition at line 1507 of file xc_functional_base.hpp.

◆ is_exchange()

bool sirius::XC_functional_base::is_exchange ( ) const
inline

Definition at line 1516 of file xc_functional_base.hpp.

◆ is_correlation()

bool sirius::XC_functional_base::is_correlation ( ) const
inline

Definition at line 1521 of file xc_functional_base.hpp.

◆ is_exchange_correlation()

bool sirius::XC_functional_base::is_exchange_correlation ( ) const
inline

Definition at line 1526 of file xc_functional_base.hpp.

◆ get_lda() [1/2]

void sirius::XC_functional_base::get_lda ( const int  size,
const double *  rho,
double *  v,
double *  e 
) const
inline

Get LDA contribution.

Definition at line 1532 of file xc_functional_base.hpp.

◆ get_lda() [2/2]

void sirius::XC_functional_base::get_lda ( const int  size,
const double *  rho_up,
const double *  rho_dn,
double *  v_up,
double *  v_dn,
double *  e 
) const
inline

Get LSDA contribution.

Definition at line 1560 of file xc_functional_base.hpp.

◆ get_gga() [1/2]

void sirius::XC_functional_base::get_gga ( const int  size,
const double *  rho,
const double *  sigma,
double *  vrho,
double *  vsigma,
double *  e 
) const
inline

Get GGA contribution.

Definition at line 1600 of file xc_functional_base.hpp.

◆ get_gga() [2/2]

void sirius::XC_functional_base::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
inline

Get spin-resolved GGA contribution.

Definition at line 1626 of file xc_functional_base.hpp.

◆ set_dens_threshold()

void sirius::XC_functional_base::set_dens_threshold ( double  tre)
inline

set density threshold of libxc, if density is below tre, all xc output will be set to 0.

Definition at line 1699 of file xc_functional_base.hpp.

Member Data Documentation

◆ libxc_name_

std::string sirius::XC_functional_base::libxc_name_
protected

Definition at line 1390 of file xc_functional_base.hpp.

◆ num_spins_

int sirius::XC_functional_base::num_spins_
protected

Definition at line 1392 of file xc_functional_base.hpp.

◆ handler_

std::unique_ptr<xc_func_type> sirius::XC_functional_base::handler_ {nullptr}
protected

Definition at line 1394 of file xc_functional_base.hpp.

◆ libxc_initialized_

bool sirius::XC_functional_base::libxc_initialized_ {false}
protected

Definition at line 1396 of file xc_functional_base.hpp.


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