Thermal-FIST  1.3
Package for hadron resonance gas model applications
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
thermalfist::ThermalModelVDW Class Reference

Class implementing the quantum van der Waals HRG model. More...

#include <ThermalModelVDW.h>

Inheritance diagram for thermalfist::ThermalModelVDW:
thermalfist::ThermalModelBase

Public Member Functions

 ThermalModelVDW (ThermalParticleSystem *TPS_, const ThermalModelParameters &params=ThermalModelParameters())
 Construct a new ThermalModelVDW object. More...
 
virtual ~ThermalModelVDW (void)
 Destroy the ThermalModelVDW object. More...
 
void FillVirialEV (const std::vector< std::vector< double > > &bij=std::vector< std::vector< double > >(0))
 Same as FillVirial() but uses the matrix of excluded-volume coefficients \( v_i \equiv b_{ii} \) as input instead of radii. More...
 
void SetVirialdT (int i, int j, double dbdT)
 Set the temperature derivative of the eigenvolume parameter \( \tilde{b}_{ij} \). More...
 
void SetAttractiondT (int i, int j, double dadT)
 Set the temperature derivative of the QvdW attraction parameter \( a_{ij} \). More...
 
double VirialCoefficientdT (int i, int j) const
 The temperature derivative of the eigenvolume parameter \( \tilde{b}_{ij} \). More...
 
double AttractionCoefficientdT (int i, int j) const
 The temperature derivative of the QvdW attraction parameter \( a_{ij} \). More...
 
void SetTemperatureDependentAB (bool Tdep)
 Sets whether temperature depedence of QvdW parameters should be considered. More...
 
bool TemperatureDependentAB () const
 Whether temperature depedence of QvdW parameters is considered. More...
 
void SetMultipleSolutionsMode (bool search)
 Whether to search for multiple solutions of the QvdW equations by considering different initial guesses in the Broyden's method. More...
 
bool UseMultipleSolutionsMode () const
 Whether to search for multiple solutions of the QvdW equations by considering different initial guesses in the Broyden's method. More...
 
double MuStar (int i) const
 The shifted chemical potential of particle species i. More...
 
std::vector< double > GetMuStar () const
 
void SetMuStar (const std::vector< double > &MuStar)
 Set the vector of shifted chemical potentials. More...
 
void FillChemicalPotentials ()
 Sets the chemical potentials of all particles. More...
 
virtual void SetChemicalPotentials (const std::vector< double > &chem=std::vector< double >(0))
 Sets the chemical potentials of all particles. More...
 
void FillVirial (const std::vector< double > &ri=std::vector< double >(0))
 Fills the excluded volume coefficients \( \tilde{b}_{ij} \) based on the provided radii parameters for all species. More...
 
void FillAttraction (const std::vector< std::vector< double > > &aij=std::vector< std::vector< double > >(0))
 
virtual void ReadInteractionParameters (const std::string &filename)
 Reads the QvdW interaction parameters from a file. More...
 
virtual void WriteInteractionParameters (const std::string &filename)
 Write the QvdW interaction parameters to a file. More...
 
void SetVirial (int i, int j, double b)
 Set the excluded volume coefficient \( \tilde{b}_{ij} \). More...
 
void SetAttraction (int i, int j, double a)
 Set the vdW mean field attraction coefficient \( a_{ij} \). More...
 
double VirialCoefficient (int i, int j) const
 Excluded volume coefficient \( \tilde{b}_{ij} = 0 \). More...
 
double AttractionCoefficient (int i, int j) const
 QvdW mean field attraction coefficient \( a_{ij} \). More...
 
virtual void ChangeTPS (ThermalParticleSystem *TPS)
 Change the particle list. More...
 
virtual void CalculatePrimordialDensities ()
 Calculates the primordial densities of all species. More...
 
virtual std::vector< double > CalculateChargeFluctuations (const std::vector< double > &chgs, int order=4)
 Calculates fluctuations (diagonal susceptibilities) of an arbitrary "conserved" charge. More...
 
virtual std::vector< std::vector< double > > CalculateFluctuations (int order)
 
void CalculateTwoParticleCorrelations ()
 Computes the fluctuations and correlations of the primordial particle numbers. More...
 
void CalculateFluctuations ()
 Computes the fluctuation observables. More...
 
virtual double CalculatePressure ()
 Implementation of the equation of state functions. More...
 
virtual double CalculateEnergyDensity ()
 
virtual double CalculateEntropyDensity ()
 
virtual double CalculateBaryonMatterEntropyDensity ()
 The fraction of entropy carried by baryons (Ideal GCE only) More...
 
virtual double CalculateMesonMatterEntropyDensity ()
 The fraction of entropy carried by mesons (Ideal GCE only) More...
 
virtual double ParticleScalarDensity (int part)
 The scalar density of the particle species i. More...
 
bool IsLastSolutionOK () const
 
double DensityId (int index)
 
- Public Member Functions inherited from thermalfist::ThermalModelBase
 ThermalModelBase (ThermalParticleSystem *TPS, const ThermalModelParameters &params=ThermalModelParameters())
 Construct a new ThermalModelBase object. More...
 
virtual ~ThermalModelBase (void)
 
int ComponentsNumber () const
 Number of different particle species in the list. More...
 
bool UseWidth () const
 Whether finite resonance widths are considered. More...
 
void SetUseWidth (bool useWidth)
 Sets whether finite resonance widths are used. Deprecated. More...
 
