Public Member Functions | Public Attributes | Protected Attributes | List of all members
o2scl::eos_had_skyrme Class Reference

Skyrme hadronic equation of state. More...

#include <eos_had_skyrme.h>

Inheritance diagram for o2scl::eos_had_skyrme:
o2scl::eos_had_temp_eden_base o2scl::eos_had_temp_base o2scl::eos_had_base o2scl::eos_base o2scl::eos_had_sym4_skyrme

Public Member Functions

int calpar (double gt0=-10.0, double gt3=70.0, double galpha=0.2, double gt1=2.0, double gt2=-1.0)
 Calculate $ t_0,t_1,t_2,t_3 $ and $ \alpha $ from the saturation properties. More...
 
int check_landau (double nb, double m)
 Check the Landau parameters for instabilities. More...
 
void landau_nuclear (double n0, double m, double &f0, double &g0, double &f0p, double &g0p, double &f1, double &g1, double &f1p, double &g1p)
 Calculate the Landau parameters for nuclear matter. More...
 
void landau_neutron (double n0, double m, double &f0, double &g0, double &f1, double &g1)
 Calculate the Landau parameters for neutron matter. More...
 
virtual const char * type ()
 Return string denoting type ("eos_had_skyrme")
 
void alt_params_set (double Crr00, double Crr10, double Crr0D, double Crr1D, double Crt0, double Crt1, double CrDr0, double CrDr1, double CrnJ0, double CrnJ1, double alpha2)
 Set using alternate parameterization. More...
 
void alt_params_get (double &Crr00, double &Crr10, double &Crr0D, double &Crr1D, double &Crt0, double &Crt1, double &CrDr0, double &CrDr1, double &CrnJ0, double &CrnJ1, double &alpha2)
 Get alternate parameterization. More...
 
void alt_params_saturation (double n0, double EoA, double K, double Ms_star, double a, double L, double Mv_star, double CrDr0, double CrDr1, double CrnJ0, double CrnJ1)
 Use the specified saturation properties and couplings and the function alt_params_set() to set the Skyrme coefficients. More...
 
Basic usage
 eos_had_skyrme ()
 Create a blank Skyrme EOS.
 
virtual ~eos_had_skyrme ()
 Destructor.
 
virtual int calc_temp_e (fermion &ne, fermion &pr, double temper, thermo &th)
 Equation of state as a function of densities. More...
 
virtual int calc_e (fermion &ne, fermion &pr, thermo &lt)
 Equation of state as a function of density.
 
Saturation properties

These calculate the various saturation properties exactly from the parameters at any density. These routines often assume that the neutron and proton masses are equal.

virtual double feoa (double nb)
 Calculate binding energy. More...
 
virtual double fmsom (double nb)
 Calculate effective mass. More...
 
virtual double fcomp (double nb)
 Calculate compressibility. More...
 
virtual double fesym (double nb, double alpha=0.0)
 Calculate symmetry energy. More...
 
virtual double fkprime (double nb)
 skewness More...
 
- Public Member Functions inherited from o2scl::eos_had_temp_eden_base
virtual int calc_p (fermion &n, fermion &p, thermo &th)
 Equation of state as a function of the chemical potentials.
 
virtual int calc_temp_p (fermion &n, fermion &p, double T, thermo &th)
 Equation of state as a function of the chemical potentials at finite temperature.
 
- Public Member Functions inherited from o2scl::eos_had_temp_base
virtual int calc_liqgas_dens_temp_e (fermion &n1, fermion &p1, fermion &n2, fermion &p2, double T, thermo &th1, thermo &th2)
 Compute liquid-gas phase transition densities using eos_had_temp_base::calc_temp_e() . More...
 
virtual int calc_liqgas_temp_e (fermion &n1, fermion &p1, fermion &n2, fermion &p2, double nB, double Ye, double T, thermo &th1, thermo &th2, double &chi)
 Compute the liquid-gas phase transition using eos_had_temp_base::calc_temp_e() . More...
 
virtual int calc_liqgas_beta_temp_e (fermion &n1, fermion &p1, fermion &n2, fermion &p2, double nB, double T, thermo &th1, thermo &th2, double &Ye, double &chi)
 Compute the liquid-gas phase transition in beta-equilibrium using eos_had_temp_base::calc_temp_e() . More...
 
