| 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);
 | 
|---|
| 49 | double CalcSE_GC(struct ExCor *EC, double p, double Dp);
 | 
|---|
| 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);
 | 
|---|
| 60 | double DensityGradient(fftw_real *density, int i, struct LatticeLevel *Lev, struct Lattice *Lat);
 | 
|---|
| 61 | #endif
 | 
|---|