Psi4
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
psi::SuperFunctional Class Reference

#include <superfunctional.h>

Public Member Functions

 SuperFunctional ()
 
virtual ~SuperFunctional ()
 
std::shared_ptr< SuperFunctionalbuild_worker ()
 
void allocate ()
 
std::map< std::string,
SharedVector > & 
compute_functional (const std::map< std::string, SharedVector > &vals, int npoints=-1)
 
void test_functional (SharedVector rho_a, SharedVector rho_b, SharedVector gamma_aa, SharedVector gamma_ab, SharedVector gamma_bb, SharedVector tau_a, SharedVector tau_b)
 
std::map< std::string,
SharedVector
compute_vv10_cache (const std::map< std::string, SharedVector > &vals, std::shared_ptr< BlockOPoints > block, double rho_thresh, int npoints=-1, bool internal=false)
 
double compute_vv10_kernel (const std::map< std::string, SharedVector > &vals, const std::vector< std::map< std::string, SharedVector >> &vv10_cache, std::shared_ptr< BlockOPoints > block, int npoints=-1)
 
std::map< std::string,
SharedVector > & 
values ()
 
SharedVector value (const std::string &key)
 
std::vector< std::shared_ptr
< Functional > > & 
x_functionals ()
 
std::vector< std::shared_ptr
< Functional > > & 
c_functionals ()
 
std::shared_ptr< Functionalgrac_x_functional ()
 
std::shared_ptr< Functionalgrac_c_functional ()
 
std::shared_ptr< Functionalx_functional (const std::string &name)
 
std::shared_ptr< Functionalc_functional (const std::string &name)
 
void add_x_functional (std::shared_ptr< Functional > fun)
 
void add_c_functional (std::shared_ptr< Functional > fun)
 
void set_grac_x_functional (std::shared_ptr< Functional > fun)
 
void set_grac_c_functional (std::shared_ptr< Functional > fun)
 
void set_lock (bool locked)
 
void set_name (const std::string &name)
 
void set_description (const std::string &description)
 
void set_citation (const std::string &citation)
 
void set_max_points (int max_points)
 
void set_deriv (int deriv)
 
void set_x_omega (double omega)
 
void set_c_omega (double omega)
 
void set_x_alpha (double alpha)
 
void set_x_beta (double beta)
 
void set_c_alpha (double alpha)
 
void set_c_ss_alpha (double alpha)
 
void set_c_os_alpha (double alpha)
 
void set_vv10_b (double b)
 
void set_vv10_c (double c)
 
void set_grac_shift (double grac_shift)
 
void set_grac_alpha (double grac_alpha)
 
void set_grac_beta (double grac_beta)
 
std::string name () const
 
std::string description () const
 
std::string citation () const
 
int ansatz () const
 
int max_points () const
 
int deriv () const
 
double x_omega () const
 
double c_omega () const
 
double x_alpha () const
 
double x_beta () const
 
double c_alpha () const
 
double c_ss_alpha () const
 
double c_os_alpha () const
 
double vv10_b () const
 
double vv10_c () const
 
double grac_shift () const
 
double grac_alpha () const
 
double grac_beta () const
 
bool needs_xc () const
 
bool needs_vv10 () const
 
bool needs_grac () const
 
bool is_unpolarized () const
 
bool is_meta () const
 
bool is_gga () const
 
bool is_x_lrc () const
 
bool is_c_lrc () const
 
bool is_x_hybrid () const
 
bool is_c_hybrid () const
 
bool is_c_scs_hybrid () const
 
bool is_libxc_func () const
 
void print (std::string out_fname="outfile", int print=1) const
 
void py_print () const
 
void py_print_detail (int level) const
 

Static Public Member Functions

static std::shared_ptr
< SuperFunctional
blank ()
 
static std::shared_ptr
< SuperFunctional
XC_build (std::string name, bool unpolarized)
 

Protected Member Functions

void common_init ()
 
void can_edit ()
 

Protected Attributes

std::string name_
 
std::string description_
 
std::string citation_
 
bool locked_
 
std::vector< std::shared_ptr
< Functional > > 
x_functionals_
 
double x_alpha_
 
double x_beta_
 
double x_omega_
 
std::vector< std::shared_ptr
< Functional > > 
c_functionals_
 
double c_alpha_
 
double c_ss_alpha_
 
double c_os_alpha_
 
double c_omega_
 
bool needs_grac_
 
std::shared_ptr< Functionalgrac_x_functional_
 
std::shared_ptr< Functionalgrac_c_functional_
 
double grac_shift_
 
double grac_alpha_
 