virtual double fesym_T (double nb, double T, double delta=0.0)
 Compute the symmetry energy at finite temperature.
 
virtual double fsyment_T (double nb, double T, double delta=0.0)
 Compute the symmetry entropy at finite temperature.
 
virtual double calc_temp_mun_e (double nn, double np, double T)
 Neutron chemical potential as a function of the densities.
 
virtual double calc_temp_mup_e (double nn, double np, double T)
 Proton chemical potential as a function of the densities.
 
virtual double calc_temp_nn_p (double mun, double mup, double T)
 Neutron density as a function of the chemical potentials.
 
virtual double calc_temp_np_p (double mun, double mup, double T)
 Proton density as a function of the chemical potentials.
 
double calc_fr (double nn, double np, double T)
 Compute the free energy as a function of the temperature and the densities.
 
virtual void f_number_suscept_T (double mun, double mup, double T, double &dPdnn, double &dPdnp, double &dPdpp)
 Compute the number susceptibilities as a function of the chemical potentials, $ \partial^2 P / \partial \mu_i \mu_j $ at a fixed temperature.
 
virtual void f_inv_number_suscept_T (double mun, double mup, double T, double &dednn, double &dednp, double &dedpp)
 Compute the 'inverse' number susceptibilities as a function of the densities, $ \partial^2 \varepsilon / \partial n_i n_j $ at a fixed temperature.
 
void check_en (fermion &n, fermion &p, double T, thermo &th, double &en_deriv, double &en_err)
 Check the entropy by computing the derivative numerically.
 
void check_mu_T (fermion &n, fermion &p, double T, thermo &th, double &mun_deriv, double &mup_deriv, double &mun_err, double &mup_err)
 Check the chemical potentials at finite temperature by computing the derivative numerically.
 
virtual void set_fermion_eval_thermo (fermion_eval_thermo &f)
 Computing finite-temperature integrals. More...
 
- Public Member Functions inherited from o2scl::eos_had_base
virtual double fcomp (double nb, double delta=0.0)
 Calculate the incompressibility in $ \mathrm{fm}^{-1} $ using calc_e() More...
 
virtual double fcomp_err (double nb, double delta, double &unc)
 Compute the incompressibility and its uncertainty. More...
 
virtual double feoa (double nb, double delta=0.0)
 Calculate the energy per baryon in $ \mathrm{fm}^{-1} $ using calc_e() More...
 
virtual double fesym_err (double nb, double delta, double &unc)
 Calculate symmetry energy of matter and its uncertainty in $ \mathrm{fm}^{-1} $. More...
 
virtual double fesym_slope (double nb, double delta=0.0)
 The symmetry energy slope parameter in $ \mathrm{fm}^{-1} $. More...
 
virtual double fesym_curve (double nb, double delta=0.0)
 The curvature of the symmetry energy in $ \mathrm{fm}^{-1} $.
 
virtual double fesym_skew (double nb, double delta=0.0)
 The skewness of the symmetry energy in $ \mathrm{fm}^{-1} $.
 
virtual double fesym_diff (double nb)
 Calculate symmetry energy of matter as energy of neutron matter minus the energy of nuclear matter in $ \mathrm{fm}^{-1} $. More...
 
virtual double feta (double nb)
 The strength parameter for quartic terms in the symmetry energy.
 
virtual double feta_prime (double nb)
 The derivative of the strength parameter for quartic terms in the symmetry energy.
 
virtual double fkprime (double nb, double delta=0.0)
 Calculate skewness of nuclear matter in $ \mathrm{fm}^{-1} $ using calc_e() More...
 
virtual double fmsom (double nb, double delta=0.0)
 Calculate reduced neutron effective mass using calc_e() More...
 
virtual double f_effm_neut (double nb, double delta=0.0)
 Neutron (reduced) effective mass.
 
virtual double f_effm_prot (double nb, double delta=0.0)
 Proton (reduced) effective mass.
 
virtual double f_effm_scalar (double nb, double delta=0.0)
 Scalar effective mass. More...
 
virtual double f_effm_vector (double nb, double delta=1.0)
 Vector effective mass. More...
 
virtual double fn0 (double delta, double &leoa)
 Calculate saturation density using calc_e() More...
 
