JDFTx  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FunctionalMGGA Class Reference

Common interface to the compute kernels for mGGA-like functionals. More...

#include <ExCorr_internal_mGGA.h>

Inheritance diagram for FunctionalMGGA:
Functional

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)
 

Detailed Description

Common interface to the compute kernels for mGGA-like functionals.

Member Function Documentation

void FunctionalMGGA::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
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.


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