8#ifndef THERMALMODELBASE_H
9#define THERMALMODELBASE_H
79 virtual void FillVirial(
const std::vector<double> & ri = std::vector<double>(0));
112 void SetOMP(
bool openMP) { m_useOpenMP = openMP; }
495 double SoverB()
const {
return m_SBgoal; }
507 double QoverB()
const {
return m_QBgoal; }
517 double Volume()
const {
return m_Parameters.V; }
615 double muBinit = 0.,
double muQinit = 0.,
double muSinit = 0.,
double muCinit = 0.,
616 bool ConstrMuB =
true,
bool ConstrMuQ =
true,
bool ConstrMuS =
true,
bool ConstrMuC =
true);
645 double muBinit = 0.,
double muQinit = 0.,
double muSinit = 0.,
double muCinit = 0.,
646 bool ConstrMuB =
true,
bool ConstrMuQ =
true,
bool ConstrMuS =
true,
bool ConstrMuC =
true);
928 virtual std::vector<double> CalculateGeneralizedSusceptibilities(
const std::vector<std::vector<double>> &chgs);
937 double Pressure() {
return CalculatePressure(); }
940 double EnergyDensity() {
return CalculateEnergyDensity(); }
946 double HadronDensity() {
return CalculateHadronDensity(); }
949 double BaryonDensity() {
return CalculateBaryonDensity(); }
952 double ElectricChargeDensity() {
return CalculateChargeDensity(); }
955 double StrangenessDensity() {
return CalculateStrangenessDensity(); }
958 double CharmDensity() {
return CalculateCharmDensity(); }
961 double AbsoluteBaryonDensity() {
return CalculateAbsoluteBaryonDensity(); }
964 double AbsoluteElectricChargeDensity() {
return CalculateAbsoluteChargeDensity(); }
967 double AbsoluteStrangenessDensity() {
return CalculateAbsoluteStrangenessDensity(); }
970 double AbsoluteCharmDensity() {
return CalculateAbsoluteCharmDensity(); }
973 double SpecificHeatChem() {
return CalculateSpecificHeatChem(); }
988 double cs2(
bool rhoBconst =
true,
bool rhoQconst =
true,
bool rhoSconst =
true,
bool rhoCconst =
true) {
989 return CalculateAdiabaticSpeedOfSoundSquared(rhoBconst, rhoQconst, rhoSconst, rhoCconst);
1005 double cT2(
bool rhoBconst =
true,
bool rhoQconst =
true,
bool rhoSconst =
true,
bool rhoCconst =
true) {
1006 return CalculateIsothermalSpeedOfSoundSquared(rhoBconst, rhoQconst, rhoSconst, rhoCconst);
1016 double HeatCapacity(
bool rhoBconst =
true,
bool rhoQconst =
true,
bool rhoSconst =
true,
bool rhoCconst =
true) {
1017 return CalculateHeatCapacity(rhoBconst, rhoQconst, rhoSconst, rhoCconst);
1022 virtual double CalculatePressure() = 0;
1023 virtual double CalculateEnergyDensity() = 0;
1024 virtual double CalculateEntropyDensity() = 0;
1025 virtual double CalculateHadronDensity();
1026 virtual double CalculateBaryonDensity();
1027 virtual double CalculateChargeDensity();
1028 virtual double CalculateStrangenessDensity();
1029 virtual double CalculateCharmDensity();
1030 virtual double CalculateAbsoluteBaryonDensity();
1031 virtual double CalculateAbsoluteChargeDensity();
1032 virtual double CalculateAbsoluteStrangenessDensity();
1033 virtual double CalculateAbsoluteCharmDensity();
1034 virtual double CalculateAbsoluteStrangenessDensityModulo();
1035 virtual double CalculateAbsoluteCharmDensityModulo();
1036 virtual double CalculateEnergyDensityDerivativeT() = 0;
1037 virtual double CalculateSpecificHeatChem();
1038 virtual double CalculateAdiabaticSpeedOfSoundSquared(
bool rhoBconst =
true,
bool rhoQconst =
true,
bool rhoSconst =
true,
bool rhoCconst =
true);
1039 virtual double CalculateIsothermalSpeedOfSoundSquared(
bool rhoBconst =
true,
bool rhoQconst =
true,
bool rhoSconst =
true,
bool rhoCconst =
true);
1040 virtual double CalculateHeatCapacity(
bool rhoBconst =
true,
bool rhoQconst =
true,
bool rhoSconst =
true,
bool rhoCconst =
true);
1044 virtual double CalculateArbitraryChargeDensity();
1047 virtual double CalculateBaryonMatterEntropyDensity() {
return 0.; }
1050 virtual double CalculateMesonMatterEntropyDensity() {
return 0.; }
1053 virtual double ParticleScaledVariance(
int) {
return 1.; }
1056 virtual double ParticleSkewness(
int) {
return 1.; }
1059 virtual double ParticleKurtosis(
int) {
return 1.; }
1063 virtual double CalculateEigenvolumeFraction() {
return 0.; }
1066 virtual double ParticleScalarDensity(
int i) = 0;
1068 virtual double GetMaxDiff()
const {
return m_MaxDiff; }
1073 virtual bool IsLastSolutionOK()
const {
return m_LastCalculationSuccessFlag; }
1079 double GetdndT(
int i)
const;
1086 double GetDensity(
long long PDGID,
int feeddown) {
return GetDensity(PDGID,
static_cast<Feeddown::Type>(feeddown)); }
1106 double GetYield(
long long PDGID,
Feeddown::Type feeddown) {
return GetDensity(PDGID, feeddown) *
Volume(); }
1108 std::vector<double> GetIdealGasDensities()
const;
1112 ThermalParticleSystem* TPS() {
return m_TPS; }
1118 const std::vector<double>& Densities()
const {
return m_densities; }
1119 std::vector<double>& Densities() {
return m_densities; }
1127 const std::vector<double>& TotalDensities()
const {
return m_densitiestotal; }
1132 const std::vector< std::vector<double> >& AllDensities()
const {
return m_densitiesbyfeeddown; }
1139 void SetTAG(
const std::string & tag) { m_TAG = tag; }
1142 const std::string& TAG()
const {
return m_TAG; }
1145 int PdgToId(
long long pdgid)
const {
return m_TPS->PdgToId(pdgid); }
1148 void ResetCalculatedFlags();
1152 bool IsCalculated()
const {
return m_Calculated; }
1156 bool IsFluctuationsCalculated()
const {
return m_FluctuationsCalculated; }
1160 bool IsSusceptibilitiesCalculated()
const {
return m_SusceptibilitiesCalculated; }
1164 bool IsTemperatureDerivativesCalculated()
const {
return m_TemperatureDerivativesCalculated; }
1168 bool IsGCECalculated()
const {
return m_GCECalculated; }
1177 double ScaledVariancePrimordial(
int id)
const {
return (
id >= 0 &&
id <
static_cast<int>(m_wprim.size())) ? m_wprim[id] : 1.; }
1189 double ScaledVarianceTotal(
int id)
const {
return (
id >= 0 &&
id <
static_cast<int>(m_wtot.size())) ? m_wtot[id] : 1.; }
1198 double SkewnessPrimordial(
int id)
const {
return (
id >= 0 &&
id <
static_cast<int>(m_skewprim.size())) ? m_skewprim[id] : 1.; }
1210 double SkewnessTotal(
int id)
const {
return (
id >= 0 &&
id <
static_cast<int>(m_skewtot.size())) ? m_skewtot[id] : 1.; }
1219 double KurtosisPrimordial(
int id)
const {
return (
id >= 0 &&
id <
static_cast<int>(m_kurtprim.size())) ? m_kurtprim[id] : 1.; }
1231 double KurtosisTotal(
int id)
const {
return (
id >= 0 &&
id <
static_cast<int>(m_kurttot.size())) ? m_kurttot[id] : 1.; }
1302 double ChargedMultiplicity(
int type = 0);
1314 double ChargedScaledVariance(
int type = 0);
1323 double ChargedMultiplicityFinal(
int type = 0);
1332 double ChargedScaledVarianceFinal(
int type = 0);
1358 void SetDensityModelForParticleSpecies(
int i, GeneralizedDensity* density_model = NULL);
1363 void SetDensityModelForParticleSpeciesByPdg(
long long PDGID, GeneralizedDensity* density_model = NULL);
1368 void ClearDensityModels();
1370 const IdealGasFunctions::IdealGasFunctionsExtraConfig& GetIdealGasFunctionsExtraConfig()
const {
return m_IGFExtraConfig; }
1380 void SetMagneticField(
double B = 0.0,
int lmax = -1);
1386 void RecomputeThresholdsDueToMagneticField();
1394 std::vector<double> PartialPressures();
1397 void ClearMagneticField();
1400 ThermalModelParameters m_Parameters;
1401 ThermalParticleSystem* m_TPS;
1404 IdealGasFunctions::IdealGasFunctionsExtraConfig m_IGFExtraConfig;
1406 bool m_LastCalculationSuccessFlag;
1410 bool m_FeeddownCalculated;
1411 bool m_FluctuationsCalculated;
1412 bool m_SusceptibilitiesCalculated;
1413 bool m_GCECalculated;
1416 bool m_QuantumStats;
1421 bool m_ConstrainMuB;
1422 bool m_ConstrainMuQ;
1423 bool m_ConstrainMuS;
1424 bool m_ConstrainMuC;
1430 std::vector<double> m_densities;
1431 std::vector<double> m_densitiestotal;
1433 std::vector< std::vector<double> > m_densitiesbyfeeddown;
1434 std::vector<double> m_Chem;
1437 std::vector<double> m_wprim;
1438 std::vector<double> m_wtot;
1441 std::vector<double> m_skewprim;
1442 std::vector<double> m_skewtot;
1445 std::vector<double> m_kurtprim;
1446 std::vector<double> m_kurttot;
1449 std::vector< std::vector<double> > m_PrimCorrel;
1450 std::vector< std::vector<double> > m_TotalCorrel;
1453 std::vector< std::vector<double> > m_dmusdmu;
1457 std::vector< std::vector<double> > m_PrimChargesCorrel;
1458 std::vector< std::vector<double> > m_FinalChargesCorrel;
1461 std::vector< std::vector<double> > m_Susc;
1464 std::vector< std::vector<double> > m_dSuscdT;
1467 std::vector< std::vector<double> > m_ProxySusc;
1470 bool m_TemperatureDerivativesCalculated;
1472 std::vector<double> m_dndT;
1474 std::vector<double> m_dmusdT;
1476 std::vector< std::vector<double> > m_PrimChi2sdT;
1482 std::string m_ValidityLog;
1492 virtual double MuShift(
int )
const {
return 0.; }
1496 void ResetChemicalPotentials();
1498 double GetDensity(
long long PDGID,
const std::vector<double> *dens);
1500 class BroydenEquationsChem :
public BroydenEquations
1503 BroydenEquationsChem(ThermalModelBase *model) : BroydenEquations(), m_THM(model) { m_N = 2; }
1504 std::vector<double> Equations(
const std::vector<double> &x);
1506 ThermalModelBase *m_THM;
1509 class BroydenJacobianChem :
public BroydenJacobian
1512 BroydenJacobianChem(ThermalModelBase *model) : BroydenJacobian(), m_THM(model) { }
1513 std::vector<double> Jacobian(
const std::vector<double> &x);
1515 ThermalModelBase *m_THM;
1518 class BroydenChem :
public Broyden
1521 BroydenChem(ThermalModelBase *THM, BroydenEquations *eqs = NULL, BroydenJacobian *jaco = NULL) : Broyden(eqs, jaco) { m_THM = THM; }
1522 ~BroydenChem(
void) { }
1523 std::vector<double> Solve(
const std::vector<double> &x0, BroydenSolutionCriterium *solcrit = NULL,
int max_iterations = MAX_ITERS);
1525 ThermalModelBase *m_THM;
1529 class BroydenEquationsChemTotals :
public BroydenEquations
1532 BroydenEquationsChemTotals(
const std::vector<int> & vConstr,
const std::vector<int> & vType,
const std::vector<double> & vTotals, ThermalModelBase *model);
1533 std::vector<double> Equations(
const std::vector<double> &x);
1535 std::vector<int> m_Constr;
1536 std::vector<int> m_Type;
1537 std::vector<double> m_Totals;
1538 ThermalModelBase *m_THM;
1541 class BroydenJacobianChemTotals :
public BroydenJacobian
1544 BroydenJacobianChemTotals(
const std::vector<int> & vConstr,
const std::vector<int> & vType,
const std::vector<double> & vTotals, ThermalModelBase *model) : BroydenJacobian(), m_Constr(vConstr), m_Type(vType), m_Totals(vTotals), m_THM(model) { }
1545 std::vector<double> Jacobian(
const std::vector<double> &x);
1547 std::vector<int> m_Constr;
1548 std::vector<int> m_Type;
1549 std::vector<double> m_Totals;
1550 ThermalModelBase *m_THM;
Implementation of the generic Broyden's method routines.
map< string, double > params
virtual void CalculateSusceptibilityMatrix()
Calculates the conserved charges susceptibility matrix.
virtual double FullIdealChemicalPotential(int i) const
Chemical potential entering the ideal gas expressions of particle species i.
virtual void FixParametersNoReset()
Method which actually implements ConstrainChemicalPotentialsNoReset() (for backward compatibility).
void SetSoverB(double SB)
The entropy per baryon ratio to be used to constrain the baryon chemical potential.
virtual void CalculateDensitiesGCE()
Calculates the particle densities in a grand-canonical ensemble.
virtual void ChangeTPS(ThermalParticleSystem *TPS)
Change the particle list.
virtual void SetGammaC(double gammaC)
Set the charm quark fugacity factor.
virtual void CalculateParticleChargeCorrelationMatrix()
Calculates the matrix of correlators between primordial (and also final) particle numbers and conserv...
virtual void SetTemperature(double T)
Set the temperature.
virtual void CalculateFluctuations()
Computes the fluctuation observables.
bool UsePartialChemicalEquilibrium()
Whether partial chemical equilibrium with additional chemical potentials is used.
void SetQoverB(double QB)
The electric-to-baryon charge ratio to be used to constrain the electric chemical potential.
virtual void SetRepulsion(int i, int j, double b)
Same as SetVirial() but with a more clear name on what is actually does.
void DisableBaryonAntiBaryonRepulsion()
virtual bool SolveChemicalPotentials(double totB=0., double totQ=0., double totS=0., double totC=0., double muBinit=0., double muQinit=0., double muSinit=0., double muCinit=0., bool ConstrMuB=true, bool ConstrMuQ=true, bool ConstrMuS=true, bool ConstrMuC=true)
The procedure which calculates the chemical potentials which reproduce the specified total baryon,...
bool ConstrainMuS() const
virtual double TwoParticleSusceptibilityPrimordialByPdg(long long id1, long long id2)
Returns the computed primordial particle number (cross-)susceptibility for particles with pdg codes ...
virtual void DisableMesonMesonVirial()
void SetCanonicalVolumeRadius(double Rc)
Set the canonical correlation system radius.
bool ConstrainMuQ() const
double RepulsionCoefficient(int i, int j) const
void ConstrainMuB(bool constrain)
virtual void SetVirial(int, int, double)
Set the excluded volume coefficient .
virtual ~ThermalModelBase(void)
virtual void FillChemicalPotentials()
Sets the chemical potentials of all particles.
virtual void CalculateTemperatureDerivatives()
Computes the temperature derivatives of densities, shifted chemical potentials, and primordial hadron...
virtual void DisableMesonBaryonAttraction()
virtual void WriteInteractionParameters(const std::string &)
Write the QvdW interaction parameters to a file.
void ConstrainMuC(bool constrain)
void ConstrainChemicalPotentials(bool resetInitialValues=true)
Constrains the chemical potentials by the conservation laws imposed.
virtual void FixParameters()
Method which actually implements ConstrainChemicalPotentials() (for backward compatibility).
bool ConstrainMuC() const
virtual void DisableMesonBaryonVirial()
virtual double TwoParticleSusceptibilityFinalByPdg(long long id1, long long id2)
Returns the computed final particle number (cross-)susceptibility for particles with pdg codes id1 a...
virtual double TwoParticleSusceptibilityFinal(int i, int j) const
Returns the computed final particle number (cross-)susceptibility for particles with ids i and j....
virtual void SetGammaS(double gammaS)
Set the strange quark fugacity factor.
virtual void SetCharm(int C)
Set the total charm (for canonical ensemble only)
ThermalModelInteraction
Type of interactions included in the HRG model.
@ QvdW
Quantum van der Waals model.
@ MeanField
Mean field model. Not yet fully implemented.
@ DiagonalEV
Diagonal excluded volume model.
@ CrosstermsEV
Crossterms excluded volume model.
virtual double FinalNetParticleChargeSusceptibilityByPdg(long long id1, ConservedCharge::Name chg)
Returns the computed final (after decays) net particle vs conserved charge (cross-)susceptibility fo...
void ConstrainMuQ(bool constrain)
void SetResonanceWidthIntegrationType(ThermalParticle::ResonanceWidthIntegration type)
Set the ThermalParticle::ResonanceWidthIntegration scheme for all particles. Calls the corresponding ...
virtual void CalculateFeeddown()
Calculates the total densities which include feeddown contributions.
virtual double TwoParticleSusceptibilityTemperatureDerivativePrimordial(int i, int j) const
Returns the computed temperature derivative of the primordial particle number (cross-)susceptibility ...
virtual void ReadInteractionParameters(const std::string &)
Reads the QvdW interaction parameters from a file.
void SetUseWidth(bool useWidth)
Sets whether finite resonance widths are used. Deprecated.
virtual double AttractionCoefficient(int, int) const
QvdW mean field attraction coefficient .
virtual double FinalParticleChargeSusceptibilityByPdg(long long id1, ConservedCharge::Name chg)
Returns the computed final (after decays) particle vs conserved charge (cross-)susceptibility for pa...
virtual void DisableBaryonAntiBaryonAttraction()
void UsePartialChemicalEquilibrium(bool usePCE)
Sets whether partial chemical equilibrium with additional chemical potentials is used.
virtual double FinalParticleChargeSusceptibility(int i, ConservedCharge::Name chg) const
Returns the computed final (after decays) particle vs conserved charge (cross-)susceptibility for pa...
virtual void SetChemicalPotentials(const std::vector< double > &chem=std::vector< double >(0))
Sets the chemical potentials of all particles.
void SetOMP(bool openMP)
OpenMP support. Currently not used.
double ChemicalPotential(int i) const
Chemical potential of particle species i.
virtual void SetElectricCharge(int Q)
Set the total electric charge (for canonical ensemble only)
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 CalculateTwoParticleCorrelations()
Computes the fluctuations and correlations of the primordial particle numbers.
virtual double SusceptibilityDimensionfull(ConservedCharge::Name i, ConservedCharge::Name j) const
A 2nd order susceptibility of conserved charges.
void SetNormBratio(bool normBratio)
Whether branching ratios are renormalized to 100%.
void UpdateParameters()
Calls SetParameters() with current m_Parameters.
virtual void SetParameters(const ThermalModelParameters ¶ms)
The thermal parameters.
virtual void DisableMesonMesonAttraction()
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 double PrimordialNetParticleChargeSusceptibilityByPdg(long long id1, ConservedCharge::Name chg)
Returns the computed primordial net particle vs conserved charge (cross-)susceptibility for particle...
virtual double TwoParticleSusceptibilityTemperatureDerivativePrimordialByPdg(long long id1, long long id2)
Returns the computed temperature derivative of the primordial particle number (cross-)susceptibility ...
virtual double NetParticleSusceptibilityFinalByPdg(long long id1, long long id2)
Returns the computed (cross-)susceptibility between final net-particle numbers for pdg codes id1 and...
virtual void SetChemicalPotential(int i, double chem)
Sets the chemical potential of particle species i.
std::string ValidityCheckLog() const
All messaged which occured during the validation procedure in the ValidateCalculation() method.
virtual bool FixChemicalPotentialsThroughDensities(double rhoB=0., double rhoQ=0., double rhoS=0., double rhoC=0., double muBinit=0., double muQinit=0., double muSinit=0., double muCinit=0., bool ConstrMuB=true, bool ConstrMuQ=true, bool ConstrMuS=true, bool ConstrMuC=true)
The procedure which calculates the chemical potentials which reproduce the specified baryon,...
void SetVolume(double Volume)
Sets the system volume.
virtual void ValidateCalculation()
Checks whether issues have occured during the calculation of particle densities in the CalculateDensi...
void SetResonanceWidthShape(ThermalParticle::ResonanceWidthShape shape)
Set the ThermalParticle::ResonanceWidthShape for all particles. Calls the corresponding method in TPS...
void DisableMesonMesonRepulsion()
int ComponentsNumber() const
Number of different particle species in the list.
virtual void SetBaryonCharge(int B)
Set the total baryon number (for canonical ensemble only)
virtual void DisableBaryonBaryonVirial()
virtual double VirialCoefficient(int, int) const
Excluded volume coefficient .
virtual void CalculateProxySusceptibilityMatrix()
Calculates the susceptibility matrix of conserved charges proxies.
virtual void DisableBaryonAntiBaryonVirial()
ThermalModelBase(ThermalParticleSystem *TPS, const ThermalModelParameters ¶ms=ThermalModelParameters())
Construct a new ThermalModelBase object.
virtual void DisableBaryonBaryonAttraction()
virtual double PrimordialParticleChargeSusceptibility(int i, ConservedCharge::Name chg) const
Returns the computed primordial particle vs conserved charge (cross-)susceptibility for particle wit...
virtual void CalculatePrimordialDensities()=0
Calculates the primordial densities of all species.
void SetCanonicalVolume(double Volume)
Set the canonical correlation volume V .
virtual void SetStrangenessChemicalPotential(double muS)
Set the strangeness chemical potential.
bool UseWidth() const
Whether finite resonance widths are considered.
void DisableMesonBaryonRepulsion()
void ConstrainMuS(bool constrain)
virtual double TwoParticleSusceptibilityPrimordial(int i, int j) const
Returns the computed primordial particle number (cross-)susceptibility for particles with ids i and ...
virtual void SetClusterExpansionOrder(int order)
Set the number of terms in the cluster expansion method. Calls the corresponding method in TPS().
virtual void CalculateDensities()
Calculates the primordial and total (after decays) densities of all species.
virtual void SetCalculationType(IdealGasFunctions::QStatsCalculationType type)
Sets the CalculationType() method to evaluate quantum statistics. Calls the corresponding method in T...
virtual void FillVirial(const std::vector< double > &ri=std::vector< double >(0))
Fills the excluded volume coefficients based on the provided radii parameters for all species.
const std::vector< double > & ChemicalPotentials() const
A vector of chemical potentials of all particles.
virtual void SetGammaq(double gammaq)
Set the light quark fugacity factor.
virtual void SetStrangeness(int S)
Set the total strangeness (for canonical ensemble only)
virtual void SetAttraction(int, int, double)
Set the vdW mean field attraction coefficient .
virtual double PrimordialParticleChargeSusceptibilityByPdg(long long id1, ConservedCharge::Name chg)
Returns the computed primordial particle vs conserved charge (cross-)susceptibility for particle wit...
const ThermalModelParameters & Parameters() const
virtual double NetParticleSusceptibilityPrimordialByPdg(long long id1, long long id2)
Returns the computed (cross-)susceptibility between primordial net-particle numbers for pdg codes id...
virtual void SetCharmChemicalPotential(double muC)
Set the charm chemical potential.
virtual void SetStatistics(bool stats)
double Volume() const
System volume (fm )
virtual void SetRadius(int, double)
Set the radius parameter for particle species i.
void DisableBaryonBaryonRepulsion()
ThermalModelEnsemble
The list of statistical ensembles.
@ SCE
Strangeness-canonical ensemble.
@ GCE
Grand canonical ensemble.
@ CCE
Charm-canonical ensemble.
virtual void CalculateTwoParticleFluctuationsDecays()
Computes particle number correlations and fluctuations for all final-state particles which are marked...
double CanonicalVolume() const
The canonical correlation volume V (fm )
void SetVolumeRadius(double R)
Sets the system radius.
bool QuantumStatistics() const
bool ConstrainMuB() const
ResonanceWidthIntegration
Treatment of finite resonance widths.
ResonanceWidthShape
Relativistic vs non-relativistic Breit-Wigner shape.
Class containing the particle list.
int PdgToId(long long pdg)
QStatsCalculationType
Identifies whether quantum statistics are to be computed using the cluster expansion or numerical int...
constexpr double Pi()
Pi constant.
The main namespace where all classes and functions of the Thermal-FIST library reside.
Name
Set of all conserved charges considered.
Structure containing all thermal parameters of the model.
Contains some extra mathematical functions used in the code.