rmf_delta_eos.h

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

Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page