virtual void f_number_suscept (double mun, double mup, double &dPdnn, double &dPdnp, double &dPdpp)
 Compute the number susceptibilities as a function of the chemical potentials, $ \partial^2 P / \partial \mu_i \mu_j $.
 
virtual void f_inv_number_suscept (double mun, double mup, double &dednn, double &dednp, double &dedpp)
 Compute the 'inverse' number susceptibilities as a function of the densities, $ \partial^2 \varepsilon / \partial n_i n_j $.
 
virtual void saturation ()
 Calculates some of the EOS properties at the saturation density. More...
 
double calc_mun_e (double nn, double np)
 Compute the neutron chemical potential at fixed density. More...
 
double calc_ed (double nn, double np)
 Compute the energy density as a function of the nucleon densities.
 
double calc_pr (double nn, double np)
 Compute the pressure as a function of the nucleon chemical potentials.
 
double calc_mup_e (double nn, double np)
 Compute the proton chemical potential at fixed density. More...
 
double calc_nn_p (double mun, double mup)
 Compute the neutron density at fixed chemical potential. More...
 
double calc_np_p (double mun, double mup)
 Compute the proton density at fixed chemical potential. More...
 
double calc_dmu_delta (double delta, double nb)
 Compute the difference between neutron and proton chemical potentials as a function of the isospin asymmetry. More...
 
double calc_musum_delta (double delta, double nb)
 Compute the sum of the neutron and proton chemical potentials as a function of the isospin asymmetry. More...
 
double calc_pressure_nb (double nb, double delta=0.0)
 Compute the pressure as a function of baryon density at fixed isospin asymmetry. More...
 
double calc_edensity_nb (double nb, double delta=0.0)
 Compute the energy density as a function of baryon density at fixed isospin asymmetry. More...
 
void const_pf_derivs (double nb, double pf, double &dednb_pf, double &dPdnb_pf)
 Compute derivatives at constant proton fraction.
 
double calc_press_over_den2 (double nb, double delta=0.0)
 Calculate pressure / baryon density squared in nuclear matter as a function of baryon density at fixed isospin asymmetry. More...
 
double calc_edensity_delta (double delta, double nb)
 Calculate energy density as a function of the isospin asymmetry at fixed baryon density. More...
 
int nuc_matter_p (size_t nv, const ubvector &x, ubvector &y, double nn0, double np0)
 Solve for the chemical potentials given the densities. More...
 
int nuc_matter_e (size_t nv, const ubvector &x, ubvector &y, double mun0, double mup0)
 Solve for the densities given the chemical potentials. More...
 
virtual void set_mroot (mroot<> &mr)
 Set class mroot object for use in calculating chemical potentials from densities. More...
 
virtual void set_sat_root (root<> &mr)
 Set class mroot object for use calculating saturation density. More...
 
virtual void set_sat_deriv (deriv_base<> &de)
 Set deriv_base object to use to find saturation properties.
 
virtual void set_sat_deriv2 (deriv_base<> &de)
 Set the second deriv_base object to use to find saturation properties. More...
 
virtual void set_n_and_p (fermion &n, fermion &p)
 Set neutron and proton.
 
void gradient_qij (fermion &n, fermion &p, thermo &th, double &qnn, double &qnp, double &qpp, double &dqnndnn, double &dqnndnp, double &dqnpdnn, double &dqnpdnp, double &dqppdnn, double &dqppdnp)
 Calculate coefficients for gradient part of Hamiltonian. More...
 
void check_mu (fermion &n, fermion &p, thermo &th, double &mun_deriv, double &mup_deriv, double &mun_err, double &mup_err)
 Check the chemical potentials by computing the derivatives numerically.
 
void check_den (fermion &n, fermion &p, thermo &th, double &nn_deriv, double &np_deriv, double &nn_err, double &np_err)
 Check the densities by computing the derivatives numerically.
 
- Public Member Functions inherited from o2scl::eos_base
virtual void set_thermo (thermo &th)
 Set class thermo object.
 
virtual const thermoget_thermo ()
 Get class thermo object.
 

Public Attributes

double W0
 Spin-orbit splitting (in $ \mathrm{fm}^{-1} $) More...
 
double b4
 Isoscalar spin-orbit term (in $ \mathrm{fm}^{-1} $)
 
double b4p
 Isovector spin-orbit term (in $ \mathrm{fm}^{-1} $)
 
