![]() |
Equation of State Sub-Library: Version 0.910
|
Skyrme hadronic equation of state. More...
#include <skyrme_eos.h>
Equation of state of nucleonic matter based on the Skryme interaction from Skyrme59 .
The Hamiltonian is defined (using the notation of Steiner05b )
The kinetic terms are:
where are defined
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 and
contain the expressions
and
respectively, where
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,
is just
.
Definition at line 218 of file skyrme_eos.h.
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 ![]() ![]() | |
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") | |
Basic usage | |
skyrme_eos () | |
Create a blank Skyrme EOS. | |
virtual | ~skyrme_eos () |
Destructor. | |
virtual int | calc_temp_e (fermion &ne, fermion &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. | |
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 alpha=0.0) |
Calculate symmetry energy. | |
virtual double | fkprime (double nb) |
skewness | |
Data Fields | |
double | W0 |
Spin-orbit splitting. | |
bool | parent_method |
Use hadronic_eos methods for saturation properties. | |
bool | mu_at_zero_density |
Desc. | |
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 |
virtual int skyrme_eos::calc_temp_e | ( | fermion & | ne, |
fermion & | pr, | ||
double | temper, | ||
thermo & | th | ||
) | [virtual] |
temper
is less than or equal to zero. Implements hadronic_eos_temp_eden.
virtual double skyrme_eos::feoa | ( | double | nb | ) | [virtual] |
virtual double skyrme_eos::fmsom | ( | double | nb | ) | [virtual] |
virtual double skyrme_eos::fcomp | ( | double | nb | ) | [virtual] |
virtual double skyrme_eos::fesym | ( | double | nb, |
double | alpha = 0.0 |
||
) | [virtual] |
If pf=0.5, then the exact expression below is used. Otherwise, the method from class hadronic_eos is used.
virtual double skyrme_eos::fkprime | ( | double | nb | ) | [virtual] |
int skyrme_eos::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 skyme_eos::t0, skyrme_eos::t3, skyrme_eos::alpha, skyrme_eos::t1, and skyrme_eos::t2 respectively.
int skyrme_eos::check_landau | ( | double | nb, |
double | m | ||
) |
This returns zero if there are no instabilities.
int skyrme_eos::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
(Checked once on 11/05/03)
int skyrme_eos::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
(Checked once on 11/05/03)
double skyrme_eos::W0 |
This is unused, but included for possible future use and present in the internally stored models.
Definition at line 231 of file skyrme_eos.h.
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 362 of file skyrme_eos.h.
Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).