JDFTx  1.7.0
FunctionalGGA Class Reference

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

#include <ExCorr_internal_GGA.h>

Inheritance diagram for FunctionalGGA:
Functional

Public Member Functions

 FunctionalGGA (GGA_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 GGA-like functionals.

Member Function Documentation

◆ evaluate()

void FunctionalGGA::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 GGAs are generated by this function using the template specializations of GGA_calc, GGA_eval Note that lap and taus are unused by GGAs

Implements Functional.


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