skyrme_eos Class Reference

#include <skyrme_eos.h>

Inheritance diagram for skyrme_eos:

hadronic_eos eos skyrme4_eos

Detailed Description

Skyrme hadronic equation of state at zero temperature.

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

These are stored internally with units of:

The class skyrme_eos_io uses o2scl_const::hc_mev_fm for I/O so that all files contain the parameters in the original units.

The chemical potentials do include the rest mass energy.

n.ed and p.ed contain tau_n and tau_p which are in fm^{-5}, not fm^{-4}.

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

The Hamiltonian is defined below. $a=0,b=1$ gives the standard definition of the Skyrme Hamiltonian (ref?), while $a=1,b=0$ contains the modifications suggested by Osni94. Check also Dutta86.

\[ {\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] \]

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 \]

A 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} \]

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

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

See Mathematica notebook at skyrme_eos.nb, and skyrme_eos.ps.

Finite temperature documentation

The finite temperature extension is performed using the method Prakash97 (see also the Windsurfing the Fermi Sea proceedings by Prakash).

Returned chemical potentials include the rest mass, and energy densities include the rest mass energy density.

The variables n.nu and p.nu contain the expressions (-mu_n+V_n)/temper and (-mu_p+V_p)/temper respectively, where V is the potential part of the single particle energy for particle i (i.e. the derivative of the Hamiltonian wrt density while energy density held constant). Equivalently, n.nu is just -n.kf^2/2/mstar.

For y>4 we use a non-degenerate expansion, and for y<-40 we use a Sommerfeld expansion. For y>50 the code fails, but this is well outside the regime of applicability of this model.

Runs the zero temperature code if temper<=0.0.

The finite temperature code does not include attempt to include antiparticles and uses part::calc_density().

Note:
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.
Todos

Todo:

Definition at line 224 of file skyrme_eos.h.


Public Member Functions

 skyrme_eos (std::string model)
 Load the model named 'model'.
virtual ~skyrme_eos ()
virtual int calc_temp_e (fermion &ne, fermion &pr, const double temper, thermo &th)
 Equation of state as a function of densities.
virtual int calc_e (fermion &ne, fermion &pr, thermo &lt)
 Equation of state as a function of density.
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.
int load (std::string model, bool external=false)
 Load parameters from model 'model'.
int check_landau (double nb, double m)
 Check the Landau parameters for instabilities.
int 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.
int landau_neutron (double n0, double m, double &f0, double &g0, double &f1, double &g1)
 Calculate the Landau parameters for neutron matter.
virtual const char * type ()
 Return string denoting type ("skyrme_eos").
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.
virtual double fmsom (double nb)
 Calculate effective mass.
virtual double fcomp (double nb)
 Calculate compressibility.
virtual double fesym (const double nb, const double pf=0.5)
 Calculate symmetry energy.
virtual double fkprime (double nb)
 skewness

Data Fields

double t0
double t1
double t2
double t3
double x0
double x1
double x2
double x3
double alpha
double a
double b
double W0
 Spin-orbit splitting.
bool parent_method
 Use hadronic_eos methods for saturation properties.
nonrel_fermion def_nr_neutron
 Default nonrelativistic neutron.
nonrel_fermion def_nr_proton
 Default nonrelativistic proton.

Constructor & Destructor Documentation

skyrme_eos ( std::string  model  ) 

Load the model named 'model'.

See comments under skyrme_eos::load().


Member Function Documentation

virtual double feoa ( double  nb  )  [virtual]

Calculate binding energy.

\[ \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} \]

virtual double fmsom ( double  nb  )  [virtual]

Calculate effective mass.

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

virtual double fcomp ( double  nb  )  [virtual]

Calculate compressibility.

\[ 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} \]

Reimplemented from hadronic_eos.

virtual double fesym ( const double  nb,
const double  pf = 0.5 
) [virtual]

Calculate symmetry energy.

If pf=0.5, then the exact expression below is used. Otherwise, the method from class hadronic_eos 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 hadronic_eos.

virtual double fkprime ( double  nb  )  [virtual]

skewness

\[ 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) \]

Reimplemented from hadronic_eos.

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.

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 t0, t3, alpha, t1, and t2 respectively.

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

int load ( std::string  model,
bool  external = false 
)

Load parameters from model 'model'.

Presently accepted values from file skdata/model_list:

word[] models 81
E Es FitA FitB FitK FitKs FitL Gs Ly5 NRAPR NRAPR2 PeEVs PeHF PeSIs 
RATP Rs SGI SGII SI SII SIII SIIIs SIV SLy0 SLy1 SLy10 SLy2 SLy230a 
SLy230b SLy3 SLy4 SLy5 SLy6 SLy7 SLy8 SLy9 SV SVI SVII SkI1 SkI2 SkI3 
SkI4 SkI5 SkI6 SkM SkMDIx0 SkMDIx1 SkMDIxm1 SkMDIxm2 SkMP SkMs SkNF1 
SkNF2 SkO SkOp SkP SkSC10 SkSC4 SkSC5 SkSC6 SkT SkT1 SkT1s SkT2 SkT3 
SkT3s SkT4 SkT5 SkT6 SkT7 SkT8 SkT9 SkkT8 Z Zs Zss mst1 mst0.81 mst0.90 
SIp

If external is true, then model is the filename (relative to the current directory) of the file containing the model parameters

int check_landau ( double  nb,
double  m 
)

Check the Landau parameters for instabilities.

This returns zero if there are no instabilities.

int 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.

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)

int landau_neutron ( double  n0,
double  m,
double &  f0,
double &  g0,
double &  f1,
double &  g1 
)

Calculate the Landau parameters for neutron matter.

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)


Field Documentation

double W0

Spin-orbit splitting.

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

Definition at line 235 of file skyrme_eos.h.

bool parent_method

Use hadronic_eos methods for saturation properties.

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

Definition at line 382 of file skyrme_eos.h.


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

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