File indexing completed on 2025-08-05 08:19:15
0001 #pragma once
0002 #include <cmath>
0003 #include <string>
0004
0005 class TGraph;
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 class EoS {
0022 public:
0023 virtual ~EoS() {}
0024
0025
0026 virtual void eos(double e, double nb, double nq, double ns, double &T,
0027 double &mub, double &muq, double &mus, double &p) = 0;
0028
0029 virtual double p(double e, double nb, double ns, double nq) = 0;
0030
0031 double s(double e, double nb, double nq, double ns);
0032
0033
0034 inline double cs2(void) { return 1. / 3.; }
0035 inline double cs(void) { return sqrt(1. / 3.); }
0036
0037 virtual inline double cs2(double e) { return 1. / 3.; }
0038 ;
0039 };
0040
0041
0042
0043
0044
0045 class EoSs : public EoS {
0046 private:
0047 TGraph *gp, *gT, *gmu;
0048
0049 public:
0050 EoSs(std::string fname, int ncols);
0051 ~EoSs();
0052
0053 virtual inline void eos(double e, double nb, double nq, double ns, double &T,
0054 double &mub, double &muq, double &mus, double &_p) {
0055 _p = p(e);
0056 T = t(e);
0057 mub = muq = mus = 0.;
0058 }
0059 virtual inline double p(double e, double nb, double ns, double nq) {
0060 return p(e);
0061 }
0062
0063 double p(double e);
0064 double dpe(double e);
0065 double t(double e);
0066 double mu(double e);
0067
0068 virtual double cs2(double e) { return dpe(e); }
0069
0070 };