Equation of State Sub-Library: Version 0.910
schematic_eos.h
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 &lth);
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
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Friends

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

Get Object-oriented Scientific Computing
Lib at SourceForge.net. Fast, secure and Free Open Source software
downloads.