Lorene::Hot_eos Class Reference
[Equations of state]

Base class for temperature-dependent equations of state (abstract class). More...

#include <hoteos.h>

Inheritance diagram for Lorene::Hot_eos:
Lorene::Hoteos_tabul Lorene::Ideal_gas

List of all members.

Public Member Functions

virtual ~Hot_eos ()
 Destructor.
const string & get_name () const
 Returns the hot EOS name.
void set_name (const char *)
 Sets the hot EOS name.
virtual bool operator== (const Hot_eos &) const =0
 Comparison operator (egality).
virtual bool operator!= (const Hot_eos &) const =0
 Comparison operator (difference).
virtual int identify () const =0
 Returns a number to identify the sub-classe of Hot_eos the object belongs to.
virtual void sauve (FILE *) const
 Save in a file.
virtual const Eosnew_cold_Eos () const =0
 Returns the corresponding cold Eos.
virtual double nbar_Hs_p (double ent, double sb) const =0
 Computes the baryon density from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).
Scalar nbar_Hs (const Scalar &ent, const Scalar &sb, int nzet, int l_min=0) const
 Computes the baryon density field from the log-enthalpy field and entropy per baryon.
virtual double ener_Hs_p (double ent, double sb) const =0
 Computes the total energy density from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).
Scalar ener_Hs (const Scalar &ent, const Scalar &sb, int nzet, int l_min=0) const
 Computes the total energy density from the log-enthalpy and entropy per baryon.
virtual double press_Hs_p (double ent, double sb) const =0
 Computes the pressure from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).
Scalar press_Hs (const Scalar &ent, const Scalar &sb, int nzet, int l_min=0) const
 Computes the pressure from the log-enthalpy and entropy per baryon.
virtual double temp_Hs_p (double ent, double sb) const =0
 Computes the temperature from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).
Scalar temp_Hs (const Scalar &ent, const Scalar &sb, int nzet, int l_min=0) const
 Computes the temperature field from the log-enthalpy field and entropy per baryon.

Static Public Member Functions

static Hot_eoshoteos_from_file (FILE *)
 Construction of an EOS from a binary file.
static Hot_eoshoteos_from_file (ifstream &)
 Construction of a hot EOS from a formatted file.

Protected Member Functions

 Hot_eos ()
 Standard constructor.
 Hot_eos (const string &)
 Standard constructor from a name (string).
 Hot_eos (const char *)
 Standard constructor from a name (char*).
 Hot_eos (const Hot_eos &)
 Copy constructor.
 Hot_eos (FILE *)
 Constructor from a binary file (created by the function sauve(FILE*) ).
 Hot_eos (ifstream &)
 Constructor from a formatted file.
virtual void del_deriv () const
 Deletes all the derived quantities.
void set_der_0x0 () const
 Sets to 0x0 all the pointers on derived quantities.
virtual ostream & operator>> (ostream &) const =0
 Operator >>.
void calcule (const Scalar &thermo1, const Scalar &thermo2, int nzet, int l_min, double(Hot_eos::*fait)(double, double) const, Scalar &resu) const
 General computational method for Scalar 's.

Protected Attributes

string name
 EOS name.
Eosp_cold_eos
 Corresponding cold Eos.

Friends

ostream & operator<< (ostream &, const Hot_eos &)
 Display.

Detailed Description

Base class for temperature-dependent equations of state (abstract class).

()

Definition at line 67 of file hoteos.h.


Constructor & Destructor Documentation

Lorene::Hot_eos::Hot_eos (  )  [protected]

Standard constructor.

Definition at line 56 of file hoteos.C.

Lorene::Hot_eos::Hot_eos ( const string &  name_i  )  [explicit, protected]

Standard constructor from a name (string).

Definition at line 60 of file hoteos.C.

References set_der_0x0().

Lorene::Hot_eos::Hot_eos ( const char *  name_i  )  [explicit, protected]

Standard constructor from a name (char*).

Definition at line 64 of file hoteos.C.

References set_der_0x0().

Lorene::Hot_eos::Hot_eos ( const Hot_eos eos_i  )  [protected]

Copy constructor.

Definition at line 70 of file hoteos.C.

References set_der_0x0().

Lorene::Hot_eos::Hot_eos ( FILE *  fich  )  [protected]

