Thermal-FIST 1.6
Package for hadron resonance gas model applications
Loading...
Searching...
No Matches
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
20
21namespace thermalfist {
22
34 };
42
44 extern bool calculationHadBECIssue;
45
48 double B;
49 int lmax;
50 double degSpin;
51 double Q;
53 int in_lmax = 100,
54 double in_degSpin = 1.,
55 double in_Q = 0.) :
56 B(in_B), lmax(in_lmax), degSpin(in_degSpin), Q(in_Q)
57 { }
58 };
59
60
61
68
78 double BoltzmannDensity(double T, double mu, double m, double deg,
79 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
80
90 double BoltzmannPressure(double T, double mu, double m, double deg,
91 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
92
102 double BoltzmannEnergyDensity(double T, double mu, double m, double deg,
103 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
104
114 double BoltzmannEntropyDensity(double T, double mu, double m, double deg,
115 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
116
126 double BoltzmannScalarDensity(double T, double mu, double m, double deg,
127 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig()); // TODO: Check if the scalar density formula and implementation are correct
128
140 double BoltzmannTdndmu(int N, double T, double mu, double m, double deg,
141 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
142
156 double BoltzmannChiN(int N, double T, double mu, double m, double deg,
157 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
158
172 double BoltzmannChiNDimensionfull(int N, double T, double mu, double m, double deg,
173 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
174
185 double BoltzmannMagnetization(double T, double mu, double m, double deg,
186 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
187
197 double QuantumClusterExpansionDensity(int statistics, double T, double mu, double m, double deg, int order = 1,
198 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
199
209 double QuantumClusterExpansionPressure(int statistics, double T, double mu, double m, double deg, int order = 1,
210 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
211
221 double QuantumClusterExpansionEnergyDensity(int statistics, double T, double mu, double m, double deg, int order = 1,
222 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig()); // TODO: Check for correctness
223
233 double QuantumClusterExpansionEntropyDensity(int statistics, double T, double mu, double m, double deg, int order = 1,
234 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
235
245 double QuantumClusterExpansionScalarDensity(int statistics, double T, double mu, double m, double deg, int order = 1,
246 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig()); // TODO: Check for correctness
247
259 double QuantumClusterExpansionTdndmu(int N, int statistics, double T, double mu, double m, double deg, int order = 1,
260 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
261
275 double QuantumClusterExpansionChiN(int N, int statistics, double T, double mu, double m, double deg, int order = 1,
276 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
277
291 double QuantumClusterExpansionChiNDimensionfull(int N, int statistics, double T, double mu, double m, double deg, int order = 1,
292 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
293
294
295
305 double QuantumClusterExpansionMagnetization(int statistics, double T, double mu, double m, double deg, int order = 1,
306 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
307
317 double QuantumNumericalIntegrationDensity(int statistics, double T, double mu, double m, double deg,
318 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
319
329 double QuantumNumericalIntegrationPressure(int statistics, double T, double mu, double m, double deg,
330 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
331
341 double QuantumNumericalIntegrationEnergyDensity(int statistics, double T, double mu, double m, double deg,
342 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
343
353 double QuantumNumericalIntegrationEntropyDensity(int statistics, double T, double mu, double m, double deg,
354 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
355
365 double QuantumNumericalIntegrationScalarDensity(int statistics, double T, double mu, double m, double deg,
366 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig()); // TODO: Check for correctness
367
377 double QuantumNumericalIntegrationMagnetization(int statistics, double T, double mu, double m, double deg,
378 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
379
380 double QuantumNumericalIntegrationT1dn1dmu1(int statistics, double T, double mu, double m, double deg,
381 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
382 double QuantumNumericalIntegrationT2dn2dmu2(int statistics, double T, double mu, double m, double deg,
383 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
384 double QuantumNumericalIntegrationT3dn3dmu3(int statistics, double T, double mu, double m, double deg,
385 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
386 double QuantumNumericalIntegrationTdndmu(int N, int statistics, double T, double mu, double m, double deg,
387 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
388
402 double QuantumNumericalIntegrationChiN(int N, int statistics, double T, double mu, double m, double deg,
403 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
404
418 double QuantumNumericalIntegrationChiNDimensionfull(int N, int statistics, double T, double mu, double m, double deg,
419 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
420
430 double psi(double x);
431
440 double psi2(double x);
441
452 double FermiNumericalIntegrationLargeMuDensity(double T, double mu, double m, double deg,
453 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
454
465 double FermiNumericalIntegrationLargeMuPressure(double T, double mu, double m, double deg,
466 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
467
478 double FermiNumericalIntegrationLargeMuEnergyDensity(double T, double mu, double m, double deg,
479 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
480
491 double FermiNumericalIntegrationLargeMuEntropyDensity(double T, double mu, double m, double deg,
492 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
493
504 double FermiNumericalIntegrationLargeMuScalarDensity(double T, double mu, double m, double deg,
505 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig()); // TODO: Check for correctness
506
507
508 double FermiNumericalIntegrationLargeMuMagnetization(double T, double mu, double m, double deg,
509 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig()); // TODO: Check for correctness
510
511 double FermiNumericalIntegrationLargeMuT1dn1dmu1(double T, double mu, double m, double deg,
512 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
513 double FermiNumericalIntegrationLargeMuT2dn2dmu2(double T, double mu, double m, double deg,
514 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
515 double FermiNumericalIntegrationLargeMuT3dn3dmu3(double T, double mu, double m, double deg,
516 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
517 double FermiNumericalIntegrationLargeMuTdndmu(int N, double T, double mu, double m, double deg,
518 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
519
534 double FermiNumericalIntegrationLargeMuChiN(int N, double T, double mu, double m, double deg,
535 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
536
551 double FermiNumericalIntegrationLargeMuChiNDimensionfull(int N, double T, double mu, double m, double deg,
552 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
553
554
563 double FermiZeroTDensity(double mu, double m, double deg,
564 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
565
574 double FermiZeroTPressure(double mu, double m, double deg,
575 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
576
585 double FermiZeroTEnergyDensity(double mu, double m, double deg,
586 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
587
596 double FermiZeroTEntropyDensity(double mu, double m, double deg,
597 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
598
617 double FermiZeroTdsdT(double mu, double m, double deg,
618 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
619
620 double FermiZeroTScalarDensity(double mu, double m, double deg,
621 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig()); // TODO: Check for correctness
622
623 double FermiZeroTMagnetization(double mu, double m, double deg,
624 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig()); // TODO: Check for correctness
625
626
627 double FermiZeroTdn1dmu1(double mu, double m, double deg,
628 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
629 double FermiZeroTdn2dmu2(double mu, double m, double deg,
630 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
631 double FermiZeroTdn3dmu3(double mu, double m, double deg,
632 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
633 double FermiZeroTdndmu(int N, double mu, double m, double deg,
634 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
635
648 double FermiZeroTChiN(int N, double mu, double m, double deg,
649 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
650
664 double FermiZeroTChiNDimensionfull(int N, double mu, double m, double deg,
665 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
666
683 double IdealGasQuantity(Quantity quantity, QStatsCalculationType calctype, int statistics, double T, double mu, double m, double deg, int order = 1,
684 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
685
687
696 double BoltzmanndndT(double T, double mu, double m, double deg,
697 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
698
708 double Boltzmannd2ndT2(double T, double mu, double m, double deg,
709 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
710
720 double BoltzmanndedT(double T, double mu, double m, double deg,
721 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
722
732 double Boltzmanndedmu(double T, double mu, double m, double deg,
733 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
734
744 double Boltzmanndchi2dT(double T, double mu, double m, double deg,
745 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
746
756 double BoltzmanndsdT(double T, double mu, double m, double deg,
757 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
758
759 // Cluster expansion
769 double QuantumClusterExpansiondndT(int statistics, double T, double mu, double m, double deg, int order = 1,
770 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
771
781 double QuantumClusterExpansiond2ndT2(int statistics, double T, double mu, double m, double deg, int order = 1,
782 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
783
793 double QuantumClusterExpansiondedT(int statistics, double T, double mu, double m, double deg, int order = 1,
794 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
795
805 double QuantumClusterExpansiondedmu(int statistics, double T, double mu, double m, double deg, int order = 1,
806 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
807
817 double QuantumClusterExpansiondchi2dT(int statistics, double T, double mu, double m, double deg, int order = 1,
818 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
819
829 double QuantumClusterExpansiondsdT(int statistics, double T, double mu, double m, double deg, int order = 1,
830 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
831
832
842 double QuantumNumericalIntegrationdndT(int statistics, double T, double mu, double m, double deg,
843 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
844
854 double QuantumNumericalIntegrationd2ndT2(int statistics, double T, double mu, double m, double deg,
855 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
856
866 double QuantumNumericalIntegrationdedT(int statistics, double T, double mu, double m, double deg,
867 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
868
878 double QuantumNumericalIntegrationdedmu(int statistics, double T, double mu, double m, double deg,
879 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
880
890 double QuantumNumericalIntegrationdchi2dT(int statistics, double T, double mu, double m, double deg,
891 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
892
902 double QuantumNumericalIntegrationdsdT(int statistics, double T, double mu, double m, double deg,
903 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
904
914 double FermiNumericalIntegrationLargeMudndT(double T, double mu, double m, double deg,
915 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
916
926 double FermiNumericalIntegrationLargeMud2ndT2(double T, double mu, double m, double deg,
927 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
928
938 double FermiNumericalIntegrationLargeMudedT(double T, double mu, double m, double deg,
939 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
940
950 double FermiNumericalIntegrationLargeMudedmu(double T, double mu, double m, double deg,
951 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
952
962 double FermiNumericalIntegrationLargeMudchi2dT(double T, double mu, double m, double deg,
963 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
964
975 double FermiNumericalIntegrationLargeMudsdT(double T, double mu, double m, double deg,
976 const IdealGasFunctionsExtraConfig& extraConfig = IdealGasFunctionsExtraConfig());
977 }
978
983 public:
986
987 virtual double Quantity(IdealGasFunctions::Quantity quantity, double T, double mu) = 0;
988 virtual double EffectiveMass() const { return -1.; }
989 virtual bool IsBECPhase() const { return false; }
990 virtual double BECFraction() const { return 0.; }
991 };
992
993} // namespace thermalfist
994
995#endif // IDEALGASFUNCTIONS_H
virtual double Quantity(IdealGasFunctions::Quantity quantity, double T, double mu)=0
virtual double EffectiveMass() const
virtual double BECFraction() const
Contains implementation of the thermodynamic functions corresponding to an ideal gas of particles in ...
double FermiNumericalIntegrationLargeMuChiNDimensionfull(int N, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the n-th order dimensionfull susceptibility for a Fermi-Dirac ideal gas at mu > m.
double FermiNumericalIntegrationLargeMudndT(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of particle number density wrt T at constant mu for a Maxwell-Boltzmann gas.
double FermiNumericalIntegrationLargeMud2ndT2(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the second derivative of particle number density wrt T at constant mu for a Maxwell-Boltzman...
double FermiZeroTChiN(int N, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the n-th order susceptibility for a Fermi-Dirac ideal gas at zero temperature.
double FermiNumericalIntegrationLargeMuScalarDensity(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the scalar density of a Fermi-Dirac ideal gas at mu > m.
double BoltzmanndsdT(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of entropy density wrt T at constant mu for a Maxwell-Boltzmann gas.
double FermiZeroTdn3dmu3(double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
double FermiNumericalIntegrationLargeMuDensity(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the particle number density of a Fermi-Dirac ideal gas at mu > m.
double QuantumClusterExpansionEntropyDensity(int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the entropy density of a quantum ideal gas using cluster expansion.
double QuantumClusterExpansiondedT(int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of energy density wrt T at constant mu for a Maxwell-Boltzmann gas.
double FermiNumericalIntegrationLargeMuPressure(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the pressure of a Fermi-Dirac ideal gas at mu > m.
double BoltzmannTdndmu(int N, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the chemical potential derivative of density for a Maxwell-Boltzmann gas.
double QuantumNumericalIntegrationMagnetization(int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the magnetization of a quantum ideal gas using 32-point Gauss-Laguerre quadratures.
double FermiZeroTdn2dmu2(double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
double QuantumClusterExpansionMagnetization(int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the thermal part of the magnetization of a Maxwell-Boltzmann gas, m_B = dP/dB.
double QuantumNumericalIntegrationChiN(int N, int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the n-th order dimensionless susceptibility for a quantum ideal gas using 32-point Gauss-Lag...
double QuantumClusterExpansionChiNDimensionfull(int N, int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the n-th order dimensionfull susceptibility for a quantum ideal gas using cluster expansion.
double FermiNumericalIntegrationLargeMuTdndmu(int N, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
double psi(double x)
Auxiliary function.
QStatsCalculationType
Identifies whether quantum statistics are to be computed using the cluster expansion or numerical int...
double BoltzmannDensity(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the particle number density of a Maxwell-Boltzmann gas.
double BoltzmanndedT(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of energy density wrt T at constant mu for a Maxwell-Boltzmann gas.
double QuantumNumericalIntegrationdedmu(int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of energy density wrt mu at constant T for a Maxwell-Boltzmann gas.
double QuantumNumericalIntegrationdsdT(int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of entropy density wrt T at constant mu using numerical integration.
double BoltzmannChiNDimensionfull(int N, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the n-th order dimensionfull susceptibility for a Maxwell-Boltzmann gas.
double FermiZeroTEntropyDensity(double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the entropy density of a Fermi-Dirac ideal gas at zero temperature.
double FermiNumericalIntegrationLargeMudedmu(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of energy density wrt mu at constant T for a Maxwell-Boltzmann gas.
double FermiNumericalIntegrationLargeMuT3dn3dmu3(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
double IdealGasQuantity(Quantity quantity, QStatsCalculationType calctype, int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Calculation of a generic ideal gas function.
double QuantumClusterExpansionScalarDensity(int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the scalar density of a quantum ideal gas using cluster expansion.
double FermiZeroTdsdT(double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the scalar density of a Fermi-Dirac ideal gas at zero temperature.
bool calculationHadBECIssue
Whether \mu > m Bose-Einstein condensation issue was encountered for a Bose gas.
double BoltzmannEntropyDensity(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the entropy density of a Maxwell-Boltzmann gas.
double QuantumNumericalIntegrationdndT(int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of particle number density wrt T at constant mu for a Maxwell-Boltzmann gas.
double QuantumNumericalIntegrationScalarDensity(int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the scalar density of a quantum ideal gas using 32-point Gauss-Laguerre quadratures.
double FermiNumericalIntegrationLargeMudchi2dT(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of the susceptibility wrt T at constant mu for a Maxwell-Boltzmann gas.
double FermiZeroTEnergyDensity(double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the energy density of a Fermi-Dirac ideal gas at zero temperature.
double FermiNumericalIntegrationLargeMuMagnetization(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
double FermiNumericalIntegrationLargeMuChiN(int N, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the n-th order dimensionless susceptibility for a Fermi-Dirac ideal gas at mu > m.
double Boltzmanndchi2dT(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of the susceptibility wrt T at constant mu for a Maxwell-Boltzmann gas.
double QuantumNumericalIntegrationT3dn3dmu3(int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
double FermiNumericalIntegrationLargeMuT1dn1dmu1(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
double Boltzmanndedmu(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of energy density wrt mu at constant T for a Maxwell-Boltzmann gas.
double psi2(double x)
Auxiliary function.
double QuantumClusterExpansiondedmu(int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of energy density wrt mu at constant T for a Maxwell-Boltzmann gas.
double FermiNumericalIntegrationLargeMuT2dn2dmu2(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
double FermiZeroTMagnetization(double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
double QuantumNumericalIntegrationdchi2dT(int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of the susceptibility wrt T at constant mu for a Maxwell-Boltzmann gas.
double QuantumNumericalIntegrationTdndmu(int N, int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
double FermiZeroTScalarDensity(double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
double QuantumNumericalIntegrationEnergyDensity(int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the energy density of a quantum ideal gas using 32-point Gauss-Laguerre quadratures.
double QuantumClusterExpansionChiN(int N, int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the n-th order dimensionless susceptibility for a quantum ideal gas using cluster expansion.
double Boltzmannd2ndT2(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the 2nd derivative of particle number density wrt T at constant mu for a Maxwell-Boltzmann g...
double FermiNumericalIntegrationLargeMudedT(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of energy density wrt T at constant mu for a Maxwell-Boltzmann gas.
double QuantumClusterExpansiond2ndT2(int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the 2nd derivative of particle number density wrt T at constant mu for a Maxwell-Boltzmann g...
double FermiNumericalIntegrationLargeMuEnergyDensity(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the energy density of a Fermi-Dirac ideal gas at mu > m.
double BoltzmannScalarDensity(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the scalar density of a Maxwell-Boltzmann gas.
double QuantumClusterExpansionDensity(int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the particle number density of a quantum ideal gas using cluster expansion.
double BoltzmannMagnetization(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the thermal part of the magnetization of a Maxwell-Boltzmann gas, m_B = dP/dB.
double BoltzmannChiN(int N, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the n-th order dimensionless susceptibility for a Maxwell-Boltzmann gas.
double QuantumNumericalIntegrationT2dn2dmu2(int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
double QuantumClusterExpansionEnergyDensity(int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the energy density of a quantum ideal gas using cluster expansion.
double FermiZeroTdn1dmu1(double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
double FermiNumericalIntegrationLargeMudsdT(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of entropy density wrt T at constant mu using Sommerfeld-Legendre + Laguerre ...
double QuantumClusterExpansiondsdT(int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of entropy density wrt T at constant mu using the cluster expansion.
double FermiZeroTPressure(double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the pressure of a Fermi-Dirac ideal gas at zero temperature.
double BoltzmannPressure(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the pressure of a Maxwell-Boltzmann gas.
double QuantumClusterExpansionPressure(int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the pressure of a quantum ideal gas using cluster expansion.
double QuantumNumericalIntegrationEntropyDensity(int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the entropy density of a quantum ideal gas using 32-point Gauss-Laguerre quadratures.
Quantity
Identifies the thermodynamic function.
double QuantumNumericalIntegrationd2ndT2(int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the 2nd derivative of particle number density wrt T at constant mu for a Maxwell-Boltzmann g...
double QuantumNumericalIntegrationT1dn1dmu1(int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
double BoltzmanndndT(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Temperature derivatives.
double QuantumNumericalIntegrationDensity(int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the particle number density of a quantum ideal gas using 32-point Gauss-Laguerre quadratures...
double QuantumClusterExpansiondndT(int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of particle number density wrt T at constant mu for a Maxwell-Boltzmann gas.
double QuantumNumericalIntegrationdedT(int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of energy density wrt T at constant mu for a Maxwell-Boltzmann gas.
double FermiZeroTdndmu(int N, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
double FermiNumericalIntegrationLargeMuEntropyDensity(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the entropy density of a Fermi-Dirac ideal gas at mu > m.
double QuantumClusterExpansiondchi2dT(int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the derivative of the susceptibility wrt T at constant mu for a Maxwell-Boltzmann gas.
double QuantumNumericalIntegrationChiNDimensionfull(int N, int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the n-th order dimensionfull susceptibility for a quantum ideal gas using 32-point Gauss-Lag...
double QuantumClusterExpansionTdndmu(int N, int statistics, double T, double mu, double m, double deg, int order=1, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the chemical potential derivative of density for a quantum ideal gas using cluster expansion...
double FermiZeroTDensity(double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the particle number density of a Fermi-Dirac ideal gas at zero temperature.
double QuantumNumericalIntegrationPressure(int statistics, double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the pressure of a quantum ideal gas using 32-point Gauss-Laguerre quadratures.
double FermiZeroTChiNDimensionfull(int N, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the n-th order susceptibility scaled by T^n for a Fermi-Dirac ideal gas at zero temperature.
double BoltzmannEnergyDensity(double T, double mu, double m, double deg, const IdealGasFunctionsExtraConfig &extraConfig=IdealGasFunctionsExtraConfig())
Computes the energy density of a Maxwell-Boltzmann gas.
The main namespace where all classes and functions of the Thermal-FIST library reside.
Definition CosmicEoS.h:9
IdealGasFunctionsExtraConfig(const MagneticFieldConfiguration &in_MagneticField=MagneticFieldConfiguration())
MagneticFieldConfiguration MagneticField
Magnetic field configuration.
MagneticFieldConfiguration(double in_B=0., int in_lmax=100, double in_degSpin=1., double in_Q=0.)