Classes | Public Types | Public Member Functions | Public Attributes | Protected Attributes | List of all members
o2scl::eos_sn_base Class Reference

A base class for the supernova EOSs [abstract]. More...

#include <eos_sn.h>

Inheritance diagram for o2scl::eos_sn_base:
o2scl::eos_sn_hfsl o2scl::eos_sn_ls o2scl::eos_sn_oo o2scl::eos_sn_sht o2scl::eos_sn_stos

Classes

class  slice
 A slice of data from eos_sn_base for one index fixed. More...
 

Public Types

typedef boost::numeric::ublas::vector< double > ubvector
 
typedef boost::numeric::ublas::matrix< double > ubmatrix
 

Public Member Functions

void check_composition (double &max1, double &max2)
 Check the table composition entries.
 
void check_free_energy (double &avg)
 Test the free energy and store results in tm. More...
 
virtual void beta_eq_sfixed (double nB, double entr, double &Ye, double &T)
 Compute properties of matter in beta equilibrium at fixed entropy per baryon. More...
 
virtual void beta_eq_Tfixed (double nB, double T, double &Ye)
 Compute the electron fraction for beta-equilibrium at fixed density and temperature temperature. More...
 
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.
 
virtual void load (std::string fname)
 
virtual void output (std::string fname)
 
Interpolation
void set_interp_type (size_t interp_type)
 Set the interpolation type of all the o2scl::tensor_grid3 objects to type interp_type . More...
 

Public Attributes

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.
 
Data
tensor_grid3 F
 Total free energy per baryon in MeV (without baryon rest masses but including electron rest mass) More...
 
tensor_grid3 Fint
 Free energy per baryon without lepton and photon contributions in MeV. More...
 
tensor_grid3 E
 Total internal energy per baryon in MeV (without baryon rest masses but including electron rest mass) More...
 
tensor_grid3 Eint
 Internal energy per baryon without lepton and photon contributions in MeV. More...
 
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. More...
 
tensor_grid3 mup
 Proton chemical potential in MeV. More...
 
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_grid3arr [n_base+30]
 List of pointers to data.
 
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)
 

Protected Member Functions

Memory allocation
void alloc ()
 Allocate memory.
 

Protected Attributes

convert_unitscu
 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.
 

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.
 
static const size_t n_base =16
 Number of base data sets.
 

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.
 
virtual void compute_eg ()
 Compute the electron and photon contribution for the full grid. More...
 
virtual double check_eg ()
 Check electrons and photons. More...
 

Detailed Description

This class is experimental.

See also the general description in the Finite-temperature Equation of State Tables section of the User's guide.

Idea for Future:

Add option to rescale energies and chemical potentials to different masses.

Create a o2scl::table object, possibly using tensor_grid::vector_slice.

Show how matrix_slice and vector_slice can be used with this object.

Add option to load and store a separate lepton/photon EOS

Add pions?

Create a standard output format? Output to stellarcollapse.org HDF5 format?

Definition at line 81 of file eos_sn.h.

Member Function Documentation

◆ beta_eq_sfixed()

virtual void o2scl::eos_sn_base::beta_eq_sfixed ( double  nB,
double  entr,
double &  Ye,
double &  T 
)
virtual

This function just does a simple hard-coded linear interpolation.

◆ beta_eq_Tfixed()

virtual void o2scl::eos_sn_base::beta_eq_Tfixed ( double  nB,
double  T,
double &  Ye 
)
virtual

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.

◆ check_eg()

virtual double o2scl::eos_sn_base::check_eg ( )
virtual

This checks that the electron and photon thermodynamics generated by O2scl is consistent with the data in E, Eint, F, Fint, P, Pint, S, and Sint.

Reimplemented in o2scl::eos_sn_ls.

◆ check_free_energy()

void o2scl::eos_sn_base::check_free_energy ( double &  avg)

This checks that the data in Fint is consistent with that in Eint and Sint (if baryons_only_loaded is true) and that F is consistent with that in E and S (if with_leptons_loaded is true).

◆ compute_eg()

virtual void o2scl::eos_sn_base::compute_eg ( )
virtual

If baryons_only_loaded is true, this function computes the data for E, P, S, and F by adding electrons and photons to the baryon contributions stored in Eint, Pint, Sint, and Fint. Otherwise, this function computes Eint, Pint, Sint, and Fint by subtracting electron and photon contributions from E, P, S, and F.

The electron contribution to the internal energy and free energy computed by this function includes the electron rest mass.

◆ set_interp_type()

void o2scl::eos_sn_base::set_interp_type ( size_t  interp_type)
Note
This is used by the constructor to set all tensors to linear interpolation.

Member Data Documentation

◆ E

tensor_grid3 o2scl::eos_sn_base::E

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 .

Definition at line 146 of file eos_sn.h.

◆ Eint

tensor_grid3 o2scl::eos_sn_base::Eint

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 .

Definition at line 157 of file eos_sn.h.

◆ F

tensor_grid3 o2scl::eos_sn_base::F

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 .

Definition at line 124 of file eos_sn.h.

◆ Fint

tensor_grid3 o2scl::eos_sn_base::Fint

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 .

Definition at line 135 of file eos_sn.h.

◆ mun

tensor_grid3 o2scl::eos_sn_base::mun

By default this is relative to the neutron mass in m_neut .

Definition at line 173 of file eos_sn.h.

◆ mup

tensor_grid3 o2scl::eos_sn_base::mup

By default this is relative to the proton mass in m_prot .

Definition at line 179 of file eos_sn.h.


The documentation for this class was generated from the following file:

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).