13#include "ThermalFISTConfig.h"
17#ifdef ThermalFIST_USENAMESPACE
28int main(
int argc,
char *argv[])
32 string listname = string(ThermalFIST_INPUT_FOLDER) +
"/list/thermus23/list.dat";
45 config = atoi(argv[1]);
60 printf(
"#Calculating thermodynamics at \\mu = 0 in Id-HRG model\n");
69 for (
int i = 0; i < model->TPS()->ComponentsNumber(); ++i)
72 printf(
"#Calculating thermodynamics at \\mu = 0 in EV-HRG model with r = %lf fm\n", rad);
85 for (
int i = 0; i < model->TPS()->ComponentsNumber(); ++i) {
86 for (
int j = 0; j < model->TPS()->ComponentsNumber(); ++j) {
87 int B1 = model->TPS()->Particle(i).BaryonCharge();
88 int B2 = model->TPS()->Particle(j).BaryonCharge();
90 if ((B1 > 0 && B2 > 0) || (B1 < 0 && B2 < 0))
103 printf(
"#Calculating thermodynamics at \\mu = 0 in QvdW-HRG model\n");
105 modeltype =
"QvdW-HRG";
111 modeltype =
"Id-HRG";
132 sprintf(tmpc,
"cpc1.%s.TDep.out", modeltype.c_str());
133 FILE *fout = fopen(tmpc,
"w");
136 printf(
"%15s%15s%15s%15s%15s%15s%15s\n",
147 fprintf(fout,
"%15s%15s%15s%15s%15s%15s%15s\n",
164 double Tmax = 0.2001;
167 for (
double T = Tmin; T <= Tmax; T += dT) {
174 printf(
"%15lf", T * 1000.);
175 fprintf(fout,
"%15lf", T * 1000.);
178 double p = model->CalculatePressure();
181 printf(
"%15lf", pT4);
182 fprintf(fout,
"%15lf", pT4);
185 double e = model->CalculateEnergyDensity();
187 printf(
"%15lf", eT4);
188 fprintf(fout,
"%15lf", eT4);
191 double s = model->CalculateEntropyDensity();
193 printf(
"%15lf", sT3);
194 fprintf(fout,
"%15lf", sT3);
200 vector<double> baryon_charges;
201 for (
int i = 0; i < model->TPS()->ComponentsNumber(); ++i) {
202 baryon_charges.push_back(
static_cast<double>(model->TPS()->Particle(i).BaryonCharge()));
208 if (chiB.size() >= 4) {
210 printf(
"%15E", chiB[1]);
211 fprintf(fout,
"%15E", chiB[1]);
214 printf(
"%15E", chiB[3]);
215 fprintf(fout,
"%15E", chiB[3]);
218 printf(
"%15E", chiB[1] - chiB[3]);
219 fprintf(fout,
"%15E", chiB[1] - chiB[3]);
236 printf(
"%30s %lf s\n",
"Running time:", (wt2 - wt1));
237 printf(
"%30s %lf s\n",
"Time per single calculation:", (wt2 - wt1) / iters);
Abstract base class for an HRG model implementation.
virtual void SetTemperature(double T)
Set the temperature.
virtual void SetVirial(int, int, double)
Set the excluded volume coefficient .
virtual void FillChemicalPotentials()
Sets the chemical potentials of all particles.
void SetUseWidth(bool useWidth)
Sets whether finite resonance widths are used. Deprecated.
virtual std::vector< double > CalculateChargeFluctuations(const std::vector< double > &chgs, int order=4)
Calculates fluctuations (diagonal susceptibilities) of an arbitrary "conserved" charge.
virtual void SetBaryonChemicalPotential(double muB)
Set the baryon chemical potential.
virtual void SetRadius(double)
Set the same excluded volume radius parameter for all species.
virtual void SetElectricChemicalPotential(double muQ)
Set the electric chemical potential.
virtual void SetStrangenessChemicalPotential(double muS)
Set the strangeness chemical potential.
virtual void CalculateDensities()
Calculates the primordial and total (after decays) densities of all species.
virtual void SetAttraction(int, int, double)
Set the vdW mean field attraction coefficient .
virtual void SetCharmChemicalPotential(double muC)
Set the charm chemical potential.
virtual void SetStatistics(bool stats)
Class implementing the diagonal excluded-volume model.
Class implementing the Ideal HRG model.
@ BWTwoGamma
Energy-independent Breit-Wigner in +-2\Gamma interval.
Class containing the particle list.
int main(int argc, char *argv[])
constexpr double GeVtoifm()
A constant to transform GeV into fm .
The main namespace where all classes and functions of the Thermal-FIST library reside.
ThermalModelVDW ThermalModelVDWFull
For backward compatibility.