![]() |
Equation of State Sub-Library: Version 0.910
|
00001 /* 00002 ------------------------------------------------------------------- 00003 00004 Copyright (C) 2006-2012, Andrew W. Steiner 00005 00006 This file is part of O2scl. 00007 00008 O2scl is free software; you can redistribute it and/or modify 00009 it under the terms of the GNU General Public License as published by 00010 the Free Software Foundation; either version 3 of the License, or 00011 (at your option) any later version. 00012 00013 O2scl is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 GNU General Public License for more details. 00017 00018 You should have received a copy of the GNU General Public License 00019 along with O2scl. If not, see <http://www.gnu.org/licenses/>. 00020 00021 ------------------------------------------------------------------- 00022 */ 00023 #ifndef O2SCL_SCHEMATIC_EOS_H 00024 #define O2SCL_SCHEMATIC_EOS_H 00025 00026 #include <iostream> 00027 #include <cmath> 00028 #include <o2scl/hadronic_eos.h> 00029 00030 #ifndef DOXYGENP 00031 namespace o2scl { 00032 #endif 00033 00034 /** \brief Schematic hadronic equation of state 00035 00036 A schematic equation of state defined by the energy density: 00037 \f[ 00038 \epsilon = n_n m_n + n_p m_p + 00039 n \left\{ eoa+\frac{comp}{18}(n/n0-1)^2+ 00040 \frac{kprime}{162}(n/n0-1)^3+ 00041 \frac{kpp}{1944}(n/n0-1)^4+(1- 2 x)^2 00042 \left[a \left(\frac{n}{n0}\right)^{2/3}+ 00043 b \left(\frac{n}{n0}\right)^{\gamma} \right] \right\} 00044 \f] 00045 00046 Symmetry energy at nuclear matter density is a+b. 00047 00048 Note that it doesn't really matter what kind of particle 00049 object is used, since the calc_e() function doesn't use 00050 any of the particle thermodynamics functions. 00051 */ 00052 class schematic_eos : public hadronic_eos_eden { 00053 00054 public: 00055 00056 /** \brief The kinetic energy symmetry coefficient in inverse fm 00057 (default 17/hc) 00058 00059 The default value corresponds to an effective mass of about 00060 0.7. 00061 */ 00062 double a; 00063 00064 /// The potential energy symmetry coefficient in inverse fm (default 13/hc) 00065 double b; 00066 00067 /// The coefficient of a density to the fourth term (default 0) 00068 double kpp; 00069 00070 /// The exponent of the high-density symmetry energy (default 1.0) 00071 double gamma; 00072 00073 schematic_eos(); 00074 00075 virtual ~schematic_eos() {}; 00076 00077 /** \brief Equation of state as a function of density 00078 */ 00079 virtual int calc_e(fermion &ln, fermion &lp, thermo <h); 00080 00081 /** \brief Set kprime so that the energy per baryon of zero-density 00082 matter is zero 00083 */ 00084 virtual int set_kprime_zeroden() { 00085 kprime=162.0*eoa+9.0*comp; 00086 return 0; 00087 } 00088 00089 /** \brief Set kpp so that the energy per baryon of zero-density 00090 matter is zero 00091 */ 00092 virtual int set_kpp_zeroden() { 00093 kpp=12.0*kprime-108.0*comp-1944.0*eoa; 00094 return 0; 00095 } 00096 00097 /** \brief Fix the kinetic energy symmetry coefficient from 00098 the nucleon effective mass and the saturation density 00099 00100 This assumes the nucleons are non-relativistic and that the 00101 neutrons and protons have equal mass. The relativistic 00102 corrections are around 1 part in \f$ 10^{6} \f$. 00103 00104 \todo This was computed in schematic_sym.nb, which might be 00105 added to the documentation? 00106 */ 00107 virtual int set_a_from_mstar(double u_msom, double mnuc) { 00108 a=cbrt(n0*n0*o2scl_const::pi2*o2scl_const::pi2/4.0/3.0)/ 00109 (2.0*u_msom*mnuc); 00110 return 0; 00111 } 00112 00113 /** \brief Return the energy per baryon of matter at zero density 00114 00115 This is inaccessible from calc_e() so is available separately 00116 here. Using set_kprime_zeroden() or set_kpp_zeroden() will 00117 fix kprime or kpp (respectively) to ensure that this is zero. 00118 00119 The result provided here does not include the nucleon mass and 00120 is given in \f$ \mathrm{fm}^{-1} \f$. 00121 */ 00122 virtual double eoa_zeroden() { 00123 return eoa+comp/18.0-kprime/162.0+kpp/1944.0; 00124 } 00125 00126 /// Return string denoting type ("schematic_eos") 00127 virtual const char *type() { return "schematic_eos"; } 00128 00129 }; 00130 00131 #ifndef DOXYGENP 00132 } 00133 #endif 00134 00135 #endif
Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).