source: pcp/src/excor.h@ 5a78f5

Last change on this file since 5a78f5 was 79290f, checked in by Frederik Heber <heber@…>, 17 years ago

config.h is included in each and every file. After trying to compile on JUMP (with xlc).

  • Property mode set to 100644
File size: 3.1 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#ifdef HAVE_CONFIG_H
20#include <config.h>
21#endif
22
23//! exchange and correlation energy for the polarised or unpolarised one.
24enum UnPolarised {unpolarised, //!< energy in SpinType#SpinDouble case (no polarisation)
25 polarised //!< energy in SpinType#SpinUp/SpinType#SpinDown case (polarisation)
26 };
27
28/** Exchange correlation structure.
29 * Contains simply all the parameters to evaluate the energy.
30 */
31struct ExCor {
32 double gamma[2]; //!< un-/polarised parametrization value for \f${\cal E}_c \f$, \f$r_s \geq 1\f$
33 double beta_1[2]; //!< un-/polarised parametrization value for \f${\cal E}_c \f$, \f$r_s \geq 1\f$
34 double beta_2[2]; //!< un-/polarised parametrization value for \f${\cal E}_c \f$, \f$r_s \geq 1\f$
35 double A[2]; //!< un-/polarised parametrization value for \f${\cal E}_c \f$, \f$r_s < 1\f$
36 double B[2]; //!< un-/polarised parametrization value for \f${\cal E}_c \f$, \f$r_s < 1\f$
37 double C[2]; //!< un-/polarised parametrization value for \f${\cal E}_c \f$, \f$r_s < 1\f$
38 double D[2]; //!< un-/polarised parametrization value for \f${\cal E}_c \f$, \f$r_s < 1\f$
39 double fac34pi; //!< factor: \f$-\frac{3}{4\pi}\f$
40 double facexrs; //!< factor: \f$-\frac{3}{4\pi} (\frac{9\pi}{4})^{1/3}\f$
41 double epsilon0; //!< set to MYEPSILON
42 double fac6PI23; //!< factor: \f$(\frac{6}{\pi})^{2/3}\f$
43 double facPI213; //!< factor: \f$(\frac{\pi}{2})^{1/3}\f$
44 double fac3PI23; //!< factor: \f$(3\pi)^{2/3}\f$
45 double fac6PIPI23; //!< factor: \f$(6\pi^2)^{2/3}\f$
46 double fac243; //!< factor: \f$(2)^{4/3}\f$
47 double fac1213; //!< factor: \f$(\frac{1}{2})^{1/3}\f$
48};
49
50double Calcrs(struct ExCor *EC, double p);
51double CalcZeta(struct ExCor *EC, double pUp, double pDown);
52double CalcSEXr(struct ExCor *EC, double rsUp, double rsDown, double pUp, double pDown);
53double CalcSE_GC(struct ExCor *EC, double p, double Dp);
54double CalcSVVXr(struct ExCor *EC, double rs, enum SpinType ST);
55double CalcSVVVXr(struct ExCor *EC, double rs, enum SpinType ST);
56double CalcSECr(struct ExCor *EC, double rs, double zeta, double p);
57double CalcSVVCr(struct ExCor *EC, double rs, double zeta, enum SpinType ST, double pUp, double pDown);
58double CalcSVVVCr(struct ExCor *EC, double rs, double zeta, enum SpinType ST, double pUp, double pDown);
59void InitExchangeCorrelationEnergy(struct Problem *P, struct ExCor *EC);
60void CalculateXCEnergyNoRT(struct Problem *P);
61void CalculateXCEnergyUseRT(struct Problem *P);
62void CalculateXCPotentialNoRT(struct Problem *P, fftw_real *HGR);
63double CalculateXCddEddt0NoRT(struct Problem *P, fftw_real *PsiCD);
64double DensityGradient(fftw_real *density, int i, struct LatticeLevel *Lev, struct Lattice *Lat);
65#endif
Note: See TracBrowser for help on using the repository browser.