void SetUseWidth (ThermalParticle::ResonanceWidthIntegration type)
 Sets the finite resonance widths scheme to use. More...
 
void SetOMP (bool openMP)
 OpenMP support. Currently not used. More...
 
void UpdateParameters ()
 Calls SetParameters() with current m_Parameters. More...
 
virtual void SetTemperature (double T)
 Set the temperature. More...
 
virtual void SetBaryonChemicalPotential (double muB)
 Set the baryon chemical potential. More...
 
virtual void SetElectricChemicalPotential (double muQ)
 Set the electric chemical potential. More...
 
virtual void SetStrangenessChemicalPotential (double muS)
 Set the strangeness chemical potential. More...
 
virtual void SetCharmChemicalPotential (double muC)
 Set the charm chemical potential. More...
 
virtual void SetGammaq (double gammaq)
 Set the light quark fugacity factor. More...
 
virtual void SetGammaS (double gammaS)
 Set the strange quark fugacity factor. More...
 
virtual void SetGammaC (double gammaC)
 Set the charm quark fugacity factor. More...
 
virtual void SetBaryonCharge (int B)
 Set the total baryon number (for canonical ensemble only) More...
 
virtual void SetElectricCharge (int Q)
 Set the total electric charge (for canonical ensemble only) More...
 
virtual void SetStrangeness (int S)
 Set the total strangeness (for canonical ensemble only) More...
 
virtual void SetCharm (int C)
 Set the total charm (for canonical ensemble only) More...
 
virtual void SetRadius (double)
 Set the same excluded volume radius parameter for all species. More...
 
virtual void SetRadius (int, double)
 Set the radius parameter for particle species i. More...
 
virtual void DisableMesonMesonAttraction ()
 
virtual void DisableMesonBaryonAttraction ()
 
virtual void DisableBaryonBaryonAttraction ()
 
virtual void DisableBaryonAntiBaryonAttraction ()
 
bool QuantumStatistics () const
 
virtual void SetStatistics (bool stats)
 
virtual void SetCalculationType (IdealGasFunctions::QStatsCalculationType type)
 Sets the CalculationType() method to evaluate quantum statistics. Calls the corresponding method in TPS(). More...
 
virtual void SetClusterExpansionOrder (int order)
 Set the number of terms in the cluster expansion method. Calls the corresponding method in TPS(). More...
 
void SetResonanceWidthShape (ThermalParticle::ResonanceWidthShape shape)
 Set the ThermalParticle::ResonanceWidthShape for all particles. Calls the corresponding method in TPS(). More...
 
void SetResonanceWidthIntegrationType (ThermalParticle::ResonanceWidthIntegration type)
 Set the ThermalParticle::ResonanceWidthIntegration scheme for all particles. Calls the corresponding method in TPS(). More...
 
const std::vector< double > & ChemicalPotentials () const
 A vector of chemical potentials of all particles. More...
 
double ChemicalPotential (int i) const
 Chemical potential of particle species i. More...
 
virtual double FullIdealChemicalPotential (int i) const
 Chemical potential entering the ideal gas expressions of particle species i. More...
 
bool ConstrainMuB () const
 
void ConstrainMuB (bool constrain)
 
bool ConstrainMuQ () const
 
void ConstrainMuQ (bool constrain)
 
bool ConstrainMuS () const
 
void ConstrainMuS (bool constrain)
 
bool ConstrainMuC () const
 
void ConstrainMuC (bool constrain)
 
void UsePartialChemicalEquilibrium (bool usePCE)
 Sets whether partial chemical equilibrium with additional chemical potentials is used. More...
 
bool UsePartialChemicalEquilibrium ()
 Whether partial chemical equilibrium with additional chemical potentials is used. More...
 
void SetVolume (double Volume)
 Sets the system volume. More...
 
double Volume () const
 System volume (fm \(^3\)) More...
 
void SetVolumeRadius (double R)
 Sets the system radius. More...
 
double CanonicalVolume () const
 The canonical correlation volume V \(_c\) (fm \(^3\)) More...
 
void SetCanonicalVolume (double Volume)
 Set the canonical correlation volume V \(_c\). More...
 
void SetCanonicalVolumeRadius (double Rc)
 Set the canonical correlation system radius. More...
 
void ConstrainChemicalPotentials (bool resetInitialValues=true)
 Constrains the chemical potentials \( \mu_B,\,\mu_Q,\,\mu_S,\,\mu_C \) by the conservation laws imposed. More...
 
virtual void FixParameters ()
 Method which actually implements ConstrainChemicalPotentials() (for backward compatibility). More...
 
virtual void FixParametersNoReset ()
 Method which actually implements ConstrainChemicalPotentialsNoReset() (for backward compatibility). More...
 
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 \( \mu_B,\,\mu_Q,\,\mu_S,\,\mu_Q \) which reproduce the specified total baryon, electric, strangeness, and charm charges of the system. More...
 
virtual void CalculateDensities ()
 Calculates the primordial and total (after decays) densities of all species. More...
 
virtual void ValidateCalculation ()
 Checks whether issues have occured during the calculation of particle densities in the CalculateDensities() method. More...
 
std::string ValidityCheckLog () const
 All messaged which occured during the validation procedure in the ValidateCalculation() method. More...
 
virtual void CalculateDensitiesGCE ()
 Calculates the particle densities in a grand-canonical ensemble. More...
 
virtual void CalculateFeeddown ()
 Calculates the total densities which include feeddown contributions. More...
 
virtual void CalculateTwoParticleFluctuationsDecays ()
 Computes particle number correlations and fluctuations for all final-state particles which are marked stable. More...
 
