| [a0bcf1] | 1 | #ifndef excor_h
 | 
|---|
 | 2 | #define excor_h
 | 
|---|
 | 3 | 
 | 
|---|
 | 4 | /** \file excor.h
 | 
|---|
 | 5 |  * Header file for \ref excor.c
 | 
|---|
 | 6 |  * 
 | 
|---|
 | 7 |  * Contains declarations of the functions implemented in \ref excor.c,
 | 
|---|
 | 8 |  * enumeration if density polarised or not UnPolarised and ExCor parameter
 | 
|---|
 | 9 |  * structure.
 | 
|---|
 | 10 |  * 
 | 
|---|
 | 11 |   Project: ParallelCarParrinello
 | 
|---|
 | 12 |   Jan Hamaekers
 | 
|---|
 | 13 |   2000
 | 
|---|
 | 14 |   
 | 
|---|
 | 15 |   File: excor.h
 | 
|---|
 | 16 |   $Id: excor.h,v 1.14 2006/05/23 14:22:05 foo Exp $
 | 
|---|
 | 17 | */
 | 
|---|
 | 18 | 
 | 
|---|
 | 19 | //! exchange and correlation energy for the polarised or unpolarised one.
 | 
|---|
 | 20 | enum UnPolarised {unpolarised,  //!< energy in SpinType#SpinDouble case (no polarisation)
 | 
|---|
 | 21 |                   polarised     //!< energy in SpinType#SpinUp/SpinType#SpinDown case (polarisation)
 | 
|---|
 | 22 |                  };  
 | 
|---|
 | 23 | 
 | 
|---|
 | 24 | /** Exchange correlation structure.
 | 
|---|
 | 25 |  * Contains simply all the parameters to evaluate the energy.
 | 
|---|
 | 26 |  */
 | 
|---|
 | 27 | struct ExCor {
 | 
|---|
 | 28 |   double gamma[2];    //!< un-/polarised parametrization value for \f${\cal E}_c \f$, \f$r_s \geq 1\f$
 | 
|---|
 | 29 |   double beta_1[2];   //!< un-/polarised parametrization value for \f${\cal E}_c \f$, \f$r_s \geq 1\f$
 | 
|---|
 | 30 |   double beta_2[2];   //!< un-/polarised parametrization value for \f${\cal E}_c \f$, \f$r_s \geq 1\f$
 | 
|---|
 | 31 |   double A[2];        //!< un-/polarised parametrization value for \f${\cal E}_c \f$, \f$r_s < 1\f$
 | 
|---|
 | 32 |   double B[2];        //!< un-/polarised parametrization value for \f${\cal E}_c \f$, \f$r_s < 1\f$
 | 
|---|
 | 33 |   double C[2];        //!< un-/polarised parametrization value for \f${\cal E}_c \f$, \f$r_s < 1\f$
 | 
|---|
 | 34 |   double D[2];        //!< un-/polarised parametrization value for \f${\cal E}_c \f$, \f$r_s < 1\f$
 | 
|---|
 | 35 |   double fac34pi;     //!< factor: \f$-\frac{3}{4\pi}\f$
 | 
|---|
 | 36 |   double facexrs;     //!< factor: \f$-\frac{3}{4\pi} (\frac{9\pi}{4})^{1/3}\f$
 | 
|---|
 | 37 |   double epsilon0;    //!< set to MYEPSILON
 | 
|---|
 | 38 |   double fac6PI23;    //!< factor: \f$(\frac{6}{\pi})^{2/3}\f$
 | 
|---|
 | 39 |   double facPI213;    //!< factor: \f$(\frac{\pi}{2})^{1/3}\f$
 | 
|---|
 | 40 |   double fac3PI23;    //!< factor: \f$(3\pi)^{2/3}\f$
 | 
|---|
 | 41 |   double fac6PIPI23;  //!< factor: \f$(6\pi^2)^{2/3}\f$
 | 
|---|
 | 42 |   double fac243;      //!< factor: \f$(2)^{4/3}\f$
 | 
|---|
 | 43 |   double fac1213;      //!< factor: \f$(\frac{1}{2})^{1/3}\f$
 | 
|---|
 | 44 | };
 | 
|---|
 | 45 | 
 | 
|---|
 | 46 | double Calcrs(struct ExCor *EC, double p);
 | 
|---|
 | 47 | double CalcZeta(struct ExCor *EC, double pUp, double pDown);
 | 
|---|
 | 48 | double CalcSEXr(struct ExCor *EC, double rsUp, double rsDown, double pUp, double pDown);
 | 
|---|
| [7853f74] | 49 | double CalcSE_GC(struct ExCor *EC, double p, double Dp);
 | 
|---|
| [a0bcf1] | 50 | double CalcSVVXr(struct ExCor *EC, double rs, enum SpinType ST);
 | 
|---|
 | 51 | double CalcSVVVXr(struct ExCor *EC, double rs, enum SpinType ST);
 | 
|---|
 | 52 | double CalcSECr(struct ExCor *EC, double rs, double zeta, double p);
 | 
|---|
 | 53 | double CalcSVVCr(struct ExCor *EC, double rs, double zeta, enum SpinType ST, double pUp, double pDown);
 | 
|---|
 | 54 | double CalcSVVVCr(struct ExCor *EC, double rs, double zeta, enum SpinType ST, double pUp, double pDown);
 | 
|---|
 | 55 | void InitExchangeCorrelationEnergy(struct Problem *P, struct ExCor *EC);
 | 
|---|
 | 56 | void CalculateXCEnergyNoRT(struct Problem *P);
 | 
|---|
 | 57 | void CalculateXCEnergyUseRT(struct Problem *P);
 | 
|---|
 | 58 | void CalculateXCPotentialNoRT(struct Problem *P, fftw_real *HGR);
 | 
|---|
 | 59 | double CalculateXCddEddt0NoRT(struct Problem *P, fftw_real *PsiCD);
 | 
|---|
| [7853f74] | 60 | double DensityGradient(fftw_real *density, int i, struct LatticeLevel *Lev, struct Lattice *Lat);
 | 
|---|
| [a0bcf1] | 61 | #endif
 | 
|---|