#include <rmf_eos.h>
It is important to point out that expressions for the energy densities are often simplified in the literature using the field equations. These expressions are not used in this code since they are only applicable in infinite matter where the field equations hold, and are not suitable for use in applications (such as to finite nuclei) where the spatial derivatives of the fields are non-zero. Notice that in the proper expressions for the energy density the similarity between terms in the pressure up to a sign. This procedure allows one to verify the thermodynamic identity even if the field equations are not solved and allows the user to add gradient terms to the energy density and pressure.
The full Lagragian is:
The coefficients and
are related to the somewhat standard
and
by:
The function is the coefficient of
where the notation from Horowitz01 is:
This implies and
The field equations are:
When the variable zm_mode is true, the effective mass is fixed using the approach of Zimanyi90 .
Defining
the binding energy per particle in symmetric matter at equilibrium is given by
where the Dirac effective mass is . The compressibility is given by
The symmetry energy of bulk matter is given by
In the above equations, the subscipt `` '' denotes the mean field values of
and
. For the case
, the symmetry energy varies linearly with the density at large densities. The function
permits variations in the density dependence of the symmetry energy above nuclear matter density.
Definition at line 214 of file rmf_eos.h.
Solver | |
gsl_mroot_hybrids< int, mm_funct< int > > | def_sat_mroot |
The default solver for calculating the saturation density. | |
virtual int | set_sat_mroot (mroot< int, mm_funct< int > > &mrx) |
Set class mroot object for use calculating saturation density. | |
Public Member Functions | |
int | load (std::string model, bool external=false) |
Load parameters for model named 'model'. | |
virtual const char * | type () |
Return string denoting type ("rmf_eos"). | |
int | check_naturalness (rmf_eos &re) |
Set the coefficients of a rmf_eos object to their limits from naturalness. | |
int | naturalness_limits (double value, rmf_eos &re) |
Provide the maximum values of the couplings assuming a limit on naturalness. | |
Compute EOS | |
virtual int | calc_e (fermion &ne, fermion &pr, thermo <h) |
Equation of state as a function of density. | |
virtual int | calc_e_fields (fermion &ne, fermion &pr, thermo <h, double &sig, double &ome, double &rho) |
Equation of state as a function of density returning the meson fields. | |
virtual int | calc_p (fermion &ne, fermion &pr, thermo <h) |
Equation of state as a function of chemical potential. | |
virtual int | calc_eq_p (fermion &neu, fermion &p, double sig, double ome, double rho, double &f1, double &f2, double &f3, thermo &th) |
Equation of state and meson field equations as a function of chemical potentials. | |
virtual int | calc_eq_temp_p (fermion_T &ne, fermion_T &pr, double temper, double sig, double ome, double rho, double &f1, double &f2, double &f3, thermo &th) |
Equation of state and meson field equations as a function of chemical potentials. | |
virtual int | calc_temp_p (fermion_T &ne, fermion_T &pr, double T, thermo <h) |
Equation of state as a function of chemical potential. | |
int | calc_temp_e (fermion_T &ne, fermion_T &pr, double T, thermo <h) |
Equation of state as a function of densities at finite temperature. | |
Saturation properties | |
int | fix_saturation (double guess_cs=4.0, double guess_cw=3.0, double guess_b=0.001, double guess_c=-0.001) |
Calculate cs, cw, cr, b, and c from the saturation properties. | |
virtual int | saturation () |
Calculate properties for nuclear matter at the saturation density. | |
double | fesym_fields (double sig, double ome, double nb) |
Calculate symmetry energy assuming the field equations have already been solved. | |
double | fcomp_fields (double sig, double ome, double nb) |
Calculate the compressibility assuming the field equations have already been solved. | |
int | fkprime_fields (double sig, double ome, double nb, double &k, double &kprime) |
Calculate compressibilty and kprime assuming the field equations have already been solved. | |
Fields and field equations | |
int | field_eqs (size_t nv, const ovector_base &x, ovector_base &y, double *&pa) |
A function for solving the field equations. | |
int | field_eqsT (size_t nv, const ovector_base &x, ovector_base &y, double *&pa) |
A function for solving the field equations at finite temperature. | |
virtual int | set_fields (double sig, double ome, double lrho) |
Set a guess for the fields for the next call to calc_e(), calc_p(), or saturation(). | |
int | get_fields (double &sig, double &ome, double &lrho) |
Return the most recent values of the meson fields. | |
Data Fields | |
bool | zm_mode |
Modifies method of calculating effective masses. | |
Masses | |
double | mnuc |
nucleon mass | |
double | ms |
![]() ![]() | |
double | mw |
![]() ![]() | |
double | mr |
![]() ![]() | |
Standard couplings (including nonlinear sigma terms) | |
double | cs |
double | cw |
double | cr |
double | b |
double | c |
Non-linear terms for omega and rho. | |
double | zeta |
double | xi |
Additional isovector couplings | |
double | a1 |
double | a2 |
double | a3 |
double | a4 |
double | a5 |
double | a6 |
double | b1 |
double | b2 |
double | b3 |
Protected Member Functions | |
int | fix_saturation_fun (size_t nv, const ovector_base &x, ovector_base &y, int &pa) |
The function for fix_saturation(). | |
virtual int | zero_pressure (size_t nv, const ovector_base &ex, ovector_base &ey, int &pa) |
Compute matter at zero pressure (for saturation()). | |
virtual int | calc_e_solve_fun (size_t nv, const ovector_base &ex, ovector_base &ey, double *&pa) |
The function for calc_e(). | |
virtual int | calc_temp_e_solve_fun (size_t nv, const ovector_base &ex, ovector_base &ey, double *&pa) |
The function for calc_temp_e(). | |
int | calc_cr (double sig, double ome, double nb) |
Calculate the cr coupling given sig and ome at the density 'nb'. | |
Protected Attributes | |
double | n_charge |
Temporary charge density. | |
double | fe_temp |
Temperature for solving field equations at finite temperature. | |
bool | ce_neut_matter |
For calc_e(), if true, then solve for neutron matter. | |
bool | ce_prot_matter |
For calc_e(), if true, then solve for proton matter. | |
bool | guess_set |
True if a guess for the fields has been given. | |
mroot< int, mm_funct< int > > * | sat_mroot |
The solver to compute saturation properties. | |
double | ce_temp |
Temperature storage for calc_temp_e(). | |
The meson fields | |
double | sigma |
double | omega |
double | rho |
int calc_cr | ( | double | sig, | |
double | ome, | |||
double | nb | |||
) | [protected] |
Used by fix_saturation().
Initial guesses for the chemical potentials are taken from the user-given values. Initial guesses for the fields can be set by set_fields(), or default values will be used. After the call to calc_e(), the final values of the fields can be accessed through get_fields().
This is a little more robust than the standard version in the parent hadronic_eos.
Reimplemented from hadronic_eos_temp_pres.
Reimplemented in rmf_delta_eos.
virtual int calc_e_fields | ( | fermion & | ne, | |
fermion & | pr, | |||
thermo & | lth, | |||
double & | sig, | |||
double & | ome, | |||
double & | rho | |||
) | [virtual] |
virtual int calc_eq_p | ( | fermion & | neu, | |
fermion & | p, | |||
double | sig, | |||
double | ome, | |||
double | rho, | |||
double & | f1, | |||
double & | f2, | |||
double & | f3, | |||
thermo & | th | |||
) | [virtual] |
This calculates the pressure and energy density as a function of . When the field equations have been solved,
f1
, f2
, and f3
are all zero.
The thermodynamic identity is satisfied even when the field equations are not solved.
Solves for the field equations automatically.
Implements hadronic_eos_temp_pres.
Solves for the field equations automatically.
Implements hadronic_eos_temp_pres.
int check_naturalness | ( | rmf_eos & | re | ) | [inline] |
As given in muller and Serot, npa 606, 508
The definition of the vector-isovector field and coupling matches what is done here. Compare the Lagrangian above with Eq. 10 from the reference.
The following couplings should all be of the same size:
which are equivalent to
The connection the 's and the coefficients that are used here is
Note that Muller and Serot use the notation
which differs slightly from the "standard" notation above.
We need to compare the values of
These values are stored in the variables cs, cw, cr, b, c, zeta, xi, b1, etc. in the specified rmf_eos object. All of the numbers should be around 0.001 or 0.002.
For the scale , mnuc is used.
double fcomp_fields | ( | double | sig, | |
double | ome, | |||
double | nb | |||
) |
This may only work at saturation density.
double fesym_fields | ( | double | sig, | |
double | ome, | |||
double | nb | |||
) |
This may only work at saturation density. Used by saturation().
int field_eqs | ( | size_t | nv, | |
const ovector_base & | x, | |||
ovector_base & | y, | |||
double *& | pa | |||
) |
x[0], x[1], and x[2] should be set to , and
on input (in
) and on exit, y[0], y[1] and y[2] contain the field equations and are zero when the field equations have been solved. The
pa
parameter is ignored.
int field_eqsT | ( | size_t | nv, | |
const ovector_base & | x, | |||
ovector_base & | y, | |||
double *& | pa | |||
) |
x[0], x[1], and x[2] should be set to , and
on input (in
) and on exit, y[0], y[1] and y[2] contain the field equations and are zero when the field equations have been solved. The
pa
parameter is ignored.
int fix_saturation | ( | double | guess_cs = 4.0 , |
|
double | guess_cw = 3.0 , |
|||
double | guess_b = 0.001 , |
|||
double | guess_c = -0.001 | |||
) |
Note that the meson masses and mnuc must be specified before calling this function.
This function does not give correct results when bool zm_mode is true.
guess_cs
, guess_cw
, guess_b
, and guess_c
are initial guesses for cs
, cw
, b
, and c
respectively.
int fkprime_fields | ( | double | sig, | |
double | ome, | |||
double | nb, | |||
double & | k, | |||
double & | kprime | |||
) |
This may only work at saturation density. Used by saturation().
int get_fields | ( | double & | sig, | |
double & | ome, | |||
double & | lrho | |||
) | [inline] |
int load | ( | std::string | model, | |
bool | external = false | |||
) |
Presently accepted values from file rmfdata/model_list:
word[] models 46 BMPI BMPII FPWC FSUGold L-BF L-HS L-W L-Z L1 L2 L3 NL-06 NL-065 NL-07 NL-075 NL-B1 NL-B2 NL-SH NL-Z NL1 NL2 NL3 NL4 PL-40 PL-Z RAPR RAPRhdp S271 SR1 SR2 SR3 TM1 TM2 Z271 es25 es25n15 es275 es275n15 es30 es30n15 es325 es325n15 es35 es35n15 es25small es25new es275new es30new # # Comments: # PL-40 and PL-Z have a special m_infinity parameter that is # described in P.-G. Reinhard, Rep. Prog. Phys., 52 (1989) 439 that # I don't quite understand. For spher1d, these need to be run manually # using the input files in ~/spher1d/data. # #
In these files, the nucleon and meson masses are by default specified in MeV, and cs, cw, and cr are given in fm. The parameters b and c are both unitless. If the bool 'oakstyle' is true, then load() assumes that gs, gw, and gr have been given where gs and gw are as usual, but gr is a factor of two smaller than usual, and g2 and g3 have been given where g2 = -b M gs^3 and g3 = c gs^4. If tokistyle is true, then it is additionally assumed that c3 is given where c3=zeta/6*gw^4.
If external
is true, then model is the filename (relative to the current directory) of the file containing the model parameters. Otherwise, the model is assumed to be present in the O2scl library data directory.
int naturalness_limits | ( | double | value, | |
rmf_eos & | re | |||
) | [inline] |
virtual int saturation | ( | ) | [virtual] |
This requires initial guesses to the chemical potentials, etc.
Reimplemented from hadronic_eos.
Reimplemented in rmf_delta_eos.
gsl_mroot_hybrids<int,mm_funct<int> > def_sat_mroot |
Used by fn0() (which is called by saturation()) to solve saturation_matter_e() (1 variable).
double mnuc |
double n_charge [protected] |
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