mpqc::lcao::XCFockBuilder< Tile, Policy > Class Template Reference

Documentation

template<typename Tile, typename Policy>
class mpqc::lcao::XCFockBuilder< Tile, Policy >

XCFockBuilder computes the exchange-correlation energy and potential using GauXC integrator

Public Types

using base_type = FockBuilder< Tile, Policy >
 
using array_type = typename base_type::array_type
 
using arrayvec_type = typename base_type::arrayvec_type
 
using result_type = typename base_type::result_type
 

Public Member Functions

 ~XCFockBuilder ()=default
 
 XCFockBuilder (const KeyVal &kv)
 
result_type operator() (arrayvec_type const &D, arrayvec_type const &, double) override
 computes the xc part of the Fock matrix (for KS-DFT) More...
 
void register_fock (const arrayvec_type &fock, FormulaRegistry< array_type > &registry) const override
 
const auto & functional () const
 
const auto & integrator () const
 
const auto func_is_hyb () const
 
const auto func_hyb_exx () const
 

Member Typedef Documentation

◆ array_type

template<typename Tile , typename Policy >
using mpqc::lcao::XCFockBuilder< Tile, Policy >::array_type = typename base_type::array_type

◆ arrayvec_type

template<typename Tile , typename Policy >
using mpqc::lcao::XCFockBuilder< Tile, Policy >::arrayvec_type = typename base_type::arrayvec_type

◆ base_type

template<typename Tile , typename Policy >
using mpqc::lcao::XCFockBuilder< Tile, Policy >::base_type = FockBuilder<Tile, Policy>

◆ result_type

template<typename Tile , typename Policy >
using mpqc::lcao::XCFockBuilder< Tile, Policy >::result_type = typename base_type::result_type

Constructor & Destructor Documentation

◆ ~XCFockBuilder()

template<typename Tile , typename Policy >
mpqc::lcao::XCFockBuilder< Tile, Policy >::~XCFockBuilder ( )
default

◆ XCFockBuilder()

template<typename Tile , typename Policy >
mpqc::lcao::XCFockBuilder< Tile, Policy >::XCFockBuilder ( const KeyVal kv)
inline

KeyVal constructor of XCFockBuilder

Parameters
kvthe KeyVal object; it will be queried for xc options:
Keyword Type Default Description
functional string none The functional to use for KS-DFT
kernels vector of strings none The list of kernels to use for KS-DFT
weights vector of doubles vector filled with 1 The list of weights to use with the kernels for KS-DFT

Supported Functionals

Functional Composition
SVWN3 SlaterExchange + VWN3
SVWN5 SlaterExchange + VWN5
BLYP B88 + LYP
B3LYP 0.08 SlaterExchange + 0.72 B88 + 0.81 LYP + 0.19 VWN5 + 0.20 HFX
PBE0 0.75 PBE_X + PBE_C + 0.25 HFX

Supported Exchange Kernels

Kernel Name
SlaterExchange Slater (LDA) exchange
PBE_X Perdew-Burke-Ernzerhof exchange
B88 Becke 88

Supported Correlation Kernels

Kernel Name
VWN3 Vosko-Wilk-Nusair 3
VWN5 Vosko-Wilk-Nusair 5
LYP Lee-Yang-Parr
PBE_C Perdew-Burke-Ernzerhof correlation
PZ81 Perdew-Zunger 81
PZ81_MOD Perdew-Zunger 81 Mod
PW91_LDA Perdew-Wang 91 LDA
PW91_LDA_MOD Perdew-Wang 91 LDA Mod
PW91_LDA_RPA Perdew-Wang 91 LDA RPA

Supported Hybrid Kernels

Kernel Name
B3LYP Becke 3-parameter Lee-Yang-Parr
PBE0 PBE0

Member Function Documentation

◆ func_hyb_exx()

template<typename Tile , typename Policy >
const auto mpqc::lcao::XCFockBuilder< Tile, Policy >::func_hyb_exx ( ) const
inline

◆ func_is_hyb()

template<typename Tile , typename Policy >
const auto mpqc::lcao::XCFockBuilder< Tile, Policy >::func_is_hyb ( ) const
inline

◆ functional()

template<typename Tile , typename Policy >
const auto& mpqc::lcao::XCFockBuilder< Tile, Policy >::functional ( ) const
inline

◆ integrator()

template<typename Tile , typename Policy >
const auto& mpqc::lcao::XCFockBuilder< Tile, Policy >::integrator ( ) const
inline

◆ operator()()

template<typename Tile , typename Policy >
result_type mpqc::lcao::XCFockBuilder< Tile, Policy >::operator() ( arrayvec_type const &  D,
arrayvec_type const &  ,
double   
)
inlineoverride

computes the xc part of the Fock matrix (for KS-DFT)

Parameters
Dthe (1-particle) density matrix
Returns
the xc contribution to the Fock matrix and xc energy with correction for nonlinearity
Note
currently only supports closed shell (D has only one DistArray)

◆ register_fock()

template<typename Tile , typename Policy >
void mpqc::lcao::XCFockBuilder< Tile, Policy >::register_fock ( const arrayvec_type fock,
FormulaRegistry< array_type > &  registry 
) const
inlineoverride

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