Thermal-FIST  1.3
Package for hadron resonance gas model applications
IdealGasFunctions.h
Go to the documentation of this file.
1 /*
2  * Thermal-FIST package
3  *
4  * Copyright (c) 2017-2019 Volodymyr Vovchenko
5  *
6  * GNU General Public License (GPLv3 or later)
7  */
8 #ifndef IDEALGASFUNCTIONS_H
9 #define IDEALGASFUNCTIONS_H
10 
21 namespace thermalfist {
22 
26  namespace IdealGasFunctions {
39 
41  extern bool calculationHadBECIssue;
42 
52  double BoltzmannDensity(double T, double mu, double m, double deg);
53 
63  double BoltzmannPressure(double T, double mu, double m, double deg);
64 
74  double BoltzmannEnergyDensity(double T, double mu, double m, double deg);
75 
85  double BoltzmannEntropyDensity(double T, double mu, double m, double deg);
86 
96  double BoltzmannScalarDensity(double T, double mu, double m, double deg); // TODO: Check for correctness
97 
109  double BoltzmannTdndmu(int N, double T, double mu, double m, double deg);
110 
123  double BoltzmannChiN(int N, double T, double mu, double m, double deg);
124 
134  double QuantumClusterExpansionDensity(int statistics, double T, double mu, double m, double deg, int order = 1);
135 
145  double QuantumClusterExpansionPressure(int statistics, double T, double mu, double m, double deg, int order = 1);
146 
156  double QuantumClusterExpansionEnergyDensity(int statistics, double T, double mu, double m, double deg, int order = 1); // TODO: Check for correctness
157 
167  double QuantumClusterExpansionEntropyDensity(int statistics, double T, double mu, double m, double deg, int order = 1);
168 
178  double QuantumClusterExpansionScalarDensity(int statistics, double T, double mu, double m, double deg, int order = 1); // TODO: Check for correctness
179 
191  double QuantumClusterExpansionTdndmu(int N, int statistics, double T, double mu, double m, double deg, int order = 1);
192 
205  double QuantumClusterExpansionChiN(int N, int statistics, double T, double mu, double m, double deg, int order = 1);
206 
216  double QuantumNumericalIntegrationDensity(int statistics, double T, double mu, double m, double deg);
217 
227  double QuantumNumericalIntegrationPressure(int statistics, double T, double mu, double m, double deg);
228 
238  double QuantumNumericalIntegrationEnergyDensity(int statistics, double T, double mu, double m, double deg);
239 
249  double QuantumNumericalIntegrationEntropyDensity(int statistics, double T, double mu, double m, double deg);
250 
260  double QuantumNumericalIntegrationScalarDensity(int statistics, double T, double mu, double m, double deg); // TODO: Check for correctness
261 
262  double QuantumNumericalIntegrationT1dn1dmu1(int statistics, double T, double mu, double m, double deg);
263  double QuantumNumericalIntegrationT2dn2dmu2(int statistics, double T, double mu, double m, double deg);
264  double QuantumNumericalIntegrationT3dn3dmu3(int statistics, double T, double mu, double m, double deg);
265  double QuantumNumericalIntegrationTdndmu(int N, int statistics, double T, double mu, double m, double deg);
266 
279  double QuantumNumericalIntegrationChiN(int N, int statistics, double T, double mu, double m, double deg);
280 
290  double psi(double x);
291 
300  double psi2(double x);
301 
312  double FermiNumericalIntegrationLargeMuDensity(double T, double mu, double m, double deg);
313 
324  double FermiNumericalIntegrationLargeMuPressure(double T, double mu, double m, double deg);
325 
336  double FermiNumericalIntegrationLargeMuEnergyDensity(double T, double mu, double m, double deg);
337 
348  double FermiNumericalIntegrationLargeMuEntropyDensity(double T, double mu, double m, double deg);
349 
360  double FermiNumericalIntegrationLargeMuScalarDensity(double T, double mu, double m, double deg); // TODO: Check for correctness
361 
362  double FermiNumericalIntegrationLargeMuT1dn1dmu1(double T, double mu, double m, double deg);
363  double FermiNumericalIntegrationLargeMuT2dn2dmu2(double T, double mu, double m, double deg);
364  double FermiNumericalIntegrationLargeMuT3dn3dmu3(double T, double mu, double m, double deg);
365  double FermiNumericalIntegrationLargeMuTdndmu(int N, double T, double mu, double m, double deg);
366 
380  double FermiNumericalIntegrationLargeMuChiN(int N, double T, double mu, double m, double deg);
381 
398  double IdealGasQuantity(Quantity quantity, QStatsCalculationType calctype, int statistics, double T, double mu, double m, double deg, int order = 1);
399  }
400 
401 } // namespace thermalfist
402 
403 #endif // IDEALGASFUNCTIONS_H
double QuantumClusterExpansionTdndmu(int N, int statistics, double T, double mu, double m, double deg, int order=1)
Computes the chemical potential derivative of density for a quantum ideal gas using cluster expansion...
double FermiNumericalIntegrationLargeMuChiN(int N, double T, double mu, double m, double deg)
Computes the n-th order susceptibility for a Fermi-Dirac ideal gas at mu > m.
double QuantumClusterExpansionPressure(int statistics, double T, double mu, double m, double deg, int order=1)
Computes the pressure of a quantum ideal gas using cluster expansion.
double QuantumNumericalIntegrationT3dn3dmu3(int statistics, double T, double mu, double m, double deg)
double QuantumClusterExpansionEnergyDensity(int statistics, double T, double mu, double m, double deg, int order=1)
Computes the energy density of a quantum ideal gas using cluster expansion.
double BoltzmannTdndmu(int N, double T, double mu, double m, double deg)
Computes the chemical potential derivative of density for a Maxwell-Boltzmann gas.
double FermiNumericalIntegrationLargeMuEntropyDensity(double T, double mu, double m, double deg)
Computes the entropy density of a Fermi-Dirac ideal gas at mu > m.
double QuantumNumericalIntegrationDensity(int statistics, double T, double mu, double m, double deg)
Computes the particle number density of a quantum ideal gas using 32-point Gauss-Laguerre quadratures...
double psi2(double x)
Auxiliary function.
double FermiNumericalIntegrationLargeMuT2dn2dmu2(double T, double mu, double m, double deg)
double IdealGasQuantity(Quantity quantity, QStatsCalculationType calctype, int statistics, double T, double mu, double m, double deg, int order=1)
Calculation of a generic ideal gas function.
double QuantumNumericalIntegrationPressure(int statistics, double T, double mu, double m, double deg)
Computes the pressure of a quantum ideal gas using 32-point Gauss-Laguerre quadratures.
double QuantumNumericalIntegrationEnergyDensity(int statistics, double T, double mu, double m, double deg)
Computes the energy density of a quantum ideal gas using 32-point Gauss-Laguerre quadratures.
double FermiNumericalIntegrationLargeMuScalarDensity(double T, double mu, double m, double deg)
Computes the scalar density of a Fermi-Dirac ideal gas at mu > m.
double QuantumNumericalIntegrationEntropyDensity(int statistics, double T, double mu, double m, double deg)
Computes the entropy density of a quantum ideal gas using 32-point Gauss-Laguerre quadratures...
double psi(double x)
Auxiliary function.
double QuantumClusterExpansionEntropyDensity(int statistics, double T, double mu, double m, double deg, int order=1)
Computes the entropy density of a quantum ideal gas using cluster expansion.
double QuantumNumericalIntegrationScalarDensity(int statistics, double T, double mu, double m, double deg)
Computes the scalar density of a quantum ideal gas using 32-point Gauss-Laguerre quadratures.
double QuantumNumericalIntegrationTdndmu(int N, int statistics, double T, double mu, double m, double deg)
double FermiNumericalIntegrationLargeMuDensity(double T, double mu, double m, double deg)
Computes the particle number density of a Fermi-Dirac ideal gas at mu > m.
double QuantumNumericalIntegrationChiN(int N, int statistics, double T, double mu, double m, double deg)
Computes the n-th order susceptibility for a quantum ideal gas using 32-point Gauss-Laguerre quadratu...
Quantity
Identifies the thermodynamic function.
double QuantumClusterExpansionChiN(int N, int statistics, double T, double mu, double m, double deg, int order=1)
Computes the n-th order susceptibility for a quantum ideal gas using cluster expansion.
double BoltzmannChiN(int N, double T, double mu, double m, double deg)
Computes the n-th order susceptibility for a Maxwell-Boltzmann gas.
double BoltzmannPressure(double T, double mu, double m, double deg)
Computes the pressure of a Maxwell-Boltzmann gas.
double BoltzmannEnergyDensity(double T, double mu, double m, double deg)
Computes the energy density of a Maxwell-Boltzmann gas.
double BoltzmannDensity(double T, double mu, double m, double deg)
Computes the particle number density of a Maxwell-Boltzmann gas.
double QuantumClusterExpansionScalarDensity(int statistics, double T, double mu, double m, double deg, int order=1)
Computes the scalar density of a quantum ideal gas using cluster expansion.
double FermiNumericalIntegrationLargeMuEnergyDensity(double T, double mu, double m, double deg)
Computes the energy density of a Fermi-Dirac ideal gas at mu > m.
double FermiNumericalIntegrationLargeMuT1dn1dmu1(double T, double mu, double m, double deg)
double BoltzmannEntropyDensity(double T, double mu, double m, double deg)
Computes the entropy density of a Maxwell-Boltzmann gas.
double BoltzmannScalarDensity(double T, double mu, double m, double deg)
Computes the scalar density of a Maxwell-Boltzmann gas.
double FermiNumericalIntegrationLargeMuPressure(double T, double mu, double m, double deg)
Computes the pressure of a Fermi-Dirac ideal gas at mu > m.
double FermiNumericalIntegrationLargeMuTdndmu(int N, double T, double mu, double m, double deg)
bool calculationHadBECIssue
Whether > m Bose-Einstein condensation issue was encountered for a Bose gas.
double QuantumNumericalIntegrationT1dn1dmu1(int statistics, double T, double mu, double m, double deg)
double QuantumClusterExpansionDensity(int statistics, double T, double mu, double m, double deg, int order=1)
Computes the particle number density of a quantum ideal gas using cluster expansion.
QStatsCalculationType
Identifies whether quantum statistics are to be computed using the cluster expansion or numerical int...
double QuantumNumericalIntegrationT2dn2dmu2(int statistics, double T, double mu, double m, double deg)
The main namespace where all classes and functions of the Thermal-FIST library reside.
double FermiNumericalIntegrationLargeMuT3dn3dmu3(double T, double mu, double m, double deg)