Constructor from a binary file (created by the function sauve(FILE*) ).

This constructor is protected because any hot EOS construction from a binary file must be done via the function Hot_eos::hoteos_from_file(FILE*) .

Definition at line 76 of file hoteos.C.

References set_der_0x0(), and set_name().

Lorene::Hot_eos::Hot_eos ( ifstream &  fich  )  [protected]

Constructor from a formatted file.

This constructor is protected because any hot EOS construction from a formatted file must be done via the function Hot_eos::hoteos_from_file(ifstream&) .

Definition at line 90 of file hoteos.C.

References set_der_0x0(), and set_name().

Lorene::Hot_eos::~Hot_eos (  )  [virtual]

Destructor.

Definition at line 101 of file hoteos.C.

References del_deriv().


Member Function Documentation

void Lorene::Hot_eos::calcule ( const Scalar thermo1,
const Scalar thermo2,
int  nzet,
int  l_min,
double(Hot_eos::*)(double, double) const   fait,
Scalar resu 
) const [protected]

General computational method for Scalar 's.

Parameters:
thermo1 [input] first thermodynamical quantity (for instance the enthalpy field) from which the thermodynamical quantity resu is to be computed.
thermo2 [input] second thermodynamical quantity (for instance the entropy field) from which the thermodynamical quantity resu is to be computed.
nzet [input] number of domains where resu is to be computed.
l_min [input] index of the innermost domain is which resu is to be computed [default value: 0]; resu is computed only in domains whose indices are in [l_min,l_min+nzet-1] . In the other domains, it is set to zero.
fait [input] pointer on the member function of class Hot_eos which performs the pointwise calculation.
resu [output] result of the computation.

Definition at line 153 of file hoteos.C.

References Lorene::Scalar::annule(), Lorene::Tbl::annule_hard(), Lorene::Valeur::annule_hard(), Lorene::Valeur::c, Lorene::Valeur::coef_i(), Lorene::Tbl::dim, Lorene::Tbl::get_etat(), Lorene::Scalar::get_etat(), Lorene::Valeur::get_mg(), Lorene::Tensor::get_mp(), Lorene::Mg3d::get_nzone(), Lorene::Scalar::get_spectral_va(), Lorene::Tbl::get_taille(), Lorene::Valeur::set_etat_c_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Mtbl::set_etat_qcq(), Lorene::Scalar::set_etat_qcq(), Lorene::Tbl::set_etat_zero(), Lorene::Scalar::set_etat_zero(), Lorene::Scalar::set_spectral_va(), Lorene::Tbl::t, and Lorene::Mtbl::t.

void Lorene::Hot_eos::del_deriv (  )  const [protected, virtual]

Deletes all the derived quantities.

Definition at line 109 of file hoteos.C.

References p_cold_eos, and set_der_0x0().

Scalar Lorene::Hot_eos::ener_Hs ( const Scalar ent,
const Scalar sb,
int  nzet,
int  l_min = 0 
) const

Computes the total energy density from the log-enthalpy and entropy per baryon.

Parameters:
ent [input, unit: $c^2$] log-enthalpy H defined by $H = c^2 \ln\left( {e+p \over m_B c^2 n} \right) $, where e is the (total) energy density, p the pressure, n the baryon density, and $m_B$ the baryon mass
sb [input, unit: $k_B$] entropy per baryon $s_b$
nzet number of domains where the energy density is to be computed.
l_min index of the innermost domain is which the energy density is to be computed [default value: 0]; the energy density is computed only in domains whose indices are in [l_min,l_min+nzet-1] . In the other domains, it is set to zero.
Returns:
energy density [unit: $\rho_{\rm nuc} c^2$], where $\rho_{\rm nuc} := 1.66\ 10^{17} \ {\rm kg/m}^3$

Definition at line 252 of file hoteos.C.

References calcule(), ener_Hs_p(), and Lorene::Tensor::get_mp().

virtual double Lorene::Hot_eos::ener_Hs_p ( double  ent,
double  sb 
) const [pure virtual]

Computes the total energy density from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).

Parameters:
ent [input, unit: $c^2$] log-enthalpy H defined by $H = c^2 \ln\left( {e+p \over m_B c^2 n} \right) $, where e is the (total) energy density, p the pressure, n the baryon density, and $m_B$ the baryon mass
sb [input, unit: $k_B$] entropy per baryon $s_b$
Returns:
energy density e [unit: $\rho_{\rm nuc} c^2$], where $\rho_{\rm nuc} := 1.66\ 10^{17} \ {\rm kg/m}^3$