std::string reference
 Bibliographic reference.
 
bool parent_method
 Use eos_had_base methods for saturation properties. More...
 
Basic Skyrme model parameters
double t0
 
double t1
 
double t2
 
double t3
 
double x0
 
double x1
 
double x2
 
double x3
 
double alpha
 
double a
 
double b
 
- Public Attributes inherited from o2scl::eos_had_temp_base
fermion_eff def_fet
 Default fermion thermodynamics object.
 
- Public Attributes inherited from o2scl::eos_had_base
double eoa
 Binding energy (without the rest mass) in $ \mathrm{fm}^{-1} $.
 
double comp
 Compression modulus in $ \mathrm{fm}^{-1} $.
 
double esym
 Symmetry energy in $ \mathrm{fm}^{-1} $.
 
double n0
 Saturation density in $ \mathrm{fm}^{-3} $.
 
double msom
 Effective mass (neutron)
 
double kprime
 Skewness in $ \mathrm{fm}^{-1} $.
 
fermion def_neutron
 The defaut neutron. More...
 
fermion def_proton
 The defaut proton. More...
 
deriv_gsl def_deriv
 The default object for derivatives. More...
 
deriv_gsl def_deriv2
 The second default object for derivatives. More...
 
mroot_hybrids def_mroot
 The default solver. More...
 
root_cern def_sat_root
 The default solver for calculating the saturation density. More...
 
- Public Attributes inherited from o2scl::eos_base
thermo def_thermo
 The default thermo object.
 

Protected Attributes

fermion_nonrel nrf
 Thermodynamics of non-relativistic fermions.
 
- Protected Attributes inherited from o2scl::eos_had_temp_base
fermion_eval_thermofet
 Fermion thermodynamics (default is def_fet)
 
- Protected Attributes inherited from o2scl::eos_had_base
mrooteos_mroot
 The EOS solver.
 
rootsat_root
 The solver to compute saturation properties.
 
deriv_basesat_deriv
 The derivative object for saturation properties.
 
deriv_basesat_deriv2
 The second derivative object for saturation properties.
 
fermionneutron
 The neutron object.
 
fermionproton
 The proton object.
 
- Protected Attributes inherited from o2scl::eos_base
thermoeos_thermo
 A pointer to the thermo object.
 

Functions and parameters for calpar()

double fixn0
 
double fixeoa
 
double fixesym
 
double fixcomp
 
double fixmsom
 
int calparfun (size_t nv, const ubvector &x, ubvector &y)
 
int calparfun2 (size_t nv, const ubvector &x, ubvector &y)
 

Additional Inherited Members

- Public Types inherited from o2scl::eos_had_base
typedef boost::numeric::ublas::vector< double > ubvector
 
- Protected Member Functions inherited from o2scl::eos_had_temp_base
int nuc_matter_temp_e (size_t nv, const ubvector &x, ubvector &y, double nn0, double np0, double T)
 Solve for nuclear matter at finite temperature given density.
 
int nuc_matter_temp_p (size_t nv, const ubvector &x, ubvector &y, double mun0, double mup0, double T)
 Solve for nuclear matter at finite temperature given mu.
 
int liqgas_dens_solve (size_t nv, const ubvector &x, ubvector &y, fermion &n1, fermion &p1, fermion &n2, fermion &p2, double T, thermo &th1, thermo &th2)
 Solve for the liquid gas phase transition as a function of the densities.
 
int liqgas_solve (size_t nv, const ubvector &x, ubvector &y, fermion &n1, fermion &p1, fermion &n2, fermion &p2, double nB0, double Ye0, double T, thermo &th1, thermo &th2)
 Solve for the liquid-gas phase transition at fixed baryon density and electron fraction.
 
int liqgas_beta_solve (size_t nv, const ubvector &x, ubvector &y, fermion &n1, fermion &p1, fermion &n2, fermion &p2, double nB0, double T, thermo &th1, thermo &th2, fermion &e)
 Solve for the liquid-gas phase transition in beta-equilibrium.
 
double calc_entropy_delta (double delta, double nb, double T)
 Compute the entropy.
 
double calc_dmu_delta_T (double delta, double nb, double T)
 Compute the difference between the neutron and proton chemical potentials.
 
- Protected Member Functions inherited from o2scl::eos_had_base
double t1_fun (double barn)
 Compute t1 for gradient_qij().
 