virtual double TwoParticleSusceptibilityPrimordial (int i, int j) const
 Returns the computed primordial particle number (cross-)susceptibility \( \frac{1}{VT^3} \, \langle \Delta N_i \Delta N_j \rangle \) for particles with ids i and j. CalculateFluctuations() must be called beforehand. More...
 
virtual double TwoParticleSusceptibilityPrimordialByPdg (long long id1, long long id2)
 Returns the computed primordial particle number (cross-)susceptibility \( \frac{1}{VT^3} \, \langle \Delta N_i \Delta N_j \rangle \) for particles with pdg codes id1 and id2. CalculateFluctuations() must be called beforehand. More...
 
virtual double NetParticleSusceptibilityPrimordialByPdg (long long id1, long long id2)
 Returns the computed (cross-)susceptibility \( \frac{1}{VT^3} \, \langle \Delta N_i \Delta N_j \rangle \) between primordial net-particle numbers for pdg codes id1 and id2. CalculateFluctuations() must be called beforehand. More...
 
virtual double TwoParticleSusceptibilityFinal (int i, int j) const
 Returns the computed final particle number (cross-)susceptibility \( \frac{1}{VT^3} \, \langle \Delta N_i \Delta N_j \rangle \) for particles with ids i and j. CalculateFluctuations() must be called beforehand. Both particle species must be those marked stable. More...
 
virtual double TwoParticleSusceptibilityFinalByPdg (long long id1, long long id2)
 Returns the computed final particle number (cross-)susceptibility \( \frac{1}{VT^3} \, \langle \Delta N_i \Delta N_j \rangle \) for particles with pdg codes id1 and id2. CalculateFluctuations() must be called beforehand. Both particle species must be those marked stable. More...
 
virtual double NetParticleSusceptibilityFinalByPdg (long long id1, long long id2)
 Returns the computed (cross-)susceptibility \( \frac{1}{VT^3} \, \langle \Delta N_i \Delta N_j \rangle \) between final net-particle numbers for pdg codes id1 and id2. CalculateFluctuations() must be called beforehand. More...
 
virtual double PrimordialParticleChargeSusceptibility (int i, ConservedCharge::Name chg) const
 Returns the computed primordial particle vs conserved charge (cross-)susceptibility \( \frac{1}{VT^3} \, \langle \Delta N_i \Delta N_chg \rangle \) for particle with id i and conserved charge chg. CalculateFluctuations() must be called beforehand. More...
 
virtual double PrimordialParticleChargeSusceptibilityByPdg (long long id1, ConservedCharge::Name chg)
 Returns the computed primordial particle vs conserved charge (cross-)susceptibility \( \frac{1}{VT^3} \, \langle \Delta N_i \Delta N_chg \rangle \) for particle with pdg code id1 and conserved charge chg. CalculateFluctuations() must be called beforehand. More...
 
virtual double PrimordialNetParticleChargeSusceptibilityByPdg (long long id1, ConservedCharge::Name chg)
 Returns the computed primordial net particle vs conserved charge (cross-)susceptibility \( \frac{1}{VT^3} \, \langle \Delta N_i \Delta N_chg \rangle \) for particle with pdg code id1 and conserved charge chg. CalculateFluctuations() must be called beforehand. More...
 
virtual double FinalParticleChargeSusceptibility (int i, ConservedCharge::Name chg) const
 Returns the computed final (after decays) particle vs conserved charge (cross-)susceptibility \( \frac{1}{VT^3} \, \langle \Delta N_i \Delta N_chg \rangle \) for particle with id i and conserved charge chg. CalculateFluctuations() must be called beforehand. More...
 
virtual double FinalParticleChargeSusceptibilityByPdg (long long id1, ConservedCharge::Name chg)
 Returns the computed final (after decays) particle vs conserved charge (cross-)susceptibility \( \frac{1}{VT^3} \, \langle \Delta N_i \Delta N_chg \rangle \) for particle with pdg code id1 and conserved charge chg. CalculateFluctuations() must be called beforehand. More...
 
virtual double FinalNetParticleChargeSusceptibilityByPdg (long long id1, ConservedCharge::Name chg)
 Returns the computed final (after decays) net particle vs conserved charge (cross-)susceptibility \( \frac{1}{VT^3} \, \langle \Delta N_i \Delta N_chg \rangle \) for particle with pdg code id1 and conserved charge chg. CalculateFluctuations() must be called beforehand. More...
 
virtual void CalculateSusceptibilityMatrix ()
 Calculates the conserved charges susceptibility matrix. More...
 
virtual void CalculateProxySusceptibilityMatrix ()
 Calculates the susceptibility matrix of conserved charges proxies. More...
 
virtual void CalculateParticleChargeCorrelationMatrix ()
 Calculates the matrix of correlators between primordial (and also final) particle numbers and conserved charges. More...
 
double Pressure ()
 System pressure (GeV fm \(^{-3}\)) More...
 
double EnergyDensity ()
 Energy density (GeV fm \(^{-3}\)) More...
 
double EntropyDensity ()
 Entropy density (fm \(^{-3}\)) More...
 
double HadronDensity ()
 Total number density of all particle (fm \(^{-3}\)) More...
 
double BaryonDensity ()
 Net baryon density (fm \(^{-3}\)) More...
 
double ElectricChargeDensity ()
 Electric charge density (fm \(^{-3}\)) More...
 
double StrangenessDensity ()
 Net strangeness density (fm \(^{-3}\)) More...
 
