JDFTx  1.7.0
ExCorr_internal.h File Reference
#include <core/vector3.h>

Classes

class  Functional
 Abstract base class for functionals. More...
 

Macros

#define SwitchTemplate_spin(SwitchTemplate_functional, variant, nCount, fTemplate, argList)
 

Functions

__hostanddev__ void loadSpinVector (array< const double *, 4 > x, int i, double &x0, vector3<> &xVec)
 Utility function for converting to/from spin-density matrices to scalar+vector combinations (via Pauli matrices)
 
__hostanddev__ void accumSpinVectorGrad (const double &E_x0, const vector3<> &E_xVec, array< double *, 4 > E_x, int i)
 
__hostanddev__ void spinDiagonalize_calc (int i, array< const double *, 4 > n, array< const double *, 4 > x, array< double *, 2 > xDiag)
 Transform spin-density-matrix-like quantity x into the basis where spin-density-matrix n is diagonal, and store the diagonal components in xDiag (for noncollinear magnetism)
 
__hostanddev__ void spinDiagonalizeGrad_calc (int i, array< const double *, 4 > n, array< const double *, 4 > x, array< const double *, 2 > E_xDiag, array< double *, 4 > E_n, array< double *, 4 > E_x)
 Propagate gradients corresponding to spinDiagonalize_calc(), from E_xDiag and accumulate to E_n and E_x.
 
__hostanddev__ double spinInterpolation (double zeta, double &f_zeta)
 LDA spin interpolation function f(zeta) and its derivative.
 
template<typename Para , typename Ferro >
__hostanddev__ double spinInterpolate (double rs, double zeta, double &e_rs, double &e_zeta, const Para &para, const Ferro &ferro)
 Spin-interpolate an LDA functional given its paramagnetic and ferromagnetic functors.
 
template<typename Para , typename Ferro , typename Stiff >
__hostanddev__ double spinInterpolate (double rs, double zeta, double &e_rs, double &e_zeta, const Para &para, const Ferro &ferro, const Stiff &stiff, const double fDblPrime0=4./(9 *(pow(2., 1./3) -1)))
 

Detailed Description

Internal abstractions of, and helper routines for the internal exchange and correlation routines