double t2_fun (double barn)
 Compute t2 for gradient_qij().
 

Detailed Description

Equation of state of nucleonic matter based on the Skryme interaction from Skyrme59 .


Background:

The Hamiltonian is defined (using the notation of Steiner05b ) as

\[ {\cal H} = {\cal H}_{k1} + {\cal H}_{k2} + {\cal H}_{k3} + {\cal H}_{p1} + {\cal H}_{p2} + {\cal H}_{p3} + {\cal H}_{g1} + {\cal H}_{g2} \, . \]

The kinetic terms are:

\[ {\cal H}_{k1} = \frac{\tau_n}{2 m_n} + \frac{\tau_p}{2 m_p} \]

\[ {\cal H}_{k2} = n \left(\tau_n + \tau_p \right) \left[ \frac{t_1}{4} \left( 1 + \frac{x_1}{2} \right) + \frac{t_2}{4} \left( 1 + \frac{x_2}{2} \right) \right] \]

\[ {\cal H}_{k3} = \left( \tau_n n_n + \tau_p n_p \right) \left[ \frac{t_2}{4} \left( \frac{1}{2} + x_2 \right) - \frac{t_1}{4} \left( \frac{1}{2} + x_1 \right) \right] \]

where $ \tau_i $ is the Fermi gas energy density of particle $ i $ .

The potential terms are:

\[ {\cal H}_{p1} = \frac{t_0}{2} \left[ \left( 1 + \frac{x_0}{2} \right) n^2 - \left( {\textstyle \frac{1}{2}} + x_0 \right) \left( n_n^2 + n_p^2 \right) \right] \]

\[ {\cal H}_{p2} = \frac{a t_3}{6} \left[ \left( 1 + \frac{x_3}{2} \right) n^{\alpha} n_n n_p + 2^{\alpha-2} \left(1 - x_3\right) \left(n_n^{\alpha+2} + n_p^{\alpha+2}\right) \right] \]

\[ {\cal H}_{p3} = \frac{b t_3}{12} \left[ \left(1 + \frac{x_3}{2} \right) n^{\alpha+2} - \left(\frac{1}{2} + x_3 \right) n^{\alpha} \left( n_n^2+n_p^2 \right) \right] \]

The gradient terms are displayed here for completeness even though they are not computed in the code:

\[ {\cal H}_{g1} = \frac{3}{32} \left[ t_1 \left(1 - x_1 \right) - t_2 \left(1 + x_2 \right) \right] \left[ \left( \nabla n_n\right)^2 + \left( \nabla n_p \right)^2 \right] \]

\[ {\cal H}_{g2} = \frac{1}{8} \left[ 3 t_1 \left( 1 + \frac{x_1}{2} \right) - t_2 \left(1 + \frac{x_2}{2} \right) \right] \nabla n_n \nabla n_p \]

The values $ a=0, b=1 $ give the standard definition of the Skyrme Hamiltonian Skyrme59, while $a=1, b=0$ contains the modifications suggested by Onsi94.

The spin-orbit term is (following Steiner05)

\[ {\cal H}_{J} = -\frac{W_0}{2} \left( n_n \vec{\nabla} \cdot \vec{J}_n + n_p \vec{\nabla} \cdot \vec{J}_p + n \vec{\nabla} \cdot \vec{J} \right) + \frac{t_1}{16} \left(\vec{J}_n^2 + \vec{J}_p^2 - x_1 \vec{J}^2\right) - \frac{t_2}{16} \left(\vec{J}_n^2 + \vec{J}_p^2 + x_2 \vec{J}^2\right) \]

where sometimes the $ \vec{J}^2 $ terms are not included. Alternatively, one can separate the isoscalar and isovector parts in the first term

\[ {\cal H}_{J} = - b_4 n \vec{\nabla} \cdot \vec{J} - b_4^{\prime} n_n \vec{\nabla} \cdot \vec{J}_n - b_4^{\prime} n_p \vec{\nabla} \cdot \vec{J}_p \]

then the earlier Skyrme interactions have $ b_4 = b_4^{\prime} = W_0/2 $. For example, for SLy4, $ b_4 = b_4^{\prime} = W_0/2 = 61.5~\mathrm{MeV} $.

Also, couple useful definitions