double CharmDensity ()
 Net charm density (fm \(^{-3}\)) More...
 
double AbsoluteBaryonDensity ()
 Absolute baryon number density (baryons + antibaryons) (fm \(^{-3}\)) More...
 
double AbsoluteElectricChargeDensity ()
 Absolute electric charge density (Q+ + Q-) (fm \(^{-3}\)) More...
 
double AbsoluteStrangenessDensity ()
 Absolute strange quark content density (fm \(^{-3}\)) More...
 
double AbsoluteCharmDensity ()
 Absolute charm quark content density (fm \(^{-3}\)) More...
 
virtual double CalculateArbitraryChargeDensity ()
 Computes the density of the auxiliary ArbitraryCharge() More...
 
virtual double ParticleScaledVariance (int)
 Scaled variance of primordial particle number fluctuations for species i. More...
 
virtual double ParticleSkewness (int)
 Skewness of primordial particle number fluctuations for species i. More...
 
virtual double ParticleKurtosis (int)
 Kurtosis of primordial particle number fluctuations for species i. More...
 
virtual double CalculateEigenvolumeFraction ()
 
virtual double GetMaxDiff () const
 
double GetDensity (long long PDGID, int feeddown)
 Same as GetDensity(int,Feeddown::Type) More...
 
double GetDensity (long long PDGID, Feeddown::Type feeddown)
 Particle number density of species with a specified PDG ID and feeddown. More...
 
double GetYield (long long PDGID, Feeddown::Type feeddown)
 Particle number yield of species with a specified PDG ID and feeddown. More...
 
std::vector< double > GetIdealGasDensities () const
 
ThermalParticleSystemTPS ()
 
const std::vector< double > & Densities () const
 
const std::vector< double > & TotalDensities () const
 
const std::vector< std::vector< double > > & AllDensities () const
 
void SetTAG (const std::string &tag)
 Set the tag for this ThermalModelBase object. More...
 
const std::string & TAG () const
 The tag of this ThermalModelBase object. More...
 
void ResetCalculatedFlags ()
 Reset all flags which correspond to a calculation status. More...
 
bool IsCalculated () const
 
bool IsFluctuationsCalculated () const
 
bool IsGCECalculated () const
 
double ScaledVariancePrimordial (int id) const
 Scaled variance of primordial particle number fluctuations for particle species id. More...
 
double ScaledVarianceTotal (int id) const
 Scaled variance of final particle number fluctuations for particle species id. More...
 
double SkewnessPrimordial (int id) const
 Normalized skewness of primordial particle number fluctuations for particle species id. More...
 
double SkewnessTotal (int id) const
 Normalized skewness of final particle number fluctuations for particle species id. More...
 
double KurtosisPrimordial (int id) const
 Normalized excess kurtosis of primordial particle number fluctuations for particle species id. More...
 
double KurtosisTotal (int id) const
 Normalized excess kurtosis of final particle number fluctuations for particle species id. More...
 
double ConservedChargeDensity (ConservedCharge::Name chg)
 A density of a conserved charge (in fm^-3) More...
 
double Susc (ConservedCharge::Name i, ConservedCharge::Name j) const
 A 2nd order susceptibility of conserved charges. More...
 
double ProxySusc (ConservedCharge::Name i, ConservedCharge::Name j) const
 A 2nd order susceptibility of conserved charges proxies. More...
 
double ChargedMultiplicity (int type=0)
 Multiplicity of charged particles. More...
 
double ChargedScaledVariance (int type=0)
 Scaled variance of charged particles. More...
 
double ChargedMultiplicityFinal (int type=0)
 Multiplicity of charged particles including the feeddown contributions in accordance with the stability flags. More...
 
double ChargedScaledVarianceFinal (int type=0)
 Scaled variance of charged particles including the feeddown contributions in accordance with the stability flags. More...
 
ThermalModelEnsemble Ensemble ()
 The statistical ensemble of the current HRG model. More...
 
virtual bool IsConservedChargeCanonical (ConservedCharge::Name charge) const
 Whether the given conserved charge is treated canonically. More...
 
ThermalModelInteraction InteractionModel ()
 The interactions present in the current HRG model. More...
 
void SetNormBratio (bool normBratio)
 Whether branching ratios are renormalized to 100%. More...
 
bool NormBratio () const
 
virtual void SetParameters (const ThermalModelParameters &params)
 The thermal parameters. More...
 
const ThermalModelParametersParameters () const
 
virtual void DisableMesonMesonVirial ()
 
void DisableMesonMesonRepulsion ()
 
virtual void DisableMesonBaryonVirial ()
 
void DisableMesonBaryonRepulsion ()
 
virtual void DisableBaryonBaryonVirial ()
 
void DisableBaryonBaryonRepulsion ()
 
virtual void DisableBaryonAntiBaryonVirial ()
 
void DisableBaryonAntiBaryonRepulsion ()
 
double RepulsionCoefficient (int i, int j) const
 
void SetSoverB (double SB)
 The entropy per baryon ratio to be used to constrain the baryon chemical potential. More...
 
double SoverB () const
 
void SetQoverB (double QB)
 The electric-to-baryon charge ratio to be used to constrain the electric chemical potential. More...
 
double QoverB () const
 
virtual double CalculateHadronDensity ()
 
virtual double CalculateBaryonDensity ()
 
virtual double CalculateChargeDensity ()
 
virtual double CalculateStrangenessDensity ()
 
virtual double CalculateCharmDensity ()
 
