Equation of State Sub-Library: Version 0.910
ddc_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 
00024 #ifndef O2SCL_DDC_EOS_H
00025 #define O2SCL_DDC_EOS_H
00026 
00027 #include <string>
00028 #include <cmath>
00029 #include <o2scl/lib_settings.h>
00030 #include <o2scl/constants.h>
00031 #include <o2scl/part.h>
00032 #include <o2scl/hadronic_eos.h>
00033 #include <o2scl/fermion.h>
00034 #include <o2scl/mm_funct.h>
00035 
00036 #ifndef DOXYGENP
00037 namespace o2scl {
00038 #endif
00039 
00040   /** \brief Relativistic mean field EOS with density dependent couplings
00041       
00042       Based on \ref Typel99.
00043 
00044       \future Implement the finite temperature EOS properly.
00045   */
00046   class ddc_eos : public hadronic_eos_eden {
00047   public:
00048 
00049     /// \name Masses
00050     //@{
00051     /// nucleon mass
00052     double mnuc;
00053     /// \f$ \phi \f$ mass (in \f$ \mathrm{fm}^{-1} \f$ )
00054     double ms;
00055     /// \f$ A_{\omega} \f$ mass (in \f$ \mathrm{fm}^{-1} \f$ )
00056     double mw;
00057     /// \f$ A_{\rho} \f$ mass (in \f$ \mathrm{fm}^{-1} \f$ )
00058     double mr;
00059     //@}
00060 
00061     /// \name Parameters for couplings
00062     //@{
00063     /// The coupling \f$ \Gamma_{\sigma}(\rho_{\mathrm{sat}}) \f$
00064     double Gs;
00065     /// The coupling \f$ \Gamma_{\omega}(\rho_{\mathrm{sat}}) \f$
00066     double Gw;
00067     /// The coupling \f$ \Gamma_{\rho}(\rho_{\mathrm{sat}}) \f$
00068     double Gr;
00069     /// \f$ a_{\sigma} \f$
00070     double as;
00071     /// \f$ a_{\omega} \f$
00072     double aw;
00073     /// \f$ a_{\rho} \f$
00074     double ar;
00075     /// \f$ b_{\sigma} \f$
00076     double bs;
00077     /// \f$ b_{\omega} \f$
00078     double bw;
00079     /// \f$ c_{\sigma} \f$
00080     double cs;
00081     /// \f$ c_{\omega} \f$
00082     double cw;
00083     /// \f$ d_{\sigma} \f$
00084     double ds;
00085     /// \f$ d_{\omega} \f$
00086     double dw;
00087     //@}
00088 
00089     // The saturation density
00090     double rho0;
00091 
00092     ddc_eos();
00093 
00094     /// Equation of state as a function of the densities
00095     virtual int calc_e(fermion &n, fermion &p, thermo &th) {
00096       return gsl_eunimpl;
00097     }
00098     
00099     /** \brief Equation of state and meson field equations
00100         as a function of the density
00101       
00102         This calculates the pressure and energy density as a function
00103         of \f$ \mu_n, \mu_p, \phi, A_{\omega}, A_{\rho} \f$ . When the
00104         field equations have been solved, \c f1, \c f2, and \c f3 are
00105         all zero.
00106         
00107         \todo Is the thermodynamic identity is satisfied even when the
00108         field equations are not solved? Check this.
00109     */
00110     virtual int calc_eq_e(fermion &neu, fermion &p, double sig, 
00111                           double ome, double rho, double &f1, 
00112                           double &f2, double &f3, thermo &th);
00113     
00114 
00115     /// Return string denoting type ("ddc_eos")
00116     virtual const char *type() { return "ddc_eos"; }
00117 
00118 #ifndef DOXYGEN_INTERNAL
00119 
00120   protected:
00121 
00122     /// Desc
00123     fermion_zerot fzt;
00124     
00125 #endif
00126 
00127   };
00128 
00129 #ifndef DOXYGENP
00130 }
00131 #endif
00132 
00133 #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.