![]() |
Thermal-FIST 1.5
Package for hadron resonance gas model applications
|
Class implementing the crossterms excluded-volume model. More...
#include <ThermalModelEVCrossterms.h>
Public Member Functions | |
ThermalModelEVCrossterms (ThermalParticleSystem *TPS, const ThermalModelParameters ¶ms=ThermalModelParameters()) | |
Construct a new ThermalModelEVCrossterms object. | |
virtual | ~ThermalModelEVCrossterms (void) |
Destroy the ThermalModelEVCrossterms object. | |
virtual void | ReadInteractionParameters (const std::string &filename) |
Reads the QvdW interaction parameters from a file. | |
virtual void | WriteInteractionParameters (const std::string &filename) |
Write the QvdW interaction parameters to a file. | |
virtual void | SetRadius (double rad) |
Set the same excluded volume radius parameter for all species. | |
virtual void | SetAttraction (int i, int j, double a) |
Set the vdW mean field attraction coefficient \( a_{ij} \). | |
virtual void | SetMultipleSolutionsMode (bool search) |
No need to search for multiple soultions in EV-HRG model. | |
const std::vector< std::vector< int > > & | EVComponentIndices () const |
![]() | |
ThermalModelVDW (ThermalParticleSystem *TPS_, const ThermalModelParameters ¶ms=ThermalModelParameters()) | |
Construct a new ThermalModelVDW object. | |
virtual | ~ThermalModelVDW (void) |
Destroy the ThermalModelVDW object. | |
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. | |
void | SetVirialdT (int i, int j, double dbdT) |
Set the temperature derivative of the eigenvolume parameter \( \tilde{b}_{ij} \). | |
void | SetAttractiondT (int i, int j, double dadT) |
Set the temperature derivative of the QvdW attraction parameter \( a_{ij} \). | |
double | VirialCoefficientdT (int i, int j) const |
The temperature derivative of the eigenvolume parameter \( \tilde{b}_{ij} \). | |
double | AttractionCoefficientdT (int i, int j) const |
The temperature derivative of the QvdW attraction parameter \( a_{ij} \). | |
void | SetTemperatureDependentAB (bool Tdep) |
Sets whether temperature depedence of QvdW parameters should be considered. | |
bool | TemperatureDependentAB () const |
Whether temperature depedence of QvdW parameters is considered. | |
bool | UseMultipleSolutionsMode () const |
Whether to search for multiple solutions of the QvdW equations by considering different initial guesses in the Broyden's method. | |
double | MuStar (int i) const |
The shifted chemical potential of particle species i. | |
std::vector< double > | GetMuStar () const |
void | SetMuStar (const std::vector< double > &MuStar) |
Set the vector of shifted chemical potentials. | |
void | FillChemicalPotentials () |
Sets the chemical potentials of all particles. | |
virtual void | SetChemicalPotentials (const std::vector< double > &chem=std::vector< double >(0)) |
Sets the chemical potentials of all particles. | |
virtual 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. | |
virtual void | FillAttraction (const std::vector< std::vector< double > > &aij=std::vector< std::vector< double > >(0)) |
virtual void | SetVirial (int i, int j, double b) |
Set the excluded volume coefficient \( \tilde{b}_{ij} \). | |
double | VirialCoefficient (int i, int j) const |
Excluded volume coefficient \( \tilde{b}_{ij} = 0 \). | |
double | AttractionCoefficient (int i, int j) const |
QvdW mean field attraction coefficient \( a_{ij} \). | |
virtual void | ChangeTPS (ThermalParticleSystem *TPS) |
Change the particle list. | |
virtual void | CalculatePrimordialDensities () |
Calculates the primordial densities of all species. | |
virtual std::vector< double > | CalculateChargeFluctuations (const std::vector< double > &chgs, int order=4) |
Calculates fluctuations (diagonal susceptibilities) of an arbitrary "conserved" charge. | |
virtual std::vector< std::vector< double > > | CalculateFluctuations (int order) |
void | CalculateTwoParticleCorrelations () |
Computes the fluctuations and correlations of the primordial particle numbers. | |
void | CalculateFluctuations () |
Computes the fluctuation observables. | |
virtual double | CalculatePressure () |
virtual double | CalculateEnergyDensity () |
virtual double | CalculateEntropyDensity () |
virtual double | CalculateEnergyDensityDerivativeT () |
virtual void | CalculateTemperatureDerivatives () |
Computes the temperature derivatives of densities, shifted chemical potentials, and primordial hadron number susceptibilities. | |
virtual double | CalculateBaryonMatterEntropyDensity () |
virtual double | CalculateMesonMatterEntropyDensity () |
virtual double | ParticleScalarDensity (int part) |
bool | IsLastSolutionOK () const |
double | DensityId (int index) |
const std::vector< std::vector< int > > & | VDWComponentIndices () const |
virtual double | DeltaMu (int i) const |
const std::vector< std::vector< double > > & | VirialMatrix () const |
const std::vector< std::vector< double > > & | AttractionMatrix () const |
![]() | |
ThermalModelBase (ThermalParticleSystem *TPS, const ThermalModelParameters ¶ms=ThermalModelParameters()) | |
Construct a new ThermalModelBase object. | |
virtual | ~ThermalModelBase (void) |
int | ComponentsNumber () const |
Number of different particle species in the list. | |
bool | UseWidth () const |
Whether finite resonance widths are considered. | |
void | SetUseWidth (bool useWidth) |
Sets whether finite resonance widths are used. Deprecated. | |
void | SetUseWidth (ThermalParticle::ResonanceWidthIntegration type) |
Sets the finite resonance widths scheme to use. | |
void | SetNormBratio (bool normBratio) |
Whether branching ratios are renormalized to 100%. | |
bool | NormBratio () const |
void | SetOMP (bool openMP) |
OpenMP support. Currently not used. | |
virtual void | SetParameters (const ThermalModelParameters ¶ms) |
The thermal parameters. | |
const ThermalModelParameters & | Parameters () const |
void | UpdateParameters () |
Calls SetParameters() with current m_Parameters. | |
virtual void | SetTemperature (double T) |
Set the temperature. | |
virtual void | SetBaryonChemicalPotential (double muB) |
Set the baryon chemical potential. | |
virtual void | SetElectricChemicalPotential (double muQ) |
Set the electric chemical potential. | |
virtual void | SetStrangenessChemicalPotential (double muS) |
Set the strangeness chemical potential. | |
virtual void | SetCharmChemicalPotential (double muC) |
Set the charm chemical potential. | |
virtual void | SetGammaq (double gammaq) |
Set the light quark fugacity factor. | |
virtual void | SetGammaS (double gammaS) |
Set the strange quark fugacity factor. | |
virtual void | SetGammaC (double gammaC) |
Set the charm quark fugacity factor. | |
virtual void | SetBaryonCharge (int B) |
Set the total baryon number (for canonical ensemble only) | |
virtual void | SetElectricCharge (int Q) |
Set the total electric charge (for canonical ensemble only) | |
virtual void | SetStrangeness (int S) |
Set the total strangeness (for canonical ensemble only) | |
virtual void | SetCharm (int C) |
Set the total charm (for canonical ensemble only) | |
virtual void | SetRadius (int, double) |
Set the radius parameter for particle species i. | |
virtual void | SetRepulsion (int i, int j, double b) |
Same as SetVirial() but with a more clear name on what is actually does. | |
virtual void | DisableMesonMesonVirial () |
void | DisableMesonMesonRepulsion () |
virtual void | DisableMesonMesonAttraction () |
virtual void | DisableMesonBaryonVirial () |
void | DisableMesonBaryonRepulsion () |
virtual void | DisableMesonBaryonAttraction () |
virtual void | DisableBaryonBaryonVirial () |
void | DisableBaryonBaryonRepulsion () |
virtual void | DisableBaryonBaryonAttraction () |
virtual void | DisableBaryonAntiBaryonVirial () |
void | DisableBaryonAntiBaryonRepulsion () |
virtual void | DisableBaryonAntiBaryonAttraction () |
double | RepulsionCoefficient (int i, int j) const |
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(). | |
virtual void | SetClusterExpansionOrder (int order) |
Set the number of terms in the cluster expansion method. Calls the corresponding method in TPS(). | |
void | SetResonanceWidthShape (ThermalParticle::ResonanceWidthShape shape) |
Set the ThermalParticle::ResonanceWidthShape for all particles. Calls the corresponding method in TPS(). | |
void | SetResonanceWidthIntegrationType (ThermalParticle::ResonanceWidthIntegration type) |
Set the ThermalParticle::ResonanceWidthIntegration scheme for all particles. Calls the corresponding method in TPS(). | |
const std::vector< double > & | ChemicalPotentials () const |
A vector of chemical potentials of all particles. | |
double | ChemicalPotential (int i) const |
Chemical potential of particle species i. | |
virtual void | SetChemicalPotential (int i, double chem) |
Sets the chemical potential of particle species i. | |
virtual double | FullIdealChemicalPotential (int i) const |
Chemical potential entering the ideal gas expressions of particle species i. | |
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. | |
bool | UsePartialChemicalEquilibrium () |
Whether partial chemical equilibrium with additional chemical potentials is used. | |
void | SetSoverB (double SB) |
The entropy per baryon ratio to be used to constrain the baryon chemical potential. | |
double | SoverB () const |
void | SetQoverB (double QB) |
The electric-to-baryon charge ratio to be used to constrain the electric chemical potential. | |
double | QoverB () const |
void | SetVolume (double Volume) |
Sets the system volume. | |
double | Volume () const |
System volume (fm \(^3\)) | |
void | SetVolumeRadius (double R) |
Sets the system radius. | |
double | CanonicalVolume () const |
The canonical correlation volume V \(_c\) (fm \(^3\)) | |
void | SetCanonicalVolume (double Volume) |
Set the canonical correlation volume V \(_c\). | |
void | SetCanonicalVolumeRadius (double Rc) |
Set the canonical correlation system radius. | |
void | ConstrainChemicalPotentials (bool resetInitialValues=true) |
Constrains the chemical potentials \( \mu_B,\,\mu_Q,\,\mu_S,\,\mu_C \) by the conservation laws imposed. | |
virtual void | FixParameters () |
Method which actually implements ConstrainChemicalPotentials() (for backward compatibility). | |
virtual void | FixParametersNoReset () |
Method which actually implements ConstrainChemicalPotentialsNoReset() (for backward compatibility). | |
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_C \) which reproduce the specified total baryon, electric, strangeness, and charm charges of the system. | |
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 \( \mu_B,\,\mu_Q,\,\mu_S,\,\mu_C \) which reproduce the specified baryon, electric, strangeness, and charm densities. | |
virtual void | CalculateDensities () |
Calculates the primordial and total (after decays) densities of all species. | |
virtual void | ValidateCalculation () |
Checks whether issues have occured during the calculation of particle densities in the CalculateDensities() method. | |
std::string | ValidityCheckLog () const |
All messaged which occured during the validation procedure in the ValidateCalculation() method. | |
virtual void | CalculateDensitiesGCE () |
Calculates the particle densities in a grand-canonical ensemble. | |
virtual void | CalculateFeeddown () |
Calculates the total densities which include feeddown contributions. | |
virtual void | CalculateTwoParticleFluctuationsDecays () |
Computes particle number correlations and fluctuations for all final-state particles which are marked stable. | |
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. | |
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. | |
virtual double | TwoParticleSusceptibilityTemperatureDerivativePrimordial (int i, int j) const |
Returns the computed temperature derivative of the primordial particle number (cross-)susceptibility \( \frac{\partial}{\partial T} \frac{1}{VT^3} \, \langle \Delta N_i \Delta N_j \rangle \) for particles with ids i and j. CalculateFluctuations() must be called beforehand. | |
virtual double | TwoParticleSusceptibilityTemperatureDerivativePrimordialByPdg (long long id1, long long id2) |
Returns the computed temperature derivative of the primordial particle number (cross-)susceptibility \( \frac{\partial}{\partial T} \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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
virtual double | SusceptibilityDimensionfull (ConservedCharge::Name i, ConservedCharge::Name j) const |
A 2nd order susceptibility of conserved charges. | |
virtual void | CalculateSusceptibilityMatrix () |
Calculates the conserved charges susceptibility matrix. | |
virtual void | CalculateProxySusceptibilityMatrix () |
Calculates the susceptibility matrix of conserved charges proxies. | |
virtual void | CalculateParticleChargeCorrelationMatrix () |
Calculates the matrix of correlators between primordial (and also final) particle numbers and conserved charges. | |
Additional Inherited Members | |
![]() | |
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... | |
![]() | |
std::vector< double > | ComputeNp (const std::vector< double > &dmustar) |
std::vector< double > | ComputeNp (const std::vector< double > &dmustar, const std::vector< double > &ns) |
void | CalculateVDWComponentsMap () |
Partitions particles species into sets that have identical VDW parameters. | |
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. | |
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. | |
void | SolveEquations () |
virtual double | MuShift (int id) const |
The shift in the chemical potential of particle species i due to the QvdW interactions. | |
![]() | |
std::vector< double > | m_DensitiesId |
Vector of ideal gas densities with shifted chemical potentials. | |
std::vector< double > | m_scaldens |
Vector of scalar densities. Not used. | |
std::vector< std::vector< double > > | m_Virial |
std::vector< std::vector< double > > | m_Attr |
Matrix of the attractive QvdW coefficients \( a_{ij} \). | |
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. | |
bool | m_LastBroydenSuccessFlag |
Whether Broyden's method was successfull. | |
bool | m_VDWComponentMapCalculated |
Whether the mapping to components with the same VDW parameters has been calculated. | |
std::vector< double > | m_MuStar |
Vector of the shifted chemical potentials. | |
std::vector< int > | m_MapTodMuStar |
std::vector< int > | m_MapFromdMuStar |
std::vector< std::vector< int > > | m_dMuStarIndices |
std::vector< std::vector< double > > | m_chi |
std::vector< double > | m_chiarb |
Class implementing the crossterms excluded-volume model.
The model formulation can be found in
M.I. Gorenstein, A.P. Kostyuk, Y.D. Krivenko, J.Phys. G 25, L75 (1999), http://arxiv.org/pdf/nucl-th/9906068.pdf
and in
V. Vovchenko, H. Stoecker, Phys. Rev. C 95, 044904 (2017), http://arxiv.org/pdf/1606.06218.pdf
This class implements the crossterms excluded-volume model as a partial case of the van der Waals HRG model where all the attraction terms are set to zero.
Definition at line 35 of file ThermalModelEVCrossterms.h.
|
inline |
Construct a new ThermalModelEVCrossterms object.
TPS | A pointer to the ThermalParticleSystem object containing the particle list |
params | ThermalModelParameters object with current thermal parameters |
Definition at line 44 of file ThermalModelEVCrossterms.h.
|
inlinevirtual |
Destroy the ThermalModelEVCrossterms object.
Definition at line 54 of file ThermalModelEVCrossterms.h.
|
inline |
Definition at line 71 of file ThermalModelEVCrossterms.h.
|
virtual |
Reads the QvdW interaction parameters from a file.
Actual implementation is in a derived class.
filename | File with interaction parameters. |
Reimplemented from thermalfist::ThermalModelVDW.
Definition at line 31 of file ThermalModelEVCrossterms.cpp.
|
virtual |
Set the vdW mean field attraction coefficient \( a_{ij} \).
i | 0-based index of the first particle species |
j | 0-based index of the second particle species |
a | vdW mean field attraction parameter \( a_{ij} \) (GeV fm \(^3\)) |
Reimplemented from thermalfist::ThermalModelVDW.
Definition at line 80 of file ThermalModelEVCrossterms.cpp.
|
virtual |
No need to search for multiple soultions in EV-HRG model.
Reimplemented from thermalfist::ThermalModelVDW.
Definition at line 88 of file ThermalModelEVCrossterms.cpp.
|
inlinevirtual |
Set the same excluded volume radius parameter for all species.
rad | Radius parameter (fm) |
Reimplemented from thermalfist::ThermalModelBase.
Definition at line 62 of file ThermalModelEVCrossterms.h.
|
virtual |
Write the QvdW interaction parameters to a file.
Actual implementation is in a derived class.
filename | Output file. |
Reimplemented from thermalfist::ThermalModelVDW.
Definition at line 56 of file ThermalModelEVCrossterms.cpp.