| [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 | 
|---|