Thermal-FIST  1.3
Package for hadron resonance gas model applications
ExcludedVolumeModel.h
Go to the documentation of this file.
1 /*
2  * Thermal-FIST package
3  *
4  * Copyright (c) 2016-2018 Volodymyr Vovchenko
5  *
6  * GNU General Public License (GPLv3 or later)
7  */
8 #ifndef EXCLUDEDVOLUMEMODEL_H
9 #define EXCLUDEDVOLUMEMODEL_H
10 
11 #include <cmath>
12 
13 namespace thermalfist {
14 
31  {
32  public:
34  {
35  }
36  virtual ~ExcludedVolumeModel() { }
37  virtual double xMax() const { return 1.; }
38  virtual double f(double x) const { return 1. / (1. - x); }
39  virtual double g1(double x) const { return 1. / (1. - x); }
40  virtual double g2(double x) const { return -log(1. - x); }
41  virtual double g3(double /*x*/) const { return 1.; }
42  virtual double Dg3(double /*x*/) const { return 0.; }
43  };
44 
50  {
51  public:
53  {
54  }
55  virtual ~ExcludedVolumeModelCS() { }
56  virtual double xMax() const { return 4.; }
57  virtual double f(double x) const {
58  double tx = x / 4.;
59  return (1 + tx + tx * tx - tx * tx*tx) / (1. - tx) / (1. - tx) / (1. - tx);
60  }
61  virtual double g1(double x) const {
62  double tx = x / 4.;
63  return (1 - tx / 2.) / (1. - tx) / (1. - tx) / (1. - tx);
64  }
65  virtual double g2(double x) const {
66  double tx = x / 4.;
67  return (1 - 3.*x / 16.) * x / (1. - tx) / (1. - tx);
68  }
69  virtual double g3(double x) const {
70  double tx = x / 4.;
71  return (1 - tx / 2.) / (1 + tx + tx * tx - tx * tx*tx);
72  }
73  virtual double Dg3(double x) const {
74  double tx = x / 4.;
75  double zn = (1 + tx + tx * tx - tx * tx*tx);
76  return -1. / 8. / zn - (1. - tx / 2.) / zn / zn * (1. / 4. + 2. * tx - 3.*tx*tx);
77  }
78  };
79 
80 } // namespace thermalfist
81 
82 #endif
83 
virtual double f(double x) const
virtual double Dg3(double x) const
virtual double g2(double x) const
virtual double g1(double x) const
virtual double g3(double x) const
virtual double g1(double x) const
virtual double f(double x) const
virtual double g2(double x) const
Derived class implementing auxiliary excluded-volume functions for multi-component mean-field approac...
virtual double Dg3(double) const
virtual double g3(double) const
The main namespace where all classes and functions of the Thermal-FIST library reside.
Base class implementing auxiliary excluded-volume functions needed for multi-component mean-field app...