Common interface to the compute kernels for mGGA-like functionals. More...
#include <ExCorr_internal_mGGA.h>
Public Member Functions | |
FunctionalMGGA (mGGA_Variant variant, double scaleFac=1.0) | |
bool | needsSigma () const |
return true if density gradients are used | |
bool | needsLap () const |
return true if laplacian of density is used (MGGA) | |
bool | needsTau () const |
return true if orbital kinetic energy density is used (MGGA) | |
bool | hasExchange () const |
whether this functional includes exchange | |
bool | hasCorrelation () const |
whether this functional includes correlation | |
bool | hasKinetic () const |
whether this functional includes kinetic energy | |
bool | hasEnergy () const |
whether total energy is meaningful for this functional | |
void | evaluate (int N, std::vector< const double * > n, std::vector< const double * > sigma, std::vector< const double * > lap, std::vector< const double * > tau, double *E, std::vector< double * > E_n, std::vector< double * > E_sigma, std::vector< double * > E_lap, std::vector< double * > E_tau) const |
Public Member Functions inherited from Functional | |
Functional (double scaleFac=1.0) | |
void | evaluateSub (int iStart, int iStop, std::vector< const double * > n, std::vector< const double * > sigma, std::vector< const double * > lap, std::vector< const double * > tau, double *E, std::vector< double * > E_n, std::vector< double * > E_sigma, std::vector< double * > E_lap, std::vector< double * > E_tau) const |
Call evaluate for a subset of data points: | |
Additional Inherited Members | |
Protected Attributes inherited from Functional | |
double | scaleFac |
scale factor (to support mixing for hybrid functionals) | |
Common interface to the compute kernels for mGGA-like functionals.
|
virtual |
The thread launchers and gpu kernels for all mGGAs are generated by this function using the template specializations of mGGA_calc, mGGA_eval Note that lap and taus are unused by mGGAs
Implements Functional.