#include <hadronic_eos.h>
In the method documentation below, is baryon number density,
is energy density, and
is pressure.
See more about Svprime in the Mathematica notebook at hadronic_eos.nb, and hadronic_eos.ps.
Definition at line 67 of file hadronic_eos.h.
Switch for overloading [protected] | |
The integer 'provides' needs to be set by children corresponding to which calc() functions are overloaded. Use the above integers in combination with the bitwise or '|' operator. For example, in the constructor of a descendant, you might set provides=(provides_calc_e | provides_calc_temp_e); | |
int | provides |
static const int | provides_calc_e = 1 |
static const int | provides_calc_p = 2 |
static const int | provides_calc_temp_e = 4 |
static const int | provides_calc_temp_p = 8 |
Public Member Functions | |
virtual | ~hadronic_eos () |
int | gradient_qij (fermion &n, fermion &p, thermo &th, double &qnn, double &qnp, double &qpp, double &dqnndnn, double &dqnndnp, double &dqnpdnn, double &dqnpdnp, double &dqppdnn, double &dqppdnp) |
Calculate coefficients for gradient part of Hamiltonian. | |
virtual const char * | type () |
Return string denoting type ("hadronic_eos"). | |
Equation of state | |
virtual int | calc_p (fermion &n, fermion &p, thermo &th) |
Equation of state as a function of the chemical potentials. | |
virtual int | calc_temp_p (fermion &n, fermion &p, const double T, thermo &th) |
Equation of state as a function of the chemical potentials at finite temperature. | |
virtual int | calc_e (fermion &n, fermion &p, thermo &th) |
Equation of state as a function of density. | |
virtual int | calc_temp_e (fermion &n, fermion &p, const double T, thermo &th) |
Equation of state as a function of densities at finite temperature. | |
Physical properties | |
virtual double | fcomp (const double nb) |
Calculate compressibility of nuclear matter using calc_e(). | |
virtual double | feoa (const double nb, const double pf=0.5) |
Calculate binding energy using calc_e(). | |
virtual double | fesym (const double nb, const double pf=0.5) |
Calculate symmetry energy of matter using calc_e(). | |
virtual double | fesym_slope (const double nb, bool alt_sym=false) |
The symmetry energy slope parameter. | |
virtual double | fesym_diff (const double nb) |
Calculate symmetry energy of matter as energy of neutron matter minus the energy of nuclear matter. | |
virtual double | fsprime (const double nb, const double pf=0.5) |
Calculate ![]() | |
virtual double | fkprime (const double nb) |
Calculate skewness of nuclear matter using calc_e(). | |
virtual double | fmsom (const double nb, const double pf=0.5) |
Calculate reduced neutron effective mass using calc_e(). | |
virtual double | fn0 (const double protfrac, double &leoa) |
Calculate saturation density using calc_e(). | |
virtual int | saturation () |
Calculates all of the properties at the saturation density. | |
Functions for calculating physical properties | |
double | calc_pressure (double nb, void *&pa) |
Calculate pressure as a function of baryon density. | |
double | calc_press_on2 (double nb, void *&pa) |
Calculate pressure / baryon density squared as a function of baryon density. | |
double | calc_edensity (double delta, void *&pa) |
Calculate energy density as a function of 'delta'. | |
double | calc_esym (double delta, void *&pa) |
Calculate symmetry energy as a function of 'delta'. | |
int | saturation_matter_e (double x, double &y, void *&pa) |
Solve for zero pressure as a function of baryon density. | |
Other functions | |
int | nuc_matter_p (size_t nv, const ovector_view &x, ovector_view &y, void *&pa) |
Nucleonic matter from calc_p(). | |
int | nuc_matter_e (size_t nv, const ovector_view &x, ovector_view &y, void *&pa) |
Nucleonic matter from calc_e(). | |
Set auxilliary objects | |
virtual int | set_mroot (mroot< void *, mm_funct< void * > > &mr) |
Set class mroot object for use in calculating chemical potentials from densities. | |
virtual int | set_sat_root (root< void *, funct< void * > > &mr) |
Set class mroot object for use calculating saturation density. | |
virtual int | set_sat_deriv (deriv< void *, funct< void * > > &de) |
Set deriv object to use to find saturation properties. | |
virtual int | set_sat_deriv2 (deriv< bool, funct< bool > > &de) |
Set deriv object to use to find saturation properties. | |
virtual int | set_n_and_p (fermion &n, fermion &p) |
Set neutron and proton. | |
Data Fields | |
double | eoa |
Binding energy. | |
double | comp |
Compressibility. | |
double | esym |
Symmetry energy. | |
double | n0 |
Saturation density. | |
double | msom |
Effective mass. | |
double | kprime |
Skewness. | |
double | sprime |
Symmetry energy derivative. | |
gsl_deriv< void *, funct< void * > > | def_deriv |
The default object for derivatives. | |
gsl_deriv< bool, funct< bool > > | def_deriv2 |
The second default object for derivatives. | |
fermion | def_neutron |
The defaut neutron. | |
fermion | def_proton |
The defaut proton. | |
gsl_mroot_hybrids < void *, mm_funct < void * > > | def_mroot |
The default solver. | |
cern_mroot_root < void *, funct < void * > > | def_sat_root |
The default solver for calculating the saturation density. | |
Protected Member Functions | |
double | t1_fun (double barn, void *&vp) |
Compute t1 for gradient_qij(). | |
double | t2_fun (double barn, void *&vp) |
Compute t2 for gradient_qij(). | |
double | calc_esym (double nb, bool &alt) |
Return the symmetry energy at density nb . | |
Protected Attributes | |
mroot< void *, mm_funct< void * > > * | eos_mroot |
The EOS solver. | |
root< void *, funct < void * > > * | sat_root |
The solver to compute saturation properties. | |
deriv< void *, funct < void * > > * | sat_deriv |
The derivative object for saturation properties. | |
deriv< bool, funct < bool > > * | sat_deriv2 |
The second derivative object for saturation properties. | |
fermion * | neutron |
The neutron object. | |
fermion * | proton |
The proton object. | |
double | proton_frac |
Temporary proton fraction. | |
double | n_baryon |
Temporary baryon number. |
virtual double fcomp | ( | const double | nb | ) | [virtual] |
Calculate compressibility of nuclear matter using calc_e().
The compression modulus is defined here by: It is customary to use the incompressibility modulus
. This is the value denoted
comp
in the code and can be written: . It is often referred to as the "compressibility" and is about 220 MeV at saturation density. (Taken from Chabanat, et. al. NPA 627 (1997) 710.) Note that this differs from
by
at any density except the saturation density.
Reimplemented in apr_eos, and skyrme_eos.
virtual double feoa | ( | const double | nb, | |
const double | pf = 0.5 | |||
) | [virtual] |
Calculate binding energy using calc_e().
eoa
= (energy density/baryon number density-nucleon mass) at .
virtual double fesym | ( | const double | nb, | |
const double | pf = 0.5 | |||
) | [virtual] |
Calculate symmetry energy of matter using calc_e().
esym
=
where ,
and
is the proton fraction (for x=0.5 at saturation density, esym
)
Reimplemented in skyrme_eos.
virtual double fesym_slope | ( | const double | nb, | |
bool | alt_sym = false | |||
) | [virtual] |
The symmetry energy slope parameter.
This returns the value of the "slope parameter" of the symmetry energy
in inverse Fermis.
where is the baryon density. This ranges between about zero and 200 MeV for many EOSs. If
alt_sym
is false (the default), then fesym() is used to compute the symmetry energy, otherwise fesym_diff() is used.
virtual double fesym_diff | ( | const double | nb | ) | [virtual] |
Calculate symmetry energy of matter as energy of neutron matter minus the energy of nuclear matter.
This function returns the energy per baryon of neutron matter minus the energy per baryon of nuclear matter. This will deviate significantly from the results from fesym() only if the dependence of the symmetry energy on is not quadratic.
Reimplemented in apr_eos.
virtual double fsprime | ( | const double | nb, | |
const double | pf = 0.5 | |||
) | [virtual] |
virtual double fkprime | ( | const double | nb | ) | [virtual] |
Calculate skewness of nuclear matter using calc_e().
The skewness is defined to be
and is denoted 'kprime'. This definition seems to be ambiguous for densities other than the saturation density and is not quite analogous to the compressibility.
Reimplemented in skyrme_eos.
virtual double fmsom | ( | const double | nb, | |
const double | pf = 0.5 | |||
) | [virtual] |
Calculate reduced neutron effective mass using calc_e().
Neutron effective mass (n.ms) divided by vacuum mass (n.m) in nuclear matter at saturation density. Note that this simply uses the value of n.ms from calc_e(), so that this effective mass could be either the Landau or Dirac mass depending on the context. Note that this may not be equal to the reduced proton effective mass.
virtual double fn0 | ( | const double | protfrac, | |
double & | leoa | |||
) | [virtual] |
Calculate saturation density using calc_e().
This function finds the density for which the pressure vanishes in matter with .
= baryon number density at which
int gradient_qij | ( | fermion & | n, | |
fermion & | p, | |||
thermo & | th, | |||
double & | qnn, | |||
double & | qnp, | |||
double & | qpp, | |||
double & | dqnndnn, | |||
double & | dqnndnp, | |||
double & | dqnpdnn, | |||
double & | dqnpdnp, | |||
double & | dqppdnn, | |||
double & | dqppdnp | |||
) |
Calculate coefficients for gradient part of Hamiltonian.
The expression for the gradient terms from Pethick95 is
This can be rewritten
or
or
Generally, for Skyrme-like interactions
for .
This function uses the assumption to calculate
and
from the neutron and proton effective masses assuming the Skyrme form. The values of
and their derivatives are then computed.
The functions set_n_and_p() and set_thermo() will be called by gradient_qij(), to facilitate the use of the n
, p
, and th
parameters.
double calc_pressure | ( | double | nb, | |
void *& | pa | |||
) |
Calculate pressure as a function of baryon density.
Used by fcomp().
double calc_press_on2 | ( | double | nb, | |
void *& | pa | |||
) |
Calculate pressure / baryon density squared as a function of baryon density.
Used by fkprime().
double calc_edensity | ( | double | delta, | |
void *& | pa | |||
) |
Calculate energy density as a function of 'delta'.
Used by fesym().
double calc_esym | ( | double | delta, | |
void *& | pa | |||
) |
Calculate symmetry energy as a function of 'delta'.
Used by fsprime().
int saturation_matter_e | ( | double | x, | |
double & | y, | |||
void *& | pa | |||
) |
Solve for zero pressure as a function of baryon density.
Used by fn0().
double calc_esym | ( | double | nb, | |
bool & | alt | |||
) | [protected] |
Return the symmetry energy at density nb
.
Used by fesym_slope().
The default object for derivatives.
The value of gsl_deriv::h is set to in the hadronic_eos constructor.
Definition at line 409 of file hadronic_eos.h.
gsl_deriv<bool,funct<bool> > def_deriv2 |
The second default object for derivatives.
The value of gsl_deriv::h is set to in the hadronic_eos constructor.
Definition at line 417 of file hadronic_eos.h.
gsl_mroot_hybrids<void *,mm_funct<void *> > def_mroot |
The default solver.
Used by calc_e() and calc_temp_e() to solve nuc_matter_p() (2 variables) and by calc_p() and calc_temp_p() to solve nuc_matter_e() (2 variables).
Definition at line 432 of file hadronic_eos.h.
cern_mroot_root<void *,funct<void *> > def_sat_root |
The default solver for calculating the saturation density.
Used by fn0() (which is called by saturation()) to solve saturation_matter_e() (1 variable).
Definition at line 440 of file hadronic_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