double grac_beta_
 
bool needs_vv10_
 
double vv10_b_
 
double vv10_c_
 
double vv10_beta_
 
bool libxc_xc_func_
 
int max_points_
 
int deriv_
 
std::map< std::string,
SharedVector
values_
 
std::map< std::string,
SharedVector
ac_values_
 
std::map< std::string,
SharedVector
vv_values_
 

Detailed Description

SuperFunctional: High-level semilocal DFA object

This class directly holds semilocal DFA objects and sketches the definition of the generalized Kohn-Sham functional via alpha and omega parameters for long-range and global hybrid exact exchange mixing, and alpha and omega parameters for long-range and global MP2-like correlation.

A DFT functional is defined as:

E_XC = E_X + E_C + E(-D) E_X = (1-) E_X^DFA [] + E_X^HF + (1-) E_X^HF,LR E_C = E_C^DFA [] + E_C^MP2

E(-D) is an empirical dispersion correction of some form

Constructor & Destructor Documentation

psi::SuperFunctional::SuperFunctional ( )
psi::SuperFunctional::~SuperFunctional ( )
virtual

Member Function Documentation

void psi::SuperFunctional::add_c_functional ( std::shared_ptr< Functional fun)
void psi::SuperFunctional::add_x_functional ( std::shared_ptr< Functional fun)
void psi::SuperFunctional::allocate ( )
int psi::SuperFunctional::ansatz ( ) const
std::shared_ptr< SuperFunctional > psi::SuperFunctional::blank ( )
static
std::shared_ptr< SuperFunctional > psi::SuperFunctional::build_worker ( )
double psi::SuperFunctional::c_alpha ( ) const
inline
std::shared_ptr< Functional > psi::SuperFunctional::c_functional ( const std::string &  name)
std::vector<std::shared_ptr<Functional> >& psi::SuperFunctional::c_functionals ( )
inline
double psi::SuperFunctional::c_omega ( ) const
inline
double psi::SuperFunctional::c_os_alpha ( ) const
inline
double psi::SuperFunctional::c_ss_alpha ( ) const
inline
void psi::SuperFunctional::can_edit ( )
protected
std::string psi::SuperFunctional::citation ( ) const
inline
void psi::SuperFunctional::common_init ( void  )
protected
std::map< std::string, SharedVector > & psi::SuperFunctional::compute_functional ( const std::map< std::string, SharedVector > &  vals,
int  npoints = -1 
)
std::map< std::string, SharedVector > psi::SuperFunctional::compute_vv10_cache ( const std::map< std::string, SharedVector > &  vals,
std::shared_ptr< BlockOPoints block,
double  rho_thresh,
int  npoints = -1,
bool  internal = false 
)
double psi::SuperFunctional::compute_vv10_kernel ( const std::map< std::string, SharedVector > &  vals,
const std::vector< std::map< std::string, SharedVector >> &  vv10_cache,
std::shared_ptr< BlockOPoints block,
int  npoints = -1 
)
int psi::SuperFunctional::deriv ( ) const
inline
std::string psi::SuperFunctional::description ( ) const
inline
double psi::SuperFunctional::grac_alpha ( ) const
inline
double psi::SuperFunctional::grac_beta ( ) const
inline
std::shared_ptr<Functional> psi::SuperFunctional::grac_c_functional ( )
inline
double psi::SuperFunctional::grac_shift ( ) const
inline
std::shared_ptr<Functional> psi::SuperFunctional::grac_x_functional ( )
inline
bool psi::SuperFunctional::is_c_hybrid ( ) const
inline
bool psi::SuperFunctional::is_c_lrc ( ) const
inline
bool psi::SuperFunctional::is_c_scs_hybrid ( ) const
inline
bool psi::SuperFunctional::is_gga ( ) const
bool psi::SuperFunctional::is_libxc_func ( ) const
inline
bool psi::SuperFunctional::is_meta ( ) const
bool psi::SuperFunctional::is_unpolarized ( ) const
bool psi::SuperFunctional::is_x_hybrid ( ) const
inline
bool psi::SuperFunctional::is_x_lrc ( ) const
inline
int psi::SuperFunctional::max_points ( ) const
inline
std::string psi::SuperFunctional::name ( ) const
inline
bool psi::SuperFunctional::needs_grac ( ) const
inline
bool psi::SuperFunctional::needs_vv10 ( ) const
inline
bool psi::SuperFunctional::needs_xc ( ) const
inline
void psi::SuperFunctional::print ( std::string  out_fname = "outfile",
int  print = 1 
) const
void psi::SuperFunctional::py_print ( ) const
inline
void psi::SuperFunctional::py_print_detail ( int  level) const
inline
void psi::SuperFunctional::set_c_alpha ( double  alpha)
void psi::SuperFunctional::set_c_omega ( double  omega)
void psi::SuperFunctional::set_c_os_alpha ( double  alpha)
void psi::SuperFunctional::set_c_ss_alpha ( double  alpha)
void psi::SuperFunctional::set_citation ( const std::string &  citation)
inline
void psi::SuperFunctional::set_deriv ( int  deriv)
inline
void psi::SuperFunctional::set_description ( const std::string &  description)
inline
void psi::SuperFunctional::set_grac_alpha ( double  grac_alpha)
void psi::SuperFunctional::set_grac_beta ( double  grac_beta)
void psi::SuperFunctional::set_grac_c_functional ( std::shared_ptr< Functional fun)
inline
void psi::SuperFunctional::set_grac_shift ( double  grac_shift)
void psi::SuperFunctional::set_grac_x_functional ( std::shared_ptr< Functional fun)
inline
void psi::SuperFunctional::set_lock ( bool  locked)
inline
void psi::SuperFunctional::set_max_points ( int  max_points)
inline
void psi::SuperFunctional::set_name ( const std::string &  name)
inline
void psi::SuperFunctional::set_vv10_b ( double  b)
void psi::SuperFunctional::set_vv10_c ( double  c)
void psi::SuperFunctional::set_x_alpha ( double  alpha)
void psi::SuperFunctional::set_x_beta ( double  beta)
void psi::SuperFunctional::set_x_omega ( double  omega)
void psi::SuperFunctional::test_functional ( SharedVector  rho_a,
SharedVector  rho_b,
SharedVector  gamma_aa,
SharedVector  gamma_ab,
SharedVector  gamma_bb,
SharedVector  tau_a,
SharedVector  tau_b 
)
SharedVector psi::SuperFunctional::value ( const std::string &  key)
std::map<std::string, SharedVector>& psi::SuperFunctional::values ( )
inline
double psi::SuperFunctional::vv10_b ( ) const
inline
double psi::SuperFunctional::vv10_c ( ) const
inline
double psi::SuperFunctional::x_alpha ( ) const
inline
double psi::SuperFunctional::x_beta ( ) const
inline
std::shared_ptr< Functional > psi::SuperFunctional::x_functional ( const std::string &  name)
std::vector<std::shared_ptr<Functional> >& psi::SuperFunctional::x_functionals ( )
inline
double psi::SuperFunctional::x_omega ( ) const
inline
std::shared_ptr< SuperFunctional > psi::SuperFunctional::XC_build ( std::string  name,
bool  unpolarized 
)
static

