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

Common interface to the compute kernels shared by all LDA functionals. More...

#include <ExCorr_internal_LDA.h>

Inheritance diagram for FunctionalLDA:
Functional

Public Member Functions

 FunctionalLDA (LDA_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 shared by all LDA functionals.

Member Function Documentation

void FunctionalLDA::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 LDAs are generated by this function using the template specializations of LDA_calc and LDA_eval Note that sigma, lap and taus are unused by LDAs

Implements Functional.


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