\[ t_3^{\prime} = \left(a + b\right) t_3 \, , \]

\[ C = \frac{3 }{10 m} \left( \frac{3 \pi^2 }{2} \right)^{2/3} \, , \]

and

\[ \beta = \frac{M}{2} \left[ \frac{1}{4} \left( 3 t_1 + 5 t_2 \right) \, . + t_2 x_2 \right] \\ \]


Units:

Quantities which have units containing powers of energy are divided by $\hbar c$ to ensure all quantities are in units of $ \mathrm{fm} $. The $x_i$ and $\alpha$ are unitless, while the original units of the $t_i$ are:

These are stored internally with units of:


Misc:

The functions for the usual saturation properties are based partly on Brack85.

Models are taken from the references: Bartel79, Beiner75, Chabanat95, Chabanat97, Danielewicz09, Dobaczewski94, Dutta86, Friedrich86, Onsi94, Reinhard95, and Tondeur84, and VanGiai81 .

The variables $ \nu_n$ and $ \nu_p$ contain the expressions $ (-\mu_n+V_n)/T $ and $ (-\mu_p+V_p)/T $ respectively, where $ V $ is the potential part of the single particle energy for particle i (i.e. the derivative of the Hamiltonian w.r.t. density while energy density held constant). Equivalently, $ \nu_n$ is just $ -k_{F_n}^2/ 2 m^{*} $.

Note
The finite temperature code does not include attempt to include antiparticles and uses o2scl::fermion_nonrel::calc_density(). At finite temperature, pure neutron matter implies a zero proton number density which would imply that the proton chemical potential is $ - \infty $ . This class handles this situation by just setting $ \nu_p $ to zero. The case of pure proton matter is handled similarly.
Since this EOS uses the effective masses and chemical potentials in the fermion class, the values of part::non_interacting for neutrons and protons are set to false in many of the functions.


Todo:
  • Convert W0 to b4 and b4p everywhere
  • Remove use of mnuc in calparfun()?
  • Document o2scl_hdf::skyrme_load() file format.
  • Update reference list.
Idea for Future:
  • There is some code duplication between calc_e() and calc_temp_e() which could be simplified.
  • This EOS typically converges very well. One exception seems to be using calc_temp_p() at very low densities. I have had problems, for example, with mun=5.0, mup=6.5 at T=1.0/197.33.


Definition at line 228 of file eos_had_skyrme.h.

Member Function Documentation

◆ alt_params_get()

void o2scl::eos_had_skyrme::alt_params_get ( double &  Crr00,
double &  Crr10,
double &  Crr0D,
double &  Crr1D,
double &  Crt0,
double &  Crt1,
double &  CrDr0,
double &  CrDr1,
double &  CrnJ0,
double &  CrnJ1,
double &  alpha2 
)

The parameters will have the following units

  • Crr00: $ \mathrm{fm}^2 $
  • Crr10: $ \mathrm{fm}^2 $
  • Crr0D: $ \mathrm{fm}^{3 \alpha+2} $
  • Crr1D: $ \mathrm{fm}^{3 \alpha+2} $
  • Crt0: $ \mathrm{fm}^4 $
  • Crt1: $ \mathrm{fm}^4 $
  • CrDr0: $ \mathrm{fm}^4 $
  • CrDr1: $ \mathrm{fm}^4 $
  • CrnJ0: $ \mathrm{fm}^{-1} $
  • CrnJ1: $ \mathrm{fm}^{-1} $
  • alpha2: unitless

See eos_had_skyrme::alt_params_set().

◆ alt_params_saturation()

void o2scl::eos_had_skyrme::alt_params_saturation ( double  n0,
double  EoA,
double  K,
double  Ms_star,
double  a,
double  L,
double  Mv_star,
double  CrDr0,
double  CrDr1,
double  CrnJ0,
double  CrnJ1 
)

This function uses the relations in Kortelainen10 . The parameters should have the following units

  • n0: $ \mathrm{fm}^{-3} $
  • EoA: $ \mathrm{fm}^{-1} $
  • K: $ \mathrm{fm}^{-1} $
  • Ms_star: unitless
  • a: $ \mathrm{fm}^{-1} $
  • L: $ \mathrm{fm}^{-1} $
  • Mv_star: unitless
  • CrDr0: $ \mathrm{fm}^{-3} $
  • CrDr1: $ \mathrm{fm}^{-3} $
  • CrnJ0: $ \mathrm{fm}^{-3} $
  • CrnJ1: $ \mathrm{fm}^{-3} $