virtual double CalculateAbsoluteBaryonDensity ()
 
virtual double CalculateAbsoluteChargeDensity ()
 
virtual double CalculateAbsoluteStrangenessDensity ()
 
virtual double CalculateAbsoluteCharmDensity ()
 

Protected Member Functions

std::vector< double > ComputeNp (const std::vector< double > &dmustar)
 
std::vector< double > ComputeNp (const std::vector< double > &dmustar, const std::vector< double > &ns)
 
virtual std::vector< double > SearchSingleSolution (const std::vector< double > &muStarInit)
 Uses the Broyden method with a provided initial guess to determine the shifted chemical potentials by solving the transcendental equations with the Broyden's method. More...
 
std::vector< double > SearchMultipleSolutions (int iters=300)
 Uses the Broyden method with different initial guesses to look for different possible solutions of the transcendental equations for shifted chemical potentials. More...
 
void SolveEquations ()
 
virtual double MuShift (int id) const
 The shift in the chemical potential of particle species i due to the QvdW interactions. More...
 

Protected Attributes

std::vector< double > m_DensitiesId
 Vector of ideal gas densities with shifted chemical potentials. More...
 
std::vector< double > m_scaldens
 Vector of scalar densities. Not used. More...
 
std::vector< std::vector< double > > m_Virial
 
std::vector< std::vector< double > > m_Attr
 Matrix of the attractive QvdW coefficients \( a_{ij} \). More...
 
std::vector< std::vector< double > > m_VirialdT
 
std::vector< std::vector< double > > m_AttrdT
 
bool m_TemperatureDependentAB
 
bool m_SearchMultipleSolutions
 Whether multiple solutions are considered. More...
 
bool m_LastBroydenSuccessFlag
 Whether Broyden's method was successfull. More...
 
std::vector< double > m_MuStar
 Vector of the shifted chemical potentials. More...
 
std::vector< int > m_MapTodMuStar
 
std::vector< int > m_MapFromdMuStar
 
std::vector< std::vector< int > > m_dMuStarIndices
 
- Protected Attributes inherited from thermalfist::ThermalModelBase
ThermalModelParameters m_Parameters
 
ThermalParticleSystemm_TPS
 
bool m_LastCalculationSuccessFlag
 
double m_MaxDiff
 
bool m_Calculated
 
bool m_FeeddownCalculated
 
bool m_FluctuationsCalculated
 
bool m_GCECalculated
 
bool m_UseWidth
 
bool m_NormBratio
 
bool m_QuantumStats
 
double m_QBgoal
 
double m_SBgoal
 
double m_Volume
 
bool m_ConstrainMuB
 
bool m_ConstrainMuQ
 
bool m_ConstrainMuS
 
bool m_ConstrainMuC
 
bool m_PCE
 
bool m_useOpenMP
 
std::vector< double > m_densities
 
std::vector< double > m_densitiestotal
 
std::vector< std::vector< double > > m_densitiesbyfeeddown
 
std::vector< double > m_Chem
 
std::vector< double > m_wprim
 
std::vector< double > m_wtot
 
std::vector< double > m_skewprim
 
std::vector< double > m_skewtot
 
std::vector< double > m_kurtprim
 
std::vector< double > m_kurttot
 
std::vector< std::vector< double > > m_PrimCorrel
 
std::vector< std::vector< double > > m_TotalCorrel
 
std::vector< std::vector< double > > m_PrimChargesCorrel
 
std::vector< std::vector< double > > m_FinalChargesCorrel
 
std::vector< std::vector< double > > m_Susc
 
std::vector< std::vector< double > > m_ProxySusc
 
std::string m_ValidityLog
 
double m_wnSum
 
std::string m_TAG
 
ThermalModelEnsemble m_Ensemble
 
ThermalModelInteraction m_InteractionModel
 

Additional Inherited Members

- Public Types inherited from thermalfist::ThermalModelBase
enum  ThermalModelEnsemble { GCE = 0, CE = 1, SCE = 2, CCE = 3 }
 The list of statistical ensembles. More...
 
enum  ThermalModelInteraction {
  Ideal = 0, DiagonalEV = 1, CrosstermsEV = 2, QvdW = 3,
  RealGas = 4, MeanField = 5
}
 Type of interactions included in the HRG model. More...
 

Detailed Description

Class implementing the quantum van der Waals HRG model.

The model formulation can be found in

V. Vovchenko, M.I. Gorenstein, H. Stoecker, Phys. Rev. Lett. 118, 182301 (2017), http://arxiv.org/pdf/1609.03975.pdf

and in, in more detail, in

V. Vovchenko, A. Motornenko, P. Alba, M.I. Gorenstein, L.M. Satarov, H. Stoecker, Phys. Rev. C 96, 045202 (2017), http://arxiv.org/pdf/1707.09215.pdf

The system of transcendental equations for the "shifted" chemical potentials of hadrons, Eq. (15) in the latter reference, is solved using the Broyden's method.

Definition at line 36 of file ThermalModelVDW.h.

Constructor & Destructor Documentation

thermalfist::ThermalModelVDW::ThermalModelVDW ( ThermalParticleSystem TPS_,
const ThermalModelParameters params = ThermalModelParameters() 
)

Construct a new ThermalModelVDW object.

Parameters
TPSA pointer to the ThermalParticleSystem object containing the particle list
paramsThermalModelParameters object with current thermal parameters

Definition at line 34 of file ThermalModelVDW.cpp.

