#include <hadronic_eos.h>
See more about Svprime in the Mathematica notebook at hadronic_eos.nb, and hadronic_eos.ps.
Definition at line 66 of file hadronic_eos.h.
Public Member Functions | |
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)=0 |
Equation of state as a function of the chemical potentials. | |
virtual int | calc_e (fermion &n, fermion &p, thermo &th)=0 |
Equation of state as a function of density. | |
Physical properties | |
virtual double | fcomp (double nb) |
Calculate compressibility of nuclear matter using calc_e(). | |
virtual double | feoa (double nb, double pf=0.5) |
Calculate binding energy using calc_e(). | |
virtual double | fesym (double nb, double pf=0.5) |
Calculate symmetry energy of matter using calc_e(). | |
virtual double | fesym_slope (double nb, bool alt_sym=false) |
The symmetry energy slope parameter. | |
virtual double | fesym_diff (double nb) |
Calculate symmetry energy of matter as energy of neutron matter minus the energy of nuclear matter. | |
virtual double | fsprime (double nb, double pf=0.5) |
Calculate ![]() | |
virtual double | fkprime (double nb) |
Calculate skewness of nuclear matter using calc_e(). | |
virtual double | fmsom (double nb, double pf=0.5) |
Calculate reduced neutron effective mass using calc_e(). | |
virtual double | fn0 (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, int &pa) |
Calculate pressure of nuclear matter as a function of baryon density. | |
double | calc_press_on2 (double nb, int &pa) |
Calculate pressure / baryon density squared in nuclear matter as a function of baryon density. | |
double | calc_edensity (double delta, int &pa) |
Calculate energy density as a function of 'delta'. | |
double | calc_esym (double nb, int &pa) |
Calculate symmetry energy as a function of 'delta'. | |
double | calc_esym (double nb, bool &alt) |
Return the symmetry energy at density nb . | |
int | saturation_matter_e (double x, double &y, int &pa) |
Solve for zero pressure as a function of baryon density. | |
Other functions | |
int | nuc_matter_p (size_t nv, const ovector_base &x, ovector_base &y, double *&pa) |
Nucleonic matter from calc_p(). | |
int | nuc_matter_e (size_t nv, const ovector_base &x, ovector_base &y, double *&pa) |
Nucleonic matter from calc_e(). | |
Set auxilliary objects | |
virtual int | set_mroot (mroot< double *, mm_funct< double * > > &mr) |
Set class mroot object for use in calculating chemical potentials from densities. | |
virtual int | set_sat_root (root< int, funct< int > > &mr) |
Set class mroot object for use calculating saturation density. | |
virtual int | set_sat_deriv (deriv< int, funct< int > > &de) |
Set deriv object to use to find saturation properties. | |
virtual int | set_sat_deriv2 (deriv< bool, funct< bool > > &de) |
Set the second 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. | |
fermion | def_neutron |
The defaut neutron. | |
fermion | def_proton |
The defaut proton. | |
Default solvers and derivative classes | |
gsl_deriv< int, funct< int > > | def_deriv |
The default object for derivatives. | |
gsl_deriv< bool, funct< bool > > | def_deriv2 |
The second default object for derivatives. | |
gsl_mroot_hybrids< double *, mm_funct< double * > > | def_mroot |
The default solver. | |
cern_mroot_root< int, funct < int > > | def_sat_root |
The default solver for calculating the saturation density. | |
Protected Member Functions | |
double | t1_fun (double barn, int &vp) |
Compute t1 for gradient_qij(). | |
double | t2_fun (double barn, int &vp) |
Compute t2 for gradient_qij(). | |
Protected Attributes | |
mroot< double *, mm_funct < double * > > * | eos_mroot |
The EOS solver. | |
root< int, funct< int > > * | sat_root |
The solver to compute saturation properties. | |
deriv< int, funct< int > > * | 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. |
double calc_edensity | ( | double | delta, | |
int & | pa | |||
) |
Used by fesym(), pa
is unused.
double calc_esym | ( | double | nb, | |
bool & | alt | |||
) |
Used by fesym_slope().
double calc_esym | ( | double | nb, | |
int & | pa | |||
) |
Used by fsprime(), pa
is unused.
double calc_press_on2 | ( | double | nb, | |
int & | pa | |||
) |
Used by fkprime(), pa
is unused.
double calc_pressure | ( | double | nb, | |
int & | pa | |||
) |
Used by fcomp(), pa
is unused.
virtual double fcomp | ( | double | nb | ) | [virtual] |
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 | ( | double | nb, | |
double | pf = 0.5 | |||
) | [virtual] |
eoa
= (energy density/baryon number density-nucleon mass) at .
virtual double fesym | ( | double | nb, | |
double | pf = 0.5 | |||
) | [virtual] |
esym
=
where ,
and
is the proton fraction (for x=0.5 at saturation density, esym
)
Reimplemented in skyrme_eos.
virtual double fesym_diff | ( | double | nb | ) | [virtual] |
virtual double fesym_slope | ( | double | nb, | |
bool | alt_sym = false | |||
) | [virtual] |
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 fkprime | ( | double | nb | ) | [virtual] |
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 | ( | double | nb, | |
double | pf = 0.5 | |||
) | [virtual] |
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 | ( | double | protfrac, | |
double & | leoa | |||
) | [virtual] |
This function finds the density for which the pressure vanishes in matter with .
= baryon number density at which
virtual double fsprime | ( | double | nb, | |
double | pf = 0.5 | |||
) | [virtual] |
sprime
=
where ,
and
is the proton fraction
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 | |||
) |
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.
int saturation_matter_e | ( | double | x, | |
double & | y, | |||
int & | pa | |||
) |
Used by fn0().
Computing the slope of the symmetry energy at the saturation density requires two derivative objects, because it has to take an isospin derivative and a density derivative. Thus this second deriv object is used in the function fesym_slope().
The value of gsl_deriv::h is set to in the hadronic_eos constructor.
Definition at line 419 of file hadronic_eos.h.
gsl_deriv<bool,funct<bool> > def_deriv2 |
The value of gsl_deriv::h is set to in the hadronic_eos constructor.
Definition at line 427 of file hadronic_eos.h.
gsl_mroot_hybrids<double *,mm_funct<double *> > def_mroot |
Used by calc_e() to solve nuc_matter_p() (2 variables) and by calc_p() to solve nuc_matter_e() (2 variables).
Definition at line 435 of file hadronic_eos.h.
cern_mroot_root<int,funct<int> > def_sat_root |
Used by fn0() (which is called by saturation()) to solve saturation_matter_e() (1 variable).
Definition at line 443 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