Member Data Documentation

std::map<std::string, SharedVector> psi::SuperFunctional::ac_values_
protected
double psi::SuperFunctional::c_alpha_
protected
std::vector<std::shared_ptr<Functional> > psi::SuperFunctional::c_functionals_
protected
double psi::SuperFunctional::c_omega_
protected
double psi::SuperFunctional::c_os_alpha_
protected
double psi::SuperFunctional::c_ss_alpha_
protected
std::string psi::SuperFunctional::citation_
protected
int psi::SuperFunctional::deriv_
protected
std::string psi::SuperFunctional::description_
protected
double psi::SuperFunctional::grac_alpha_
protected
double psi::SuperFunctional::grac_beta_
protected
std::shared_ptr<Functional> psi::SuperFunctional::grac_c_functional_
protected
double psi::SuperFunctional::grac_shift_
protected
std::shared_ptr<Functional> psi::SuperFunctional::grac_x_functional_
protected
bool psi::SuperFunctional::libxc_xc_func_
protected
bool psi::SuperFunctional::locked_
protected
int psi::SuperFunctional::max_points_
protected
std::string psi::SuperFunctional::name_
protected
bool psi::SuperFunctional::needs_grac_
protected
bool psi::SuperFunctional::needs_vv10_
protected
std::map<std::string, SharedVector> psi::SuperFunctional::values_
protected
double psi::SuperFunctional::vv10_b_
protected
double psi::SuperFunctional::vv10_beta_
protected
double psi::SuperFunctional::vv10_c_
protected
std::map<std::string, SharedVector> psi::SuperFunctional::vv_values_
protected
double psi::SuperFunctional::x_alpha_
protected
double psi::SuperFunctional::x_beta_
protected
std::vector<std::shared_ptr<Functional> > psi::SuperFunctional::x_functionals_
protected
double psi::SuperFunctional::x_omega_
protected

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