thermalfist::ThermalModelVDW::~ThermalModelVDW ( void  )
virtual

Destroy the ThermalModelVDW object.

Definition at line 54 of file ThermalModelVDW.cpp.

Member Function Documentation

double thermalfist::ThermalModelVDW::AttractionCoefficient ( int  ,
int   
) const
virtual

QvdW mean field attraction coefficient \( a_{ij} \).

Parameters
i0-based index of the first particle species
j0-based index of the second particle species
Returns
double Coefficient \( a_{ij} = 0 \)

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 934 of file ThermalModelVDW.cpp.

double thermalfist::ThermalModelVDW::AttractionCoefficientdT ( int  i,
int  j 
) const

The temperature derivative of the QvdW attraction parameter \( a_{ij} \).

Parameters
i0-based index of the first particle species
j0-based index of the second particle species
Returns
\( d a_{ij} / dT \) in the units of fm \(^3\)

Definition at line 948 of file ThermalModelVDW.cpp.

virtual double thermalfist::ThermalModelVDW::CalculateBaryonMatterEntropyDensity ( )
inlinevirtual

The fraction of entropy carried by baryons (Ideal GCE only)

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 191 of file ThermalModelVDW.h.

vector< double > thermalfist::ThermalModelVDW::CalculateChargeFluctuations ( const std::vector< double > &  chgs,
int  order = 4 
)
virtual

Calculates fluctuations (diagonal susceptibilities) of an arbitrary "conserved" charge.

Each particle specie is assumed to carry a conserved charge with a value provided by an input vector.

Restricted to the grand canonical ensemble.

Parameters
chgsA vector with conserved charge values for all species. 0-based indices of the vector must correspond to the 0-based indices of the particle list TPS()
orderUp to which order the susceptibilities are computed
Returns
std::vector<double> A vector with computed values of diagonal susceptibilities

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 546 of file ThermalModelVDW.cpp.

double thermalfist::ThermalModelVDW::CalculateEnergyDensity ( )
virtual

Implements thermalfist::ThermalModelBase.

Definition at line 858 of file ThermalModelVDW.cpp.

double thermalfist::ThermalModelVDW::CalculateEntropyDensity ( )
virtual

Implements thermalfist::ThermalModelBase.

Definition at line 881 of file ThermalModelVDW.cpp.

vector< vector< double > > thermalfist::ThermalModelVDW::CalculateFluctuations ( int  order)
virtual

Definition at line 731 of file ThermalModelVDW.cpp.

void thermalfist::ThermalModelVDW::CalculateFluctuations ( )
virtual

Computes the fluctuation observables.

Includes the matrix of 2nd order susceptibilities of conserved charges, as well as particle number correlations and fluctuations, both for primordial yields and after decays.

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 839 of file ThermalModelVDW.cpp.

virtual double thermalfist::ThermalModelVDW::CalculateMesonMatterEntropyDensity ( )
inlinevirtual

The fraction of entropy carried by mesons (Ideal GCE only)

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 193 of file ThermalModelVDW.h.

double thermalfist::ThermalModelVDW::CalculatePressure ( )
virtual

Implementation of the equation of state functions.

Implements thermalfist::ThermalModelBase.

Definition at line 901 of file ThermalModelVDW.cpp.

void thermalfist::ThermalModelVDW::CalculatePrimordialDensities ( )
virtual

Calculates the primordial densities of all species.

Implements thermalfist::ThermalModelBase.

Definition at line 358 of file ThermalModelVDW.cpp.

void thermalfist::ThermalModelVDW::CalculateTwoParticleCorrelations ( )
virtual

Computes the fluctuations and correlations of the primordial particle numbers.

More specifically, computes the susceptibility matrix \( \frac{1}{VT^3} \, \langle \Delta N_i^* \Delta N_j^* \rangle \), where \( N_i^* \) is the primordial yield of species i.

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 764 of file ThermalModelVDW.cpp.

void thermalfist::ThermalModelVDW::ChangeTPS ( ThermalParticleSystem TPS)
virtual

Change the particle list.

Parameters
TPSA pointer to new particle list.

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 179 of file ThermalModelVDW.cpp.

std::vector< double > thermalfist::ThermalModelVDW::ComputeNp ( const std::vector< double > &  dmustar)
protected

Returns vector of particle densities for given values of shifted chemical potentials

Parameters
dmustarA vector of shifted chemical potentials
Returns
std::vector<double> Vector of particle densities

Definition at line 187 of file ThermalModelVDW.cpp.

std::vector< double > thermalfist::ThermalModelVDW::ComputeNp ( const std::vector< double > &  dmustar,
const std::vector< double > &  ns 
)
protected

Same as ComputeNp(const std::vector<double>&) but using the vector of ideal gas densities as input instead of calculating it

Definition at line 196 of file ThermalModelVDW.cpp.

double thermalfist::ThermalModelVDW::DensityId ( int  index)
inline

Definition at line 199 of file ThermalModelVDW.h.

void thermalfist::ThermalModelVDW::FillAttraction ( const std::vector< std::vector< double > > &  aij = std::vector< std::vector<double> >(0))

Definition at line 104 of file ThermalModelVDW.cpp.

void thermalfist::ThermalModelVDW::FillChemicalPotentials ( )
virtual

Sets the chemical potentials of all particles.

Uses the current values of \( \mu_B,\,\mu_Q,\,\mu_S,\,\mu_Q \) to set \( \mu_i \).

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 58 of file ThermalModelVDW.cpp.