Implemented in Lorene::Ideal_gas, and Lorene::Hoteos_tabul.

const string& Lorene::Hot_eos::get_name (  )  const [inline]

Returns the hot EOS name.

Definition at line 120 of file hoteos.h.

References name.

Hot_eos * Lorene::Hot_eos::hoteos_from_file ( ifstream &  fich  )  [static]

Construction of a hot EOS from a formatted file.

The fist line of the file must start by the EOS number, according to the following conventions:

  • 1 = relativistic ideal gas (class Ideal_gas ).
  • 2 = non-relativistic ideal gas (class Ideal_gas_norel ).

The second line in the file should contain a name given by the user to the EOS. The following lines should contain the EOS parameters (one parameter per line), in the same order than in the class declaration.

Definition at line 107 of file hoteos_from_file.C.

Hot_eos * Lorene::Hot_eos::hoteos_from_file ( FILE *  fich  )  [static]

Construction of an EOS from a binary file.

The file must have been created by the function sauve(FILE*) .

Definition at line 70 of file hoteos_from_file.C.

References Lorene::fread_be().

virtual int Lorene::Hot_eos::identify (  )  const [pure virtual]

Returns a number to identify the sub-classe of Hot_eos the object belongs to.

Implemented in Lorene::Ideal_gas, and Lorene::Hoteos_tabul.

Scalar Lorene::Hot_eos::nbar_Hs ( const Scalar ent,
const Scalar sb,
int  nzet,
int  l_min = 0 
) const

Computes the baryon density field from the log-enthalpy field and entropy per baryon.

Parameters:
ent [input, unit: $c^2$] log-enthalpy H defined by $H = c^2 \ln\left( {e+p \over m_B c^2 n} \right) $, where e is the (total) energy density, p the pressure, n the baryon density, and $m_B$ the baryon mass
sb [input, unit: $k_B$] entropy per baryon $s_b$
nzet number of domains where the baryon density is to be computed.
l_min index of the innermost domain is which the baryon density is to be computed [default value: 0]; the baryon density is computed only in domains whose indices are in [l_min,l_min+nzet-1] . In the other domains, it is set to zero.
Returns:
baryon density [unit: $n_{\rm nuc} := 0.1 \ {\rm fm}^{-3}$]

Definition at line 236 of file hoteos.C.

References calcule(), Lorene::Tensor::get_mp(), and nbar_Hs_p().

virtual double Lorene::Hot_eos::nbar_Hs_p ( double  ent,
double  sb 
) const [pure virtual]

Computes the baryon density from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).

Parameters:
ent [input, unit: $c^2$] log-enthalpy H defined by $H = c^2 \ln\left( {e+p \over m_B c^2 n} (to be modified) \right) $, where e is the (total) energy density, p the pressure, n the baryon density, and $m_B$ the baryon mass
sb [input, unit: $k_B$] entropy per baryon $s_b$
Returns:
baryon density [unit: $n_{\rm nuc} := 0.1 \ {\rm fm}^{-3}$]

Implemented in Lorene::Ideal_gas, and Lorene::Hoteos_tabul.

virtual const Eos& Lorene::Hot_eos::new_cold_Eos (  )  const [pure virtual]

Returns the corresponding cold Eos.

Implemented in Lorene::Ideal_gas, and Lorene::Hoteos_tabul.

virtual bool Lorene::Hot_eos::operator!= ( const Hot_eos  )  const [pure virtual]

Comparison operator (difference).

virtual bool Lorene::Hot_eos::operator== ( const Hot_eos  )  const [pure virtual]

Comparison operator (egality).

virtual ostream& Lorene::Hot_eos::operator>> ( ostream &   )  const [protected, pure virtual]

Operator >>.

Implemented in Lorene::Ideal_gas, and Lorene::Hoteos_tabul.

Scalar Lorene::Hot_eos::press_Hs ( const Scalar ent,
const Scalar sb,
int  nzet,
int  l_min = 0 
) const

Computes the pressure from the log-enthalpy and entropy per baryon.

