Go to the documentation of this file.
2 #ifndef THERMALMODELEVMF_H
3 #define THERMALMODELEVMF_H
8 #define PI 3.141592653589793
93 double UVdW(
double n,
double T,
double vo) {
95 if (
fMode == 0)
return T * vo * n / (1. - vo * n) - T *
log(1. - vo * n);
98 if (
fMode == 1)
return -T *
log(1. - 2. * vo * n);
103 double tmp = vo * n - 4.;
104 return -T * (3. + 16. * (-vo * n + 12.) / tmp / tmp / tmp);
109 double b1 = 0.063597, b2 = 0.017329, b3 = 0.561493, b4 = 0.081313;
110 double u = 1 + b1 *
x + b2 *
x *
x;
111 double d = 1 - b3 *
x + b4 *
x *
x;
112 double c1 = b2 / b4, c2 = (b1 * b4 + b2 * b3) / 2. / b4 / b4,
114 1. + (b1 * b3 * b4 + b2 * b3 * b3 - 2. * b2 * b4) / 2. / b4 / b4,
115 c4 = 1. /
sqrt(4. * b4 - b3 * b3);
117 * (
x * (c1 + u /
d) + c2 *
log(
d)
118 + 2. * c3 * c4 * (atan(c4 * (2. * b4 *
x - b3)) + atan(c4 * b3)));
122 b[2] = 4 * vo, b[3] = 10. * vo * vo, b[4] = 18.365 * vo * vo * vo,
123 b[5] = 28.24 * vo * vo * vo * vo, b[6] = 39.5 * vo * vo * vo * vo * vo,
124 b[7] = 56.5 * vo * vo * vo * vo * vo * vo;
126 for (
int i = 7;
i >= 2; --
i) {
127 ret = ret * n +
i * b[
i] / (
i - 1.) * n;
131 double PVdW(
double n,
double T,
double vo) {
133 if (
fMode == 0)
return T * n * vo * n / (1. - vo * n);
136 if (
fMode == 1)
return -T * (n +
log(1. - 2. * vo * n) / vo / 2.);
141 double tmp = (1 - vo * n / 4.);
142 return T * n * (vo * n - (vo * n * vo * n) / 8.) / tmp / tmp / tmp;
147 double b1 = 0.063597, b2 = 0.017329, b3 = 0.561493, b4 = 0.081313;
148 double u = 1 + b1 *
x + b2 *
x *
x;
149 double d = 1 - b3 *
x + b4 *
x *
x;
150 return T *
x *
x / vo * u /
d;
154 b[2] = 4 * vo, b[3] = 10. * vo * vo, b[4] = 18.365 * vo * vo * vo,
155 b[5] = 28.24 * vo * vo * vo * vo, b[6] = 39.5 * vo * vo * vo * vo * vo,
156 b[7] = 56.5 * vo * vo * vo * vo * vo * vo;
158 for (
int i = 7;
i >= 2; --
i) {
159 ret = ret * n + b[
i] * n;
166 return 1. / n * (1. -
exp(-
UVdW(n, T, vo) / T));
171 if (part >=
static_cast<int>(
densities.size()))
return 0.;
friend F32vec4 exp(const F32vec4 &a)
std::vector< ThermalParticle > fParticles
std::vector< double > densitiestotal
virtual double GetParticlePrimordialDensity(int part)
virtual double CalculateShearViscosity()
friend F32vec4 sqrt(const F32vec4 &a)
virtual double CalculateBaryonMatterEntropyDensity()
double PVdW(double n, double T, double vo)
double GetEffectiveVO(double n, double T, double vo)
double CalculateDensity(double T, double muB, int type=0, double dMu=0.) const
ThermalModelEVMF(ThermalParticleSystem *TPS_, double T=0.16, double muB=0.23, double muS=0.1, double muQ=-0.01, double gammaS=1., double V=4000., double R=1., int mode=0)
virtual double CalculatePressure()
virtual ~ThermalModelEVMF(void)
void setRadius(double rad)
virtual void ChangeTPS(ThermalParticleSystem *TPS_)
virtual double CalculateAbsoluteStrangenessDensity()
std::vector< double > densitiesid
ThermalParticleSystem * TPS
virtual double CalculateChargeDensity()
friend F32vec4 log(const F32vec4 &a)
virtual double CalculateBaryonDensity()
virtual double CalculateMesonMatterEntropyDensity()
virtual double CalculateAbsoluteCharmDensity()
double UVdW(double n, double T, double vo)
virtual void FixParameters()
ThermalModelEVMF(ThermalParticleSystem *TPS_, const ThermalModelParameters ¶ms, double RHad_=0., int mode=0)
virtual double CalculateEntropyDensity()
virtual void SetParameters(const ThermalModelParameters ¶ms)
virtual void CalculateDensities()
virtual double CalculateEnergyDensity()
std::vector< double > densities
virtual void ChangeTPS(ThermalParticleSystem *TPS_)
ThermalModelParameters Parameters
virtual double CalculateHadronDensity()
virtual double CalculateCharmDensity()
virtual double GetParticleTotalDensity(int part)
virtual void SetParameters(double T, double muB, double muS, double muQ, double gammaS, double V, double R)
virtual double CalculateStrangenessDensity()