source: pcp/src/excor.h@ 774ae8

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

-initial commit
-Minimum set of files needed from ESPACK SVN repository
-Switch to three tantamount package parts instead of all relating to pcp (as at some time Ralf's might find inclusion as well)

  • Property mode set to 100644
File size: 2.9 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 CalcSVVXr(struct ExCor *EC, double rs, enum SpinType ST);
50double CalcSVVVXr(struct ExCor *EC, double rs, enum SpinType ST);
51double CalcSECr(struct ExCor *EC, double rs, double zeta, double p);
52double CalcSVVCr(struct ExCor *EC, double rs, double zeta, enum SpinType ST, double pUp, double pDown);
53double CalcSVVVCr(struct ExCor *EC, double rs, double zeta, enum SpinType ST, double pUp, double pDown);
54void InitExchangeCorrelationEnergy(struct Problem *P, struct ExCor *EC);
55void CalculateXCEnergyNoRT(struct Problem *P);
56void CalculateXCEnergyUseRT(struct Problem *P);
57void CalculateXCPotentialNoRT(struct Problem *P, fftw_real *HGR);
58double CalculateXCddEddt0NoRT(struct Problem *P, fftw_real *PsiCD);
59#endif
Note: See TracBrowser for help on using the repository browser.