eos_had_schematic.h
Go to the documentation of this file.
1 /*
2  -------------------------------------------------------------------
3 
4  Copyright (C) 2006-2017, 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
virtual int set_kprime_zeroden()
Set kprime so that the energy per baryon of zero-density matter is zero.
double comp
Compression modulus in .
Definition: eos_had_base.h:340
double a
The kinetic energy symmetry coefficient in inverse fm (default )
virtual int calc_e(fermion &ln, fermion &lp, thermo &lth)
Equation of state as a function of density.
double n0
Saturation density in .
Definition: eos_had_base.h:346
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...
double gamma
The exponent of the high-density symmetry energy (unitless, default 1.0)
A hadronic EOS based on a function of the densities [abstract base].
Definition: eos_had_base.h:932
double b
The potential energy symmetry coefficient in inverse fm (default )
Schematic hadronic equation of state.
virtual int set_kpp_zeroden()
Set kpp so that the energy per baryon of zero-density matter is zero.
double kprime
Skewness in .
Definition: eos_had_base.h:352
virtual double baryon_suscep(double n, double x)
Return the baryon number susceptibility, in .
virtual double eoa_zeroden()
Return the energy per baryon of matter at zero density.
double kpp
The coefficient of a density to the fourth term in inverse fm (default 0)
double eoa
Binding energy (without the rest mass) in .
Definition: eos_had_base.h:332
virtual const char * type()
Return string denoting type ("eos_had_schematic")
const double pi2

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