#include <skyrme_eos.h>
The Hamiltonian is defined as
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:
The values give the standard definition of the Skyrme Hamiltonian Skyrme59, while
contains the modifications suggested by Onsi94.
Also, couple useful definitions
and
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 functions for the usual saturation properties are based partly on Brack85.
Models are taken from the references: Bartel79, Beiner75, Chabanat95, Chabanat97, Danielewicz08, Dobaczewski94, Dutta86, Friedrich86, Onsi94, Reinhard95, and Tondeur84, and VanGiai81 .
See Mathematica notebook at skyrme_eos.nb, and skyrme_eos.ps.
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.
The finite temperature code does not include attempt to include antiparticles and uses part::calc_density().
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.
Definition at line 209 of file skyrme_eos.h.
Public Member Functions | |
skyrme_eos (std::string model) | |
Load the model named 'model'. | |
virtual int | calc_temp_e (fermion_T &ne, fermion_T &pr, 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 (double nb, 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 | ) |
See comments under skyrme_eos::load().
int calpar | ( | double | gt0 = -10.0 , |
|
double | gt3 = 70.0 , |
|||
double | galpha = 0.2 , |
|||
double | gt1 = 2.0 , |
|||
double | gt2 = -1.0 | |||
) |
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 check_landau | ( | double | nb, | |
double | m | |||
) |
This returns zero if there are no instabilities.
virtual double fcomp | ( | double | nb | ) | [virtual] |
virtual double feoa | ( | double | nb | ) | [virtual] |
virtual double fesym | ( | double | nb, | |
double | pf = 0.5 | |||
) | [virtual] |
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] |
virtual double fmsom | ( | double | nb | ) | [virtual] |
int 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
int 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
int load | ( | std::string | model, | |
bool | external = false | |||
) |
Presently accepted values from file skdata/model_list:
word[] models 164 a b BSk1 BSk10 BSk11 BSk12 BSk13 BSk14 BSk16 BSk2 BSk2p BSk3 BSk4 BSk5 BSk6 BSk7 BSk8 BSk9 E Es FitA FitB FitK FitKs FitL Gs KDE0v KDE0v1 LNS Ly5 MSk1 MSk2 MSk3 MSk4 MSk5 MSk5s MSk6 MSk7 MSk8 MSk9 MSkA mst0.81 mst0.90 mst1 NRAPR NRAPR2 PeEVs PeHF PeSIs QMC1 QMC2 QMC3 RATP Rs SGI SGII SI SII SIII SIIIs SIp SIV SK255 SK272 SkI1 SkI2 SkI3 SkI4 SkI5 SkI6 SkkT8 SkM SkM1 SkMDIx0 SkMDIx1 SkMDIxm1 SkMDIxm2 SkMP SkMs SkNF1 SkNF2 SkO SkOp SkP SKRA SkSC1 SkSC10 SkSC11 SkSC14 SkSC15 SkSC2 SkSC3 SkSC4 SkSC4o SkSC5 SkSC6 SkT SkT1 SkT1s SkT2 SkT3 SkT3s SkT4 SkT5 SkT6 SkT7 SkT8 SkT9 SkTK SkX SkXce SkXm Skxs15 Skxs20 Skxs25 Skyrme1p SKz0 SKz1 SKz2 SKz3 SKz4 SKzm1 SLy0 SLy1 SLy10 SLy2 SLy230a SLy230b SLy3 SLy4 SLy5 SLy6 SLy7 SLy8 SLy9 SV SVI SVII SV-K241 SV-kap06 SV-mas10 SV-sym32 SV-bas SV-K218 SV-kap00 SV-mas07 SV-min SV-sym34 SV-K226 SV-kap02 SV-mas08 SV-sym28 SV-tls T v070 v075 v080 v090 v100 v105 v110 Z Zs Zss
If external
is true, then model is the filename (relative to the current directory) of the file containing the model parameters
bool parent_method |
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 367 of file skyrme_eos.h.
double W0 |
This is unused, but included for possible future use and present in the internally stored models.
Definition at line 220 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