#include <skyrme_eos.h>
Quantities which have units containing powers of energy are divided by to ensure all quantities are in units of
. The
and
are unitless, while the original units of the
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. gives the standard definition of the Skyrme Hamiltonian (ref?), while
contains the modifications suggested by Osni94. Check also Dutta86.
The kinetic terms are:
The potential terms are:
The gradient terms are displayed here for completeness even though they are not computed in the code:
A couple useful definitions:
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().
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 <) |
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 ![]() ![]() | |
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. |
skyrme_eos | ( | std::string | model | ) |
Load the model named 'model'.
See comments under skyrme_eos::load().
virtual double feoa | ( | double | nb | ) | [virtual] |
Calculate binding energy.
virtual double fmsom | ( | double | nb | ) | [virtual] |
Calculate effective mass.
virtual double fcomp | ( | double | nb | ) | [virtual] |
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.
Reimplemented from hadronic_eos.
virtual double fkprime | ( | double | nb | ) | [virtual] |
int calpar | ( | double | gt0 = -10.0 , |
|
double | gt3 = 70.0 , |
|||
double | galpha = 0.2 , |
|||
double | gt1 = 2.0 , |
|||
double | gt2 = -1.0 | |||
) |
Calculate and
from the saturation properties.
In nuclear matter:
(the
dependence vanishes)
(the
dependence cancels),
To fix the couplings from the saturation properties, we take as inputs, and we can fix
from the first three relations, then use
to fix
and
. 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.
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
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
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.
Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.
Project hosting provided by
,
O2scl Sourceforge Project Page