Equation of State Sub-Library: Version 0.910
rmf_delta_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_RMF_DELTA_EOS_H
00024 #define O2SCL_RMF_DELTA_EOS_H
00025 
00026 #include <o2scl/rmf_eos.h>
00027 
00028 #ifndef DOXYGENP
00029 namespace o2scl {
00030 #endif
00031   
00032   /** \brief Field-theoretical EOS with scalar-isovector meson, 
00033       \f$ \delta \f$.
00034 
00035       This essentially follows the notation in \ref Kubis97, except
00036       that our definitions of \c b and \c c follow their \f$ \bar{b}
00037       \f$ and \f$ \bar{c} \f$, respectively.
00038 
00039       Also discussed in \ref Gaitanos04, where they take
00040       \f$ m_{\delta}=980 \f$ MeV.
00041 
00042       The full Lagragian is:
00043 
00044       \f[
00045       {\cal L} = {\cal L}_{Dirac} + {\cal L}_{\sigma} + 
00046       {\cal L}_{\omega} + {\cal L}_{\rho} + {\cal L}_{\delta}
00047       \f]
00048     
00049       \f{eqnarray*}
00050       {\cal L}_{Dirac} &=& 
00051       \bar{\Psi} \left[ i {{\partial}\!\!\!{\slash}} - 
00052       g_{\omega} {{\omega}\!\!\!{\slash}} - \frac{g_{\rho}}{2} 
00053       {{\vec{\rho}}\!\!\!{\slash}}~
00054       \vec{\tau} - M + g_{\sigma} \sigma - \frac{e}{2} 
00055       \left( 1 + \tau_3 \right) A_{\mu} \right] \Psi \nonumber \\
00056       {\cal L}_{\sigma} &=& 
00057       {\textstyle \frac{1}{2}} \left( \partial_{\mu} \sigma \right)^2 
00058       - {\textstyle \frac{1}{2}} m^2_{\sigma} \sigma^2 
00059       - \frac{b M}{3} \left( g_{\sigma} \sigma\right)^3 
00060       - \frac{c}{4} \left( g_{\sigma} \sigma\right)^4  \nonumber \\
00061       {\cal L}_{\omega} &=& 
00062       - {\textstyle \frac{1}{4}} f_{\mu \nu} f^{\mu \nu} 
00063       + {\textstyle \frac{1}{2}} m^2_{\omega}\omega^{\mu}\omega_{\mu} 
00064       + \frac{\zeta}{24} g_{\omega}^4 \left(\omega^\mu \omega_\mu\right)^2
00065       \nonumber \\
00066       {\cal L}_{\rho} &=& 
00067       - {\textstyle \frac{1}{4}} \vec{B}_{\mu \nu} \cdot \vec{B}^{\mu \nu}
00068       + {\textstyle \frac{1}{2}} m^2_{\rho} \vec{\rho}^{~\mu} \cdot 
00069       \vec{\rho}_{~\mu} 
00070       + \frac{\xi}{24} g_{\rho}^4 \left(\vec{\rho}^{~\mu}\right) \cdot 
00071       \vec{\rho}_{~\mu} 
00072       + g_{\rho}^2 f (\sigma, \omega) \vec{\rho}^{~\mu} \cdot 
00073       \vec{\rho}_{~\mu} \nonumber \\
00074       \f}
00075       where the additional terms are
00076 
00077       \f[
00078       {\cal L}_{\delta} = \bar{\Psi} \left( g_{\delta} \vec{\delta} \cdot 
00079       \vec{\tau} \right) \Psi 
00080       + \frac{1}{2} (\partial_{\mu} \vec{\delta})^2 - 
00081       \frac{1}{2} m_{\delta}^2 \vec{\delta}^{~2}
00082       \f]
00083 
00084       The new field equation for the delta meson is
00085       \f[
00086       m_{\delta}^2 \delta = g_{\delta} (n_{s,p} - n_{s,n})
00087       \f]
00088 
00089       \future Finish the finite temperature EOS 
00090 
00091    */
00092   class rmf_delta_eos : public rmf_eos {
00093   public:
00094 
00095     /// The mass of the scalar-isovector field
00096     double md;
00097 
00098     /// The coupling of the scalar-isovector field to the nucleons
00099     double cd;
00100 
00101     /// The value of the scalar-isovector field
00102     double del;
00103     
00104     /** \brief Equation of state as a function of density
00105     */
00106     virtual int calc_e(fermion &ne, fermion &pr, thermo &lth);
00107 
00108     /** \brief Equation of state as a function of chemical potentials
00109     */
00110     virtual int calc_p(fermion &neu, fermion &p, 
00111                        double sig, double ome, double rho, double delta,
00112                        double &f1, double &f2, double &f3, double &f4,
00113                        thermo& th);
00114     
00115     /** \brief Finite temperature (unfinished)
00116      */
00117     int calc_temp_p(fermion &ne, fermion &pr, double temper,
00118                     double sig, double ome, double lrho, 
00119                     double delta, double &f1, double &f2, 
00120                     double &f3, double &f4, thermo& lth);
00121       
00122     /** \brief Set a guess for the fields for the next call to calc_e(), 
00123         calc_p(), or saturation()
00124     */
00125     virtual int set_fields(double sig, double ome, double lrho, 
00126                            double delta) {
00127       sigma=sig;
00128       omega=ome;
00129       rho=lrho;
00130       del=delta;
00131       guess_set=true;
00132       return 0;
00133     }
00134     
00135     /** \brief Calculate saturation properties for nuclear matter 
00136         at the saturation density
00137         
00138         This requires initial guesses to the chemical 
00139         potentials, etc.
00140     */
00141     virtual int saturation();
00142 
00143 #ifndef DOXYGEN_INTERNAL
00144 
00145   protected:
00146 
00147     /// The function for calc_e()
00148     virtual int calc_e_solve_fun(size_t nv, const ovector_base &ex, 
00149                                  ovector_base &ey);
00150     
00151     /// Compute matter at zero pressure (for saturation())
00152     virtual int zero_pressure(size_t nv, const ovector_base &ex, 
00153                               ovector_base &ey);
00154     
00155     
00156   private:
00157     
00158     /** \brief Forbid setting the guesses to the fields unless all four
00159         fields are specified
00160     */
00161     virtual int set_fields(double sig, double ome, double lrho) {
00162       return 0;
00163     }
00164 
00165 #endif
00166     
00167   };
00168   
00169 #ifndef DOXYGENP
00170 }
00171 #endif
00172   
00173 #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.