Thermal-FIST 1.5
Package for hadron resonance gas model applications
Loading...
Searching...
No Matches
ExcludedVolumeModels.h
Go to the documentation of this file.
1/*
2 * Thermal-FIST package
3 *
4 * Copyright (c) 2016-2022 Volodymyr Vovchenko
5 *
6 * GNU General Public License (GPLv3 or later)
7 */
8#ifndef EXCLUDEDVOLUMEMODELS_H
9#define EXCLUDEDVOLUMEMODELS_H
10
11#include <cmath>
12
13namespace thermalfist {
14
21
26 {
27 public:
32 virtual double EtaMax() const { return -1.; }
33 virtual double f(double eta) const { return 1.; }
34 virtual double df(int n, double eta) const { return (n == 0) ? 1. : 0.; }
35 virtual double etasol(double etatil) const { return etatil; }
36 virtual double etasolBinarySearch(double etatil) const;
37 //virtual double etasolBroyden(double etatil) const { return etatil; } // TODO: later
38 };
39
44 {
45 public:
50 virtual double EtaMax() const { return 0.25; }
51 virtual double f(double eta) const { return 1. - 4 * eta; }
52 virtual double df(int n, double eta) const {
53 if (n == 0)
54 return f(eta);
55 if (n == 1)
56 return -4.;
57 return 0.;
58 }
59 virtual double etasol(double etatil) const { return etatil / (1. + 4. * etatil); }
60 };
61
66 {
67 public:
72 virtual double EtaMax() const { return 1.; }
73 virtual double f(double eta) const {
74 return exp(-(4. - 3. * eta) * eta / (1. - eta) / (1. - eta));
75 }
76 double d1f(double eta) const {
77 return -f(eta) * 2. * (2. - eta) / pow(1. - eta, 3);
78 }
79 double d2f(double eta) const {
80 return f(eta) * 2. * (3. + eta * (4. + eta * (-7. + 2. * eta))) / pow(1. - eta, 6);
81 }
82 double d3f(double eta) const {
83 return f(eta) * 4. * (5. + eta * (-24. + eta * (12. + eta * (17. + 3. * eta * (-5. + eta))))) / pow(1. - eta, 9);
84 }
85 double d4f(double eta) const {
86 double tret = 2. * eta;
87 tret += -13.; tret *= eta;
88 tret += 22.; tret *= 6. * eta;
89 tret += 85.; tret *= eta;
90 tret += -440.; tret *= eta;
91 tret += 396.; tret *= eta;
92 tret += -104.; tret *= eta;
93 tret += 1.; tret *= 4.;
94 return f(eta) * tret / pow((1. - eta), 12);
95 }
96 virtual double df(int n, double eta) const;
97
98 virtual double etasol(double etatil) const { return etasolBinarySearch(etatil); }
99
100 };
101
102
107 {
108 public:
113 virtual double EtaMax() const { return 1.e9; }
114 virtual double f(double eta) const {
115 return exp(-4. * eta);
116 }
117 virtual double df(int n, double eta) const {
118 if (n == 0)
119 return f(eta);
120
121 double mult = 1.;
122 if (n & 1)
123 mult = -1.;
124 return mult * pow(4., n) * f(eta);
125 }
126
127 virtual double etasol(double etatil) const { return etasolBinarySearch(etatil); }
128 };
129
135 {
136 public:
141 virtual double EtaMax() const { return 1.e9; }
142 virtual double f(double eta) const {
143 return exp(-4. * eta - 8. * eta * eta);
144 }
145 double d1f(double eta) const {
146 return -f(eta) * 4. * (1. + 4. * eta);
147 }
148 double d2f(double eta) const {
149 return f(eta) * 128. * eta * (1. + 2. * eta);
150 }
151 double d3f(double eta) const {
152 return -f(eta) * 128. * (-1. + 8. * eta * eta * (3. + 4. * eta));
153 }
154 double d4f(double eta) const {
155 return f(eta) * 512. * (-1. + 16. * eta * (-1. + 8. * eta * eta * (1. + eta)));
156 }
157 virtual double df(int n, double eta) const;
158
159 virtual double etasol(double etatil) const { return etasolBinarySearch(etatil); }
160 };
161
162} // namespace thermalfist
163
164#endif
165
virtual double df(int n, double eta) const
virtual double f(double eta) const
virtual double etasol(double etatil) const
virtual double etasolBinarySearch(double etatil) const
virtual double f(double eta) const
virtual double etasol(double etatil) const
virtual double df(int n, double eta) const
virtual double df(int n, double eta) const
virtual double etasol(double etatil) const
virtual double f(double eta) const
virtual double f(double eta) const
virtual double etasol(double etatil) const
virtual double df(int n, double eta) const
virtual double df(int n, double eta) const
virtual double f(double eta) const
virtual double etasol(double etatil) const
The main namespace where all classes and functions of the Thermal-FIST library reside.
Definition CosmicEoS.h:9