eos_had_schematic.h
Go to the documentation of this file.
1 /*
2  -------------------------------------------------------------------
3 
4  Copyright (C) 2006-2020, Andrew W. Steiner
5 
6  This file is part of O2scl.
7 
8  O2scl is free software; you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation; either version 3 of the License, or
11  (at your option) any later version.
12 
13  O2scl is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with O2scl. If not, see <http://www.gnu.org/licenses/>.
20 
21  -------------------------------------------------------------------
22 */
23 /** \file eos_had_schematic.h
24  \brief File defining \ref o2scl::eos_had_schematic
25 */
26 #ifndef O2SCL_SCHEMATIC_EOS_H
27 #define O2SCL_SCHEMATIC_EOS_H
28 
29 #include <iostream>
30 #include <cmath>
31 #include <o2scl/eos_had_base.h>
32 
33 #ifndef DOXYGEN_NO_O2NS
34 namespace o2scl {
35 #endif
36 
37  /** \brief Schematic hadronic equation of state
38 
39  A schematic equation of state defined by the energy density:
40  \f[
41  \epsilon = n_n m_n + n_p m_p +
42  n \left\{ eoa+\frac{comp}{18}(n/n0-1)^2+
43  \frac{kprime}{162}(n/n0-1)^3+
44  \frac{kpp}{1944}(n/n0-1)^4+(1- 2 x)^2
45  \left[a \left(\frac{n}{n0}\right)^{2/3}+
46  b \left(\frac{n}{n0}\right)^{\gamma} \right] \right\}
47  \f]
48 
49  Symmetry energy at nuclear matter density is \f$ a+b \f$.
50  */
52 
53  public:
54 
55  /** \brief The kinetic energy symmetry coefficient in inverse fm
56  (default \f$ 17~\mathrm{MeV}~/(\hbar c) \f$)
57 
58  The default value corresponds to an effective mass of about
59  0.7.
60  */
61  double a;
62 
63  /** \brief The potential energy symmetry coefficient in inverse
64  fm (default \f$ 13~\mathrm{MeV}~/(\hbar c) \f$)
65  */
66  double b;
67 
68  /** \brief The coefficient of a density to the fourth term in
69  inverse fm (default 0)
70  */
71  double kpp;
72 
73  /** \brief The exponent of the high-density symmetry energy
74  (unitless, default 1.0)
75  */
76  double gamma;
77 
79 
80  virtual ~eos_had_schematic() {};
81 
82  /** \brief Equation of state as a function of density
83  */
84  virtual int calc_e(fermion &ln, fermion &lp, thermo &lth);
85 
86  /** \brief Set kprime so that the energy per baryon of zero-density
87  matter is zero
88  */
89  virtual int set_kprime_zeroden() {
90  kprime=162.0*eoa+9.0*comp;
91  return 0;
92  }
93 
94  /** \brief Set kpp so that the energy per baryon of zero-density
95  matter is zero
96  */
97  virtual int set_kpp_zeroden() {
98  kpp=12.0*kprime-108.0*comp-1944.0*eoa;
99  return 0;
100  }
101 
102  /** \brief Fix the kinetic energy symmetry coefficient from
103  the reduced nucleon effective mass and the saturation density
104 
105  This assumes the nucleons are non-relativistic and that the
106  neutrons and protons have equal mass. The relativistic
107  corrections are around 1 part in \f$ 10^{6} \f$.
108 
109  \todo This was computed in schematic_sym.nb, which might be
110  added to the documentation?
111  */
112  virtual int set_a_from_mstar(double u_msom, double mnuc) {
113  a=cbrt(n0*n0*o2scl_const::pi2*o2scl_const::pi2/4.0/3.0)/
114  (2.0*u_msom*mnuc);
115  return 0;
116  }
117 
118  /** \brief Return the energy per baryon of matter at zero density
119 
120  This is inaccessible from calc_e() so is available separately
121  here. Using set_kprime_zeroden() or set_kpp_zeroden() will
122  fix kprime or kpp (respectively) to ensure that this is zero.
123 
124  The result provided here does not include the nucleon mass and
125  is given in \f$ \mathrm{fm}^{-1} \f$.
126  */
127  virtual double eoa_zeroden() {
128  return eoa+comp/18.0-kprime/162.0+kpp/1944.0;
129  }
130 
131  /** \brief Return the baryon number susceptibility, \f$ \partial \mu_B /
132  \partial n_B \f$ in \f$ \mathrm{fm}^{2} \f$.
133 
134  \todo This function is untested.
135  */
136  virtual double baryon_suscep(double n, double x) {
137  double alpha=n*(1.0-2.0*x);
138  double ret=(kpp*n*(5.0-2.0*n0)*(n-n0)*(n-n0)+
139  18.0*n0*(3.0*comp*n*(3.0*n-2.0*n0)*n0)+
140  kprime*n*(2.0*n*n-3.0*n*n0+n0*n0)+3.0*pow(n0,3.0)*alpha*
141  (-1.0*a*pow(n/n0,2.0/3.0)*(-6.0+alpha)+
142  9*b*pow(n/n0,gamma)*(2.0+alpha*(-1.0+gamma))))/
143  (486.0*n*pow(n0,4.0));
144  return ret;
145  }
146 
147  /// Return string denoting type ("eos_had_schematic")
148  virtual const char *type() { return "eos_had_schematic"; }
149 
150  };
151 
152 #ifndef DOXYGEN_NO_O2NS
153 }
154 #endif
155 
156 #endif
o2scl::eos_had_base::kprime
double kprime
Skewness in .
Definition: eos_had_base.h:352
o2scl_const::pi2
const double pi2
o2scl::eos_had_schematic::kpp
double kpp
The coefficient of a density to the fourth term in inverse fm (default 0)
Definition: eos_had_schematic.h:71
o2scl::eos_had_schematic::calc_e
virtual int calc_e(fermion &ln, fermion &lp, thermo &lth)
Equation of state as a function of density.
o2scl::eos_had_schematic::a
double a
The kinetic energy symmetry coefficient in inverse fm (default )
Definition: eos_had_schematic.h:61
thermo_tl< double >
o2scl::eos_had_base::n0
double n0
Saturation density in .
Definition: eos_had_base.h:346
o2scl::eos_had_schematic::set_kpp_zeroden
virtual int set_kpp_zeroden()
Set kpp so that the energy per baryon of zero-density matter is zero.
Definition: eos_had_schematic.h:97
o2scl::eos_had_schematic::baryon_suscep
virtual double baryon_suscep(double n, double x)
Return the baryon number susceptibility, in .
Definition: eos_had_schematic.h:136
o2scl::eos_had_schematic::type
virtual const char * type()
Return string denoting type ("eos_had_schematic")
Definition: eos_had_schematic.h:148
o2scl::eos_had_schematic::gamma
double gamma
The exponent of the high-density symmetry energy (unitless, default 1.0)
Definition: eos_had_schematic.h:76
o2scl::eos_had_schematic::set_kprime_zeroden
virtual int set_kprime_zeroden()
Set kprime so that the energy per baryon of zero-density matter is zero.
Definition: eos_had_schematic.h:89
o2scl::eos_had_base::eoa
double eoa
Binding energy (without the rest mass) in .
Definition: eos_had_base.h:332
o2scl::eos_had_schematic
Schematic hadronic equation of state.
Definition: eos_had_schematic.h:51
o2scl::eos_had_base::comp
double comp
Compression modulus in .
Definition: eos_had_base.h:340
o2scl::eos_had_schematic::b
double b
The potential energy symmetry coefficient in inverse fm (default )
Definition: eos_had_schematic.h:66
o2scl::eos_had_schematic::set_a_from_mstar
virtual int set_a_from_mstar(double u_msom, double mnuc)
Fix the kinetic energy symmetry coefficient from the reduced nucleon effective mass and the saturatio...
Definition: eos_had_schematic.h:112
o2scl::eos_had_schematic::eoa_zeroden
virtual double eoa_zeroden()
Return the energy per baryon of matter at zero density.
Definition: eos_had_schematic.h:127
o2scl::eos_had_eden_base
A hadronic EOS based on a function of the densities [abstract base].
Definition: eos_had_base.h:937

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).