|
__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 ¶, 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 ¶, const Ferro &ferro, const Stiff &stiff, const double fDblPrime0=4./(9 *(pow(2., 1./3) -1))) |
|
Internal abstractions of, and helper routines for the internal exchange and correlation routines