Kortelainen10 assumed equal neutron and proton masses, so this function uses $ \hbar^2/(2m) = \hbar^2/(m_n+m_p) $ and the neutron and proton masses in eos_had_base::def_neutron and eos_had_base::def_proton, respectively. To obtain the results in the original paper, set neutron and proton masses to ensure that $ \hbar^2/(2m) = 20.73553~\mathrm{MeV}~\mathrm{fm}^2 $ .

◆ alt_params_set()

void o2scl::eos_had_skyrme::alt_params_set ( double  Crr00,
double  Crr10,
double  Crr0D,
double  Crr1D,
double  Crt0,
double  Crt1,
double  CrDr0,
double  CrDr1,
double  CrnJ0,
double  CrnJ1,
double  alpha2 
)

From Bender03 as in, e.g. Kortelainen14

\begin{eqnarray*} C^{\rho \rho}_{00} &=& 3 t_0/8 \nonumber \\ C^{\rho \rho}_{10} &=& -t_0/4 \left(\frac{1}{2}+x_0 \right) \nonumber \\ C^{\rho \rho}_{0D} &=& t_3/16 \nonumber \\ C^{\rho \rho}_{1D} &=& -t_3/24 \left(\frac{1}{2}+x_3\right) \nonumber \\ C^{\rho \tau}_{0} &=& 3 t_1/16+t_2/4\left(\frac{5}{4}+x_2\right) \nonumber \\ C^{\rho \tau}_{1} &=& -t_1/8 \left(\frac{1}{2}+x_1\right) + t_2/8 \left(\frac{1}{2}+x_2\right) \nonumber \\ C^{\rho \Delta \rho}_{0} &=& -9/64 t_1+t_2/16 \left(\frac{5}{4}+x_2\right) \nonumber \\ C^{\rho \Delta \rho}_{1} &=& 3/32 t_1 \left(\frac{1}{2}+x_1\right) + t_2/32 \left(\frac{1}{2}+x_2\right) \nonumber \\ C^{\rho \nabla J}_{0} &=& -b_4 -b_4^{\prime}/2 \nonumber \\ C^{\rho \nabla J}_{1} &=& -b_4^{\prime}/2 \end{eqnarray*}

The parameters should have the following units

  • Crr00: $ \mathrm{fm}^2 $
  • Crr10: $ \mathrm{fm}^2 $
  • Crr0D: $ \mathrm{fm}^{3 \alpha+2} $
  • Crr1D: $ \mathrm{fm}^{3 \alpha+2} $
  • Crt0: $ \mathrm{fm}^4 $
  • Crt1: $ \mathrm{fm}^4 $
  • CrDr0: $ \mathrm{fm}^4 $
  • CrDr1: $ \mathrm{fm}^4 $
  • CrnJ0: $ \mathrm{fm}^{-1} $
  • CrnJ1: $ \mathrm{fm}^{-1} $
  • alpha2: unitless
Todo:
These expressions are not exactly the same as those in Bender03, so I need to find out why and make this more clear.

◆ calc_temp_e()

virtual int o2scl::eos_had_skyrme::calc_temp_e ( fermion ne,
fermion pr,
double  temper,
thermo th 
)
virtual
Note
Runs the zero temperature code if temper is less than or equal to zero.

Implements o2scl::eos_had_temp_eden_base.

◆ calpar()

int o2scl::eos_had_skyrme::calpar ( double  gt0 = -10.0,
double  gt3 = 70.0,
double  galpha = 0.2,
double  gt1 = 2.0,
double  gt2 = -1.0 
)

In nuclear matter:

$ E_b=E_b(n_0,M^{*},t_0,t_3,\alpha) $
$ P=P(n_0,M^{*},t_0,t_3,\alpha) $
$ K=K(n_0,M^{*},t_3,\alpha) $ (the $ t_0 $ dependence vanishes)
$ M^{*}=M^{*}(n_0,t_1,t_2,x_2) $ (the $ x_1 $ dependence cancels),
$ E_{sym}=E_{sym}(x_0,x_1,x_2,x_3,t_0,t_1,t_2,t_3,\alpha) $