Parameters:
ent [input, unit: $c^2$] log-enthalpy H defined by $H = c^2 \ln\left( {e+p \over m_B c^2 n} \right) $, where e is the (total) energy density, p the pressure, n the baryon density, and $m_B$ the baryon mass
sb [input, unit: $k_B$] entropy per baryon $s_b$
nzet number of domains where the pressure is to be computed.
l_min index of the innermost domain is which the pressure is to be computed [default value: 0]; the pressure is computed only in domains whose indices are in [l_min,l_min+nzet-1] . In the other domains, it is set to zero.
Returns:
pressure [unit: $\rho_{\rm nuc} c^2$], where $\rho_{\rm nuc} := 1.66\ 10^{17} \ {\rm kg/m}^3$

Definition at line 266 of file hoteos.C.

References calcule(), Lorene::Tensor::get_mp(), and press_Hs_p().

virtual double Lorene::Hot_eos::press_Hs_p ( double  ent,
double  sb 
) const [pure virtual]

Computes the pressure from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).

Parameters:
ent [input, unit: $c^2$] log-enthalpy H defined by $H = c^2 \ln\left( {e+p \over m_B c^2 n} \right) $, where e is the (total) energy density, p the pressure, n the baryon density, and $m_B$ the baryon mass
sb [input, unit: $k_B$] entropy per baryon $s_b$
Returns:
pressure p [unit: $\rho_{\rm nuc} c^2$], where $\rho_{\rm nuc} := 1.66\ 10^{17} \ {\rm kg/m}^3$

Implemented in Lorene::Ideal_gas, and Lorene::Hoteos_tabul.

void Lorene::Hot_eos::sauve ( FILE *  fich  )  const [virtual]

Save in a file.

Reimplemented in Lorene::Ideal_gas, and Lorene::Hoteos_tabul.

Definition at line 129 of file hoteos.C.

References Lorene::fwrite_be(), identify(), and name.

void Lorene::Hot_eos::set_der_0x0 (  )  const [protected]

Sets to 0x0 all the pointers on derived quantities.

Definition at line 114 of file hoteos.C.

References p_cold_eos.

void Lorene::Hot_eos::set_name ( const char *  name_i  ) 

Sets the hot EOS name.

Definition at line 118 of file hoteos.C.

References name.

Scalar Lorene::Hot_eos::temp_Hs ( const Scalar ent,
const Scalar sb,
int  nzet,
int  l_min = 0 
) const

Computes the temperature field from the log-enthalpy field and entropy per baryon.

Parameters:
ent [input, unit: $c^2$] log-enthalpy H defined by $H = c^2 \ln\left( {e+p \over m_B c^2 n} \right) $, where e is the (total) energy density, p the pressure, n the baryon density, and $m_B$ the baryon mass
sb [input, unit: $k_B$] entropy per baryon $s_b$
nzet number of domains where the baryon density is to be computed.
l_min index of the innermost domain is which the baryon density is to be computed [default value: 0]; the baryon density is computed only in domains whose indices are in [l_min,l_min+nzet-1] . In the other domains, it is set to zero.
Returns:
temperature [unit: MeV]

Definition at line 280 of file hoteos.C.

References calcule(), Lorene::Tensor::get_mp(), and temp_Hs_p().

virtual double Lorene::Hot_eos::temp_Hs_p ( double  ent,
double  sb 
) const [pure virtual]

Computes the temperature from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).

Parameters:
ent [input, unit: $c^2$] log-enthalpy H defined by $H = c^2 \ln\left( {e+p \over m_B c^2 n} (to be modified) \right) $, where e is the (total) energy density, p the pressure, n the baryon density, and $m_B$ the baryon mass
sb [input, unit: $k_B$] entropy per baryon $s_b$
Returns:
temperature [unit: MeV]

Implemented in Lorene::Ideal_gas, and Lorene::Hoteos_tabul.


Friends And Related Function Documentation

ostream& operator<< ( ostream &  ,
const Hot_eos  
) [friend]

Display.


Member Data Documentation

string Lorene::Hot_eos::name [protected]

EOS name.

Definition at line 72 of file hoteos.h.

Eos* Lorene::Hot_eos::p_cold_eos [mutable, protected]

Corresponding cold Eos.

Definition at line 108 of file hoteos.h.


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

Generated on 7 Dec 2019 for LORENE by  doxygen 1.6.1