Class eos_sn_base (o2scl)¶
-
class
o2scl
::
eos_sn_base
¶ A base class for the supernova EOSs [abstract].
This class is experimental.
See also the general description in the sneos_section section of the User’s guide.
- Idea for Future:
Add option to rescale energies and chemical potentials to different masses.
- Idea for Future:
Create a o2scl::table object, possibly using tensor_grid::vector_slice.
- Idea for Future:
Show how matrix_slice and vector_slice can be used with this object (Is this done in ex_eos_sn or is this made obsolete by the tensor rearrange function?)
- Idea for Future:
Add option to load and store a separate lepton/photon EOS
Subclassed by o2scl::eos_sn_compose, o2scl::eos_sn_hfsl, o2scl::eos_sn_ls, o2scl::eos_sn_oo, o2scl::eos_sn_sht, o2scl::eos_sn_stos
Grid and data sizes
-
size_t
n_nB
¶ Size of baryon density grid.
-
size_t
n_Ye
¶ Size of electron fraction grid.
-
size_t
n_T
¶ Size of temperature grid.
-
std::vector<double>
nB_grid
¶ Baryon density grid (in \( \mathrm{fm}^{-3} \))
-
std::vector<double>
Ye_grid
¶ Electron fraction grid.
-
std::vector<double>
T_grid
¶ Temperature grid (in \( \mathrm{MeV} \))
-
size_t
n_oth
¶ Number of additional data sets.
-
const size_t
n_base
= 16¶ Number of base data sets.
Data
-
tensor_grid3
F
¶ Total free energy per baryon in MeV (without baryon rest masses but including electron rest mass)
By default, this energy is relative to
\[ m_n (1-Y_e) + m_p Y_e \]where \( m_n \) is stored in m_neut and \( m_p \) is stored in m_prot .
-
tensor_grid3
Fint
¶ Free energy per baryon without lepton and photon contributions in MeV.
By default, this energy is relative to
\[ m_n (1-Y_e) + m_p Y_e \]where \( m_n \) is stored in m_neut and \( m_p \) is stored in m_prot .
-
tensor_grid3
E
¶ Total internal energy per baryon in MeV (without baryon rest masses but including electron rest mass)
By default, this energy is relative to
\[ m_n (1-Y_e) + m_p Y_e \]where \( m_n \) is stored in m_neut and \( m_p \) is stored in m_prot .
-
tensor_grid3
Eint
¶ Internal energy per baryon without lepton and photon contributions in MeV.
By default, this energy is relative to
\[ m_n (1-Y_e) + m_p Y_e \]where \( m_n \) is stored in m_neut and \( m_p \) is stored in m_prot .
-
tensor_grid3
P
¶ Total pressure in \( \mathrm{MeV}/\mathrm{fm}^3 \).
-
tensor_grid3
Pint
¶ Pressure without lepton and photon contributions in \( \mathrm{MeV}/\mathrm{fm}^3 \).
-
tensor_grid3
S
¶ Total entropy per baryon.
-
tensor_grid3
Sint
¶ Entry per baryon without lepton and photon contributions.
-
tensor_grid3
mun
¶ Neutron chemical potential in MeV.
By default this is relative to the neutron mass in m_neut .
-
tensor_grid3
mup
¶ Proton chemical potential in MeV.
By default this is relative to the proton mass in m_prot .
-
tensor_grid3
Z
¶ Proton number.
-
tensor_grid3
A
¶ Mass number.
-
tensor_grid3
Xn
¶ Neutron baryon fraction.
-
tensor_grid3
Xp
¶ Proton baryon fraction.
-
tensor_grid3
Xalpha
¶ Alpha particle baryon fraction.
-
tensor_grid3
Xnuclei
¶ Heavy nuclei baryon fraction.
-
tensor_grid3
other
[30]¶ Other data sets.
-
tensor_grid3 *
arr
[n_base
+ 30]¶ List of pointers to data.
-
void
check_composition
(double &max1, double &max2)¶ Check the table composition entries.
Interpolation
-
void
set_interp_type
(size_t interp_type)¶ Set the interpolation type of all the o2scl::tensor_grid3 objects to type
interp_type
.- Note
This is used by the constructor to set all tensors to linear interpolation.
Nucleon masses
-
double
m_neut
¶ Neutron mass in \( \mathrm{MeV} \) (defaults to o2scl_mks::mass_neutron times o2scl_const::hc_mev_fm)
-
double
m_prot
¶ Proton mass in \( \mathrm{MeV} \) (defaults to o2scl_mks::mass_proton times o2scl_const::hc_mev_fm)
Electron and photon contribution
-
boson
photon
¶ Photon.
-
fermion
electron
¶ Electron.
-
fermion
muon
¶ Muon.
-
bool
include_muons
¶ If true, include muons.
-
fermion_rel
relf
¶ Relativistic fermion thermodynamics.
-
int
verbose
¶ Verbosity parameter (default 1)
-
std::vector<std::string>
oth_names
¶ Labels for the extra data sets included in current EOS.
-
std::vector<std::string>
oth_units
¶ Units for the extra data sets included in current EOS.
-
convert_units<double> &
cu
¶ Unit conversion object (set automatically in constructor)
-
bool
loaded
¶ If true, a EOS table was successfully loaded (default false)
-
bool
with_leptons_loaded
¶ True if thermodynamics with leptons has been loaded.
-
bool
baryons_only_loaded
¶ True if baryon-only thermodynamics has been loaded.
-
void
compute_eg
()¶ Compute the electron and photon contribution for the full grid.
If baryons_only_loaded is true, this function computes the data for
E, P, S,
andF
by adding electrons and photons to the baryon contributions stored inEint, Pint, Sint,
andFint
. Otherwise, this function computesEint, Pint, Sint,
andFint
by subtracting electron and photon contributions fromE, P, S,
andF
.The electron contribution to the internal energy and free energy computed by this function includes the electron rest mass.
-
void
compute_eg_point
(double nB, double Ye, double T, thermo &th, double &mue)¶ Compute lepton contribution at one point.
The temperature is to be specified in
MeV
.
-
double
check_eg
()¶ Check electrons and photons.
This checks that the electron and photon thermodynamics generated by is consistent with the data in
E
,Eint
,F
,Fint
,P
,Pint
,S
, andSint
.
-
void
check_free_energy
(double &avg)¶ Test the free energy and store results in
tm
.This checks that the data in
Fint
is consistent with that inEint
andSint
(if baryons_only_loaded is true) and thatF
is consistent with that inE
andS
(if with_leptons_loaded is true).
-
void
beta_eq_sfixed
(double nB, double entr, double &Ye, double &T)¶ Compute properties of matter in beta equilibrium at fixed entropy per baryon.
This function just does a simple hard-coded linear interpolation.
The temperature is returned in units of MeV.
-
void
beta_eq_Tfixed
(double nB, double T, double &Ye)¶ Compute the electron fraction for beta-equilibrium at fixed density and temperature.
This function just uses linear interpolation to interpolate in baryon density and temperature and the uses a quadratic to determine the minimum of the free energy.
If data_with_leptons() is
false
, then compute_eg() is used to compute the leptons.
-
bool
is_loaded
()¶ Return true if data has been loaded.
-
void
free
()¶ Free allocated memory.
-
bool
data_with_leptons
()¶ Return true if data with lepton information has been loaded.
-
bool
data_baryons_only
()¶ Return true if data with only baryon information has been loaded.
-
void
load
(std::string fname, size_t mode)¶
-
void
output
(std::string fname)¶
Memory allocation
-
void
alloc
()¶ Allocate memory.
Public Types
-
typedef boost::numeric::ublas::vector<double>
ubvector
¶
-
typedef boost::numeric::ublas::matrix<double>
ubmatrix
¶
-
class
slice
¶ A slice of data from eos_sn_base for one index fixed.
This class allows one to easily construct a o2scl::interp2_direct object automatically by fixing one index from one of the o2scl::tensor_grid3 objects in a child of o2scl::eos_sn_base .
Grid vectors
-
interp2_direct<ubvector, data_t, matrix_row_gen<data_t>, matrix_column_gen<data_t>>
it
¶ The interpolation object.
-
void
set_nB_T
(tensor_grid3<> &tg3, size_t iYe)¶ Set the slice to correspond to a matrix in the form \( (n_B,T) \).
-
void
set_nB_Ye
(tensor_grid3<> &tg3, size_t iT)¶ Set the slice to correspond to a matrix in the form \( (n_B,Y_e) \).
-
void
set_T_Ye
(tensor_grid3<> &tg3, size_t inB)¶ Set the slice to correspond to a matrix in the form \( (T,Y_e) \).
Public Types
-
typedef std::function<double&(size_t, size_t)>
data_t
¶ Typedef for the matrix type.
-
interp2_direct<ubvector, data_t, matrix_row_gen<data_t>, matrix_column_gen<data_t>>