source: pcp/src/excor.h@ 7853f74

Last change on this file since 7853f74 was 7853f74, checked in by Frederik Heber <heber@…>, 17 years ago

declarations of CalcSE_GC() and DensityGradient() added

  • Property mode set to 100644
File size: 3.0 KB
Line 
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.
20enum 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 */
27struct 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
46double Calcrs(struct ExCor *EC, double p);
47double CalcZeta(struct ExCor *EC, double pUp, double pDown);
48double CalcSEXr(struct ExCor *EC, double rsUp, double rsDown, double pUp, double pDown);
49double CalcSE_GC(struct ExCor *EC, double p, double Dp);
50double CalcSVVXr(struct ExCor *EC, double rs, enum SpinType ST);
51double CalcSVVVXr(struct ExCor *EC, double rs, enum SpinType ST);
52double CalcSECr(struct ExCor *EC, double rs, double zeta, double p);
53double CalcSVVCr(struct ExCor *EC, double rs, double zeta, enum SpinType ST, double pUp, double pDown);
54double CalcSVVVCr(struct ExCor *EC, double rs, double zeta, enum SpinType ST, double pUp, double pDown);
55void InitExchangeCorrelationEnergy(struct Problem *P, struct ExCor *EC);
56void CalculateXCEnergyNoRT(struct Problem *P);
57void CalculateXCEnergyUseRT(struct Problem *P);
58void CalculateXCPotentialNoRT(struct Problem *P, fftw_real *HGR);
59double CalculateXCddEddt0NoRT(struct Problem *P, fftw_real *PsiCD);
60double DensityGradient(fftw_real *density, int i, struct LatticeLevel *Lev, struct Lattice *Lat);
61#endif
Note: See TracBrowser for help on using the repository browser.