| 
| 
__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 
 
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))  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Spin-interpolate an LDA functional given its paramagnetic, ferromagnetic and spin-stiffness functors (This is the spin-inteprolation technique used in the VWN and PW correlation functionals) (For numerical compatibility with the original PW routine, the f"(0) scale factor may be over-ridden)