![]() |
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 |
Public Member Functions inherited from thermalfist::ThermalModelVDW | |
| 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 |
Public Member Functions inherited from thermalfist::ThermalModelBase | |
| 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 | |
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... | |
Protected Member Functions inherited from thermalfist::ThermalModelVDW | |
| 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. | |
Protected Attributes inherited from thermalfist::ThermalModelVDW | |
| 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.