void thermalfist::ThermalModelVDW::FillVirial ( const std::vector< double > &  ri = std::vector<double>(0))
virtual

Fills the excluded volume coefficients \( \tilde{b}_{ij} \) based on the provided radii parameters for all species.

Fills the coefficients in accordance with Eqs. (5) and (7) here https://arxiv.org/pdf/1606.06218.pdf

Parameters
riA vector with radii parameters for all species. 0-based indices of the vector must corresponds to the 0-based indices of the particle list TPS()

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 71 of file ThermalModelVDW.cpp.

void thermalfist::ThermalModelVDW::FillVirialEV ( const std::vector< std::vector< double > > &  bij = std::vector< std::vector<double> >(0))

Same as FillVirial() but uses the matrix of excluded-volume coefficients \( v_i \equiv b_{ii} \) as input instead of radii.

Parameters
bijA vector with crossterms excluded-volume coefficients for all pairs of particle species

Definition at line 95 of file ThermalModelVDW.cpp.

std::vector<double> thermalfist::ThermalModelVDW::GetMuStar ( ) const
inline

Returns vector of shifted chemical potentials, one element per each species

Definition at line 145 of file ThermalModelVDW.h.

bool thermalfist::ThermalModelVDW::IsLastSolutionOK ( ) const
inlinevirtual

Whether particle densities calculation in the CalculateDensities() method were successfull

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 197 of file ThermalModelVDW.h.

double thermalfist::ThermalModelVDW::MuShift ( int  id) const
protectedvirtual

The shift in the chemical potential of particle species i due to the QvdW interactions.

Parameters
i0-based particle specie index
Returns
The shift in the chemical potential

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 919 of file ThermalModelVDW.cpp.

double thermalfist::ThermalModelVDW::MuStar ( int  i) const
inline

The shifted chemical potential of particle species i.

Definition at line 141 of file ThermalModelVDW.h.

double thermalfist::ThermalModelVDW::ParticleScalarDensity ( int  i)
virtual

The scalar density of the particle species i.

Implements thermalfist::ThermalModelBase.

Definition at line 913 of file ThermalModelVDW.cpp.

void thermalfist::ThermalModelVDW::ReadInteractionParameters ( const std::string &  )
virtual

Reads the QvdW interaction parameters from a file.

Actual implementation is in a derived class.

Parameters
filenameFile with interaction parameters.

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 113 of file ThermalModelVDW.cpp.

vector< double > thermalfist::ThermalModelVDW::SearchMultipleSolutions ( int  iters = 300)
protected

Uses the Broyden method with different initial guesses to look for different possible solutions of the transcendental equations for shifted chemical potentials.

Looks for the solution with the largest pressure.

Parameters
itersNumber of different initial guesses to try
Returns
std::vector<double> The solution with the largest pressure among those which were found

Definition at line 275 of file ThermalModelVDW.cpp.

vector< double > thermalfist::ThermalModelVDW::SearchSingleSolution ( const std::vector< double > &  muStarInit)
protectedvirtual

Uses the Broyden method with a provided initial guess to determine the shifted chemical potentials by solving the transcendental equations with the Broyden's method.

Parameters
muStarInitInitial guess for the shifted chemical potentials
Returns
std::vector<double> The solved shifted chemical potentials

Definition at line 244 of file ThermalModelVDW.cpp.

void thermalfist::ThermalModelVDW::SetAttraction ( int  ,
int  ,
double   
)
inlinevirtual

Set the vdW mean field attraction coefficient \( a_{ij} \).

Parameters
i0-based index of the first particle species
j0-based index of the second particle species
avdW mean field attraction parameter \( a_{ij} \) (GeV fm \(^3\))

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 166 of file ThermalModelVDW.h.

void thermalfist::ThermalModelVDW::SetAttractiondT ( int  i,
int  j,
double  dadT 
)
inline

Set the temperature derivative of the QvdW attraction parameter \( a_{ij} \).

Parameters
i0-based index of the first particle species
j0-based index of the second particle species
dadT\( d a_{ij} / dT \) in the units of fm \(^3\)

Definition at line 79 of file ThermalModelVDW.h.

void thermalfist::ThermalModelVDW::SetChemicalPotentials ( const std::vector< double > &  chem = std::vector<double>(0))
virtual

Sets the chemical potentials of all particles.

Parameters
chemA vector with chemical potentials of all species. 0-based indices of the vector must corresponds to the 0-based indices of the particle list TPS()

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 64 of file ThermalModelVDW.cpp.

void thermalfist::ThermalModelVDW::SetMultipleSolutionsMode ( bool  search)
inline

Whether to search for multiple solutions of the QvdW equations by considering different initial guesses in the Broyden's method.

Multiple solutions in the QvdW model appear e.g. below the critical temperature of the liquid-gas phase transition.

Parameters
searchWhether multiple solutions of the QvdW equations should be considered. False by default.

Definition at line 129 of file ThermalModelVDW.h.

void thermalfist::ThermalModelVDW::SetMuStar ( const std::vector< double > &  MuStar)
inline

Set the vector of shifted chemical potentials.

Definition at line 148 of file ThermalModelVDW.h.

void thermalfist::ThermalModelVDW::SetTemperatureDependentAB ( bool  Tdep)
inline

Sets whether temperature depedence of QvdW parameters should be considered.

Parameters
Tdeptrue – considered, false – not considered

Definition at line 107 of file ThermalModelVDW.h.

void thermalfist::ThermalModelVDW::SetVirial ( int  ,
int  ,
double   
)
inlinevirtual