To fix the couplings from the saturation properties, we take $ n_0, M^{*}, E_b, K $ as inputs, and we can fix $ t_0,t_3,\alpha $ from the first three relations, then use $ M^{*}, E_b $ to fix $ t_2 $ and $ t_1 $. The separation into two solution steps should make for better convergence. All of the x's are free parameters and should be set before the function call.

The arguments gt0, gt3, galpha, gt1, and gt2 are used as initial guesses for skyme_eos::t0, eos_had_skyrme::t3, eos_had_skyrme::alpha, eos_had_skyrme::t1, and eos_had_skyrme::t2 respectively.

Todo:
Does this work for both 'a' and 'b' non-zero?
Todo:
Compare to similar formulas in Margueron02

◆ check_landau()

int o2scl::eos_had_skyrme::check_landau ( double  nb,
double  m 
)

This returns zero if there are no instabilities.

◆ fcomp()

virtual double o2scl::eos_had_skyrme::fcomp ( double  nb)
virtual

\[ K = 10 C n_B^{2/3} + \frac{27}{4} t_0 n_B + 40 C \beta n_B^{5/3} + \frac{9 t_3^{\prime}}{16} \alpha \left( \alpha+1 \right) n_B^{1 + \alpha} + \frac{9 t_3^{\prime}}{8} \left( \alpha+1 \right) n_B^{1 + \alpha} \]

◆ feoa()

virtual double o2scl::eos_had_skyrme::feoa ( double  nb)
virtual

\[ \frac{E}{A} = C n_B^{2/3} \left( 1 + \beta n_B \right) + \frac{3 t_0}{8} n_B + \frac{t_3^{\prime}}{16} n_B^{\alpha+1} \]

◆ fesym()

virtual double o2scl::eos_had_skyrme::fesym ( double  nb,
double  alpha = 0.0 
)
virtual

If pf=0.5, then the exact expression below is used. Otherwise, the method from class eos_had_base is used.

\[ E_{sym} = \frac{5}{9} C n^{2/3} + \frac{10 C m}{3} \left[ \frac{t_2}{6} \left(1 + \frac{5}{4} x_2 \right) - \frac{1}{8} t_1 x_1 \right] n^{5/3} - \frac{t_3^{\prime}}{24} \left({\textstyle \frac{1}{2}} + x_3 \right) n^{1+\alpha} - \frac{t_0}{4} \left( {\textstyle \frac{1}{2}} + x_0 \right) n \]

Reimplemented from o2scl::eos_had_base.

◆ fkprime()

virtual double o2scl::eos_had_skyrme::fkprime ( double  nb)
virtual

\[ 2 C n_B^{2/3} \left(9-5/M^{*}/M\right)+ \frac{27 t_3^{\prime}}{16} n^{1+\alpha} \alpha \left(\alpha^2-1\right) \]

◆ fmsom()

virtual double o2scl::eos_had_skyrme::fmsom ( double  nb)
virtual

\[ M^{*}/M = \left(1+ \beta n_B \right)^{-1} \\ \]

◆ landau_neutron()

void o2scl::eos_had_skyrme::landau_neutron ( double  n0,
double  m,
double &  f0,
double &  g0,
double &  f1,
double &  g1 
)

Given 'n0' and 'm', this calculates the Landau parameters in neutron matter as given in Margueron02

Todo:
This needs to be checked

(Checked once on 11/05/03)

◆ landau_nuclear()

void o2scl::eos_had_skyrme::landau_nuclear ( double  n0,
double  m,
double &  f0,
double &  g0,
double &  f0p,
double &  g0p,
double &  f1,
double &  g1,
double &  f1p,
double &  g1p 
)

Given n0 and m, this calculates the Landau parameters in nuclear matter as given in Margueron02

Todo:
This needs to be checked.

(Checked once on 11/05/03)

Member Data Documentation

◆ parent_method

bool o2scl::eos_had_skyrme::parent_method

This can be set to true to check the difference between the exact expressions and the numerical values from class eos_had_base.

Definition at line 381 of file eos_had_skyrme.h.

◆ W0

double o2scl::eos_had_skyrme::W0

This is unused, but included for possible future use and present in the internally stored models.

Definition at line 262 of file eos_had_skyrme.h.


The documentation for this class was generated from the following file:

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