Set the excluded volume coefficient \( \tilde{b}_{ij} \).

Excluded parameter for repulsive interaction between particle species i and j.

Parameters
i0-based index of the first particle species
j0-based index of the second particle species
bExcluded volume parameter \( \tilde{b}_{ij} \) (fm \(^3\))

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 164 of file ThermalModelVDW.h.

void thermalfist::ThermalModelVDW::SetVirialdT ( int  i,
int  j,
double  dbdT 
)
inline

Set the temperature derivative of the eigenvolume parameter \( \tilde{b}_{ij} \).

Parameters
i0-based index of the first particle species
j0-based index of the second particle species
dbdT\( d \tilde{b}_{ij} / dT \) in the units of fm \(^3\) GeV \(^{-1}\)

Definition at line 69 of file ThermalModelVDW.h.

void thermalfist::ThermalModelVDW::SolveEquations ( )
protected

Solve the transcedental equations for the shifted chemical potentials

Definition at line 340 of file ThermalModelVDW.cpp.

bool thermalfist::ThermalModelVDW::TemperatureDependentAB ( ) const
inline

Whether temperature depedence of QvdW parameters is considered.

Returns
true considered
false not considered

Definition at line 116 of file ThermalModelVDW.h.

bool thermalfist::ThermalModelVDW::UseMultipleSolutionsMode ( ) const
inline

Whether to search for multiple solutions of the QvdW equations by considering different initial guesses in the Broyden's method.

Returns
true Multiple solutions considered
false Multiple solutions not considered

Definition at line 138 of file ThermalModelVDW.h.

double thermalfist::ThermalModelVDW::VirialCoefficient ( int  ,
int   
) const
virtual

Excluded volume coefficient \( \tilde{b}_{ij} = 0 \).

Excluded parameter for repulsive interaction between particle species i and j.

Parameters
i0-based index of the first particle species
j0-based index of the second particle species
Returns
double Coefficient \( \tilde{b}_{ij} = 0 \)

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 927 of file ThermalModelVDW.cpp.

double thermalfist::ThermalModelVDW::VirialCoefficientdT ( int  i,
int  j 
) const

The temperature derivative of the eigenvolume parameter \( \tilde{b}_{ij} \).

Parameters
i0-based index of the first particle species
j0-based index of the second particle species
Returns
dbdT \( d \tilde{b}_{ij} / dT \) in the units of fm \(^3\) GeV \(^{-1}\)

Definition at line 941 of file ThermalModelVDW.cpp.

void thermalfist::ThermalModelVDW::WriteInteractionParameters ( const std::string &  )
virtual

Write the QvdW interaction parameters to a file.

Actual implementation is in a derived class.

Parameters
filenameOutput file.

Reimplemented from thermalfist::ThermalModelBase.

Definition at line 143 of file ThermalModelVDW.cpp.

Member Data Documentation

std::vector< std::vector<double> > thermalfist::ThermalModelVDW::m_Attr
protected

Matrix of the attractive QvdW coefficients \( a_{ij} \).

Definition at line 263 of file ThermalModelVDW.h.

std::vector< std::vector<double> > thermalfist::ThermalModelVDW::m_AttrdT
protected

Matrix of the temperature derivatives of the attractive QvdW coefficients \( d a_{ij} / dT \)

Definition at line 271 of file ThermalModelVDW.h.

std::vector<double> thermalfist::ThermalModelVDW::m_DensitiesId
protected

Vector of ideal gas densities with shifted chemical potentials.

Definition at line 254 of file ThermalModelVDW.h.

std::vector< std::vector<int> > thermalfist::ThermalModelVDW::m_dMuStarIndices
protected

Definition at line 290 of file ThermalModelVDW.h.

bool thermalfist::ThermalModelVDW::m_LastBroydenSuccessFlag
protected

Whether Broyden's method was successfull.

Definition at line 281 of file ThermalModelVDW.h.

std::vector<int> thermalfist::ThermalModelVDW::m_MapFromdMuStar
protected

Definition at line 288 of file ThermalModelVDW.h.

std::vector<int> thermalfist::ThermalModelVDW::m_MapTodMuStar
protected

Definition at line 286 of file ThermalModelVDW.h.

std::vector<double> thermalfist::ThermalModelVDW::m_MuStar
protected

Vector of the shifted chemical potentials.

Definition at line 284 of file ThermalModelVDW.h.

std::vector<double> thermalfist::ThermalModelVDW::m_scaldens
protected

Vector of scalar densities. Not used.

Definition at line 257 of file ThermalModelVDW.h.

bool thermalfist::ThermalModelVDW::m_SearchMultipleSolutions
protected

Whether multiple solutions are considered.

Definition at line 278 of file ThermalModelVDW.h.

bool thermalfist::ThermalModelVDW::m_TemperatureDependentAB
protected

Whether temperature depedence of QvdW parameters is considered.

Definition at line 275 of file ThermalModelVDW.h.

std::vector< std::vector<double> > thermalfist::ThermalModelVDW::m_Virial
protected

Matrix of virial (excluded-volume) coefficients \( \tilde{b}_{ij} \)

Definition at line 260 of file ThermalModelVDW.h.

std::vector< std::vector<double> > thermalfist::ThermalModelVDW::m_VirialdT
protected

Matrix of the temperature derivatives of the virial (excluded-volume) coefficients \( d \tilde{b}_{ij} / dT \)

Definition at line 267 of file ThermalModelVDW.h.


The documentation for this class was generated from the following files: