LORENE
|
Ideal-gas (temperature-dependent) equation of state, with mass-term in the energy density. More...
#include <hoteos.h>
Public Member Functions | |
Ideal_gas (double gamma, double kappa, double mass=1.) | |
Standard constructor. More... | |
Ideal_gas (const Ideal_gas &) | |
Copy constructor. More... | |
virtual | ~Ideal_gas () |
Destructor. More... | |
void | operator= (const Ideal_gas &) |
Assignment to another Ideal_gas . More... | |
virtual bool | operator== (const Hot_eos &) const |
Comparison operator (egality) More... | |
virtual bool | operator!= (const Hot_eos &) const |
Comparison operator (difference) More... | |
virtual int | identify () const |
Returns a number to identify the sub-classe of Hot_eos the object belongs to. More... | |
double | get_gam () const |
Returns the adiabatic index (cf. Eq. (1)). More... | |
double | get_kap () const |
Returns the pressure coefficient (cf. Eq. (1)). More... | |
double | get_m_0 () const |
Return the individual particule mass (cf. More... | |
virtual const Eos & | new_cold_Eos () const |
Returns the corresponding cold Eos . More... | |
virtual void | sauve (FILE *) const |
Save in a file. More... | |
virtual double | nbar_Hs_p (double ent, double sb) const |
Computes the baryon density from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes). More... | |
virtual double | ener_Hs_p (double ent, double sb) const |
Computes the total energy density from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes). More... | |
virtual double | press_Hs_p (double ent, double sb) const |
Computes the pressure from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes). More... | |
virtual double | temp_Hs_p (double ent, double sb) const |
Computes the temperature from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes). More... | |
virtual double | csound_square_Hs_p (double ent, const double ye) const |
Computes the sound speed squared from the enthapy with electronic fraction (virtual function implemented in the derived classes). More... | |
virtual double | chi2_Hs_p (double ent, const double ye) const |
Computes the chi^2 coefficient from the enthapy with electronic fraction (virtual function implemented in the derived classes). More... | |
virtual double | mul_Hs_p (double ent, const double ye) const |
Computes the electronic chemical potential from the enthapy with electronic fraction (virtual function implemented in the derived classes). More... | |
virtual double | sigma_Hs_p (double ent, const double ye) const |
Computes the source terms for electronic fraction advection equation from the enthapy with electronic fraction (virtual function implemented in the derived classes). More... | |
const string & | get_name () const |
Returns the hot EOS name. More... | |
void | set_name (const char *) |
Sets the hot EOS name. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
Scalar | chi2_Hs (const Scalar &ent, const Scalar &Ye, int nzet, int l_min=0) const |
Computes the chi^2 coefficient from the enthalpy with ye. More... | |
Scalar | mul_Hs (const Scalar &ent, const Scalar &Ye, int nzet, int l_min=0) const |
Computes the electronic chemical potential from the enthalpy with ye. More... | |
Scalar | csound_square_Hs (const Scalar &ent, const Scalar &Y_e, int nzet, int l_min=0) const |
Computes the sound speed squared from the enthalpy with ye. More... | |
Scalar | sigma_Hs (const Scalar &ent, const Scalar &Y_e, int nzet, int l_min=0) const |
Computes the source terms for electronic fraction advection equation from the enthalpy with ye. More... | |
Static Public Member Functions | |
static Hot_eos * | hoteos_from_file (FILE *) |
Construction of an EOS from a binary file. More... | |
static Hot_eos * | hoteos_from_file (ifstream &) |
Construction of a hot EOS from a formatted file. More... | |
Protected Member Functions | |
Ideal_gas (FILE *) | |
Constructor from a binary file (created by the function sauve(FILE*) ). More... | |
Ideal_gas (ifstream &) | |
Constructor from a formatted file. More... | |
void | set_auxiliary () |
Computes the auxiliary quantities gam1 , unsgam1 , gam1sgamkap from the values of gam and kap . More... | |
virtual ostream & | operator>> (ostream &) const |
Operator >> More... | |
virtual void | del_deriv () const |
Deletes all the derived quantities. More... | |
void | set_der_0x0 () const |
Sets to 0x0 all the pointers on derived quantities. More... | |
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. More... | |
Protected Attributes | |
double | gam |
Adiabatic index . More... | |
double | kap |
Pressure coefficient (cf. More... | |
double | m_0 |
Individual particule mass (cf. More... | |
double | gam1 |
More... | |
double | unsgam1 |
More... | |
double | gam1sgamkap |
More... | |
string | name |
EOS name. More... | |
Eos * | p_cold_eos |
Corresponding cold Eos. More... | |
Friends | |
Hot_eos * | Hot_eos::hoteos_from_file (FILE *) |
The construction functions from a file. More... | |
Hot_eos * | Hot_eos::hoteos_from_file (ifstream &) |
Ideal-gas (temperature-dependent) equation of state, with mass-term in the energy density.
and
()
Lorene::Ideal_gas::Ideal_gas | ( | double | gamma, |
double | kappa, | ||
double | mass = 1. |
||
) |
Standard constructor.
Unless specified, the individual particle mass is set to the mean baryon mass .
gamma | adiabatic index |
kappa | pressure coefficient |
mass | individual particule mass |
Definition at line 76 of file ideal_gas.C.
References set_auxiliary().
Lorene::Ideal_gas::Ideal_gas | ( | const Ideal_gas & | eosi | ) |
|
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::eos_from_file(FILE*)
.
Definition at line 94 of file ideal_gas.C.
References Lorene::fread_be(), gam, kap, m_0, and set_auxiliary().
|
protected |
Constructor from a formatted file.
This constructor is protected because any EOS construction from a formatted file must be done via the function Hot_eos::hoteos_from_file(ifstream&)
.
Definition at line 108 of file ideal_gas.C.
References gam, kap, m_0, and set_auxiliary().
|
virtual |
Destructor.
Definition at line 122 of file ideal_gas.C.
|
protectedinherited |
General computational method for Scalar
's.
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::get_etat().
|
inherited |
Computes the chi^2 coefficient from the enthalpy with ye.
ent | [input, unit: c^2] enthalpy |
nzet | number of domains where the derivative dln(e)/dln(H) is to be computed. |
l_min | index of the innermost domain is which the coefficient dln(n)/dln(H) is to be computed [default value: 0]; the derivative dln(e)/dln(H) is computed only in domains whose indices are in [l_min,l_min+nzet-1] . In the other domains, it is set to zero. |
ye | [input, unit: ] electronic fraction |
Definition at line 306 of file hoteos.C.
References Lorene::Hot_eos::calcule(), Lorene::Hot_eos::chi2_Hs_p(), and Lorene::Tensor::get_mp().
|
virtual |
Computes the chi^2 coefficient from the enthapy with electronic fraction (virtual function implemented in the derived classes).
ent | [input, unit: c^2] enthalpy |
ye | [input, unit: ] electronic fraction |
Implements Lorene::Hot_eos.
Definition at line 327 of file ideal_gas.C.
|
inherited |
Computes the sound speed squared from the enthalpy with ye.
ent | [input, unit: c^2] enthalpy |
nzet | number of domains where the derivative dln(e)/dln(H) is to be computed. |
l_min | index of the innermost domain is which the coefficient dln(n)/dln(H) is to be computed [default value: 0]; the derivative dln(e)/dln(H) is computed only in domains whose indices are in [l_min,l_min+nzet-1] . In the other domains, it is set to zero. |
ye | [input, unit: ] electronic fraction |
Definition at line 294 of file hoteos.C.
References Lorene::Hot_eos::calcule(), Lorene::Hot_eos::csound_square_Hs_p(), and Lorene::Tensor::get_mp().
|
virtual |
Computes the sound speed squared from the enthapy with electronic fraction (virtual function implemented in the derived classes).
ent | [input, unit: c^2] enthalpy |
ye | [input, unit: ] electronic fraction |
Implements Lorene::Hot_eos.
Definition at line 319 of file ideal_gas.C.
|
protectedvirtualinherited |
Deletes all the derived quantities.
Definition at line 109 of file hoteos.C.
References Lorene::Hot_eos::p_cold_eos, and Lorene::Hot_eos::set_der_0x0().
|
inherited |
Computes the total energy density from the log-enthalpy and entropy per baryon.
ent | [input, unit: ] log-enthalpy H defined by , where e is the (total) energy density, p the pressure, n the baryon density, and the baryon mass |
sb | [input, unit: ] entropy per baryon |
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. |
Definition at line 252 of file hoteos.C.
References Lorene::Hot_eos::calcule(), Lorene::Hot_eos::ener_Hs_p(), and Lorene::Tensor::get_mp().
|
virtual |
Computes the total energy density from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).
ent | [input, unit: ] log-enthalpy H defined by , where e is the (total) energy density, p the pressure, n the baryon density, and the baryon mass |
sb | [input, unit: ] entropy per baryon |
Implements Lorene::Hot_eos.
Definition at line 275 of file ideal_gas.C.
References Lorene::exp(), gam, gam1, gam1sgamkap, kap, m_0, Lorene::pow(), and unsgam1.
double Lorene::Ideal_gas::get_gam | ( | ) | const |
Returns the adiabatic index (cf. Eq. (1)).
Definition at line 155 of file ideal_gas.C.
References gam.
double Lorene::Ideal_gas::get_kap | ( | ) | const |
Returns the pressure coefficient (cf. Eq. (1)).
Definition at line 159 of file ideal_gas.C.
References kap.
double Lorene::Ideal_gas::get_m_0 | ( | ) | const |
Return the individual particule mass (cf.
Eq. (1))
Definition at line 163 of file ideal_gas.C.
References m_0.
|
inlineinherited |
Returns the hot EOS name.
Definition at line 138 of file hoteos.h.
References Lorene::Hot_eos::name.
|
staticinherited |
Construction of an EOS from a binary file.
The file must have been created by the function sauve(FILE*)
.
Definition at line 78 of file hoteos_from_file.C.
References Lorene::fread_be().
|
staticinherited |
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:
Ideal_gas
).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 120 of file hoteos_from_file.C.
|
virtual |
Returns a number to identify the sub-classe of Hot_eos
the object belongs to.
Implements Lorene::Hot_eos.
Definition at line 67 of file hoteos_from_file.C.
|
inherited |
Computes the electronic chemical potential from the enthalpy with ye.
ent | [input, unit: c^2] enthalpy |
nzet | number of domains where the derivative dln(e)/dln(H) is to be computed. |
l_min | index of the innermost domain is which the coefficient dln(n)/dln(H) is to be computed [default value: 0]; the derivative dln(e)/dln(H) is computed only in domains whose indices are in [l_min,l_min+nzet-1] . In the other domains, it is set to zero. |
ye | [input, unit: ] electronic fraction |
Definition at line 318 of file hoteos.C.
References Lorene::Hot_eos::calcule(), Lorene::Tensor::get_mp(), and Lorene::Hot_eos::mul_Hs_p().
|
virtual |
Computes the electronic chemical potential from the enthapy with electronic fraction (virtual function implemented in the derived classes).
ent | [input, unit: c^2] enthalpy |
ye | [input, unit: ] electronic fraction |
Implements Lorene::Hot_eos.
Definition at line 335 of file ideal_gas.C.
|
inherited |
Computes the baryon density field from the log-enthalpy field and entropy per baryon.
ent | [input, unit: ] log-enthalpy H defined by , where e is the (total) energy density, p the pressure, n the baryon density, and the baryon mass |
sb | [input, unit: ] entropy per baryon |
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. |
Definition at line 236 of file hoteos.C.
References Lorene::Hot_eos::calcule(), Lorene::Tensor::get_mp(), and Lorene::Hot_eos::nbar_Hs_p().
|
virtual |
Computes the baryon density from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).
ent | [input, unit: ] log-enthalpy H defined by , where e is the (total) energy density, p the pressure, n the baryon density, and the baryon mass |
sb | [input, unit: ] entropy per baryon |
Implements Lorene::Hot_eos.
Definition at line 262 of file ideal_gas.C.
References Lorene::exp(), gam1sgamkap, Lorene::pow(), and unsgam1.
|
virtual |
Returns the corresponding cold Eos
.
Implements Lorene::Hot_eos.
Definition at line 172 of file ideal_gas.C.
References gam, kap, m_0, and Lorene::Hot_eos::p_cold_eos.
|
virtual |
Comparison operator (difference)
Implements Lorene::Hot_eos.
Definition at line 224 of file ideal_gas.C.
References operator==().
void Lorene::Ideal_gas::operator= | ( | const Ideal_gas & | eosi | ) |
Assignment to another Ideal_gas
.
Definition at line 128 of file ideal_gas.C.
References gam, kap, m_0, Lorene::Hot_eos::name, and set_auxiliary().
|
virtual |
Comparison operator (egality)
Implements Lorene::Hot_eos.
Definition at line 187 of file ideal_gas.C.
References gam, Lorene::Hot_eos::identify(), identify(), kap, and m_0.
|
protectedvirtual |
|
inherited |
Computes the pressure from the log-enthalpy and entropy per baryon.
ent | [input, unit: ] log-enthalpy H defined by , where e is the (total) energy density, p the pressure, n the baryon density, and the baryon mass |
sb | [input, unit: ] entropy per baryon |
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. |
Definition at line 266 of file hoteos.C.
References Lorene::Hot_eos::calcule(), Lorene::Tensor::get_mp(), and Lorene::Hot_eos::press_Hs_p().
|
virtual |
Computes the pressure from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).
ent | [input, unit: ] log-enthalpy H defined by , where e is the (total) energy density, p the pressure, n the baryon density, and the baryon mass |
sb | [input, unit: ] entropy per baryon |
Implements Lorene::Hot_eos.
Definition at line 291 of file ideal_gas.C.
References Lorene::exp(), gam, gam1, gam1sgamkap, kap, Lorene::pow(), and unsgam1.
|
virtual |
Save in a file.
Reimplemented from Lorene::Hot_eos.
Definition at line 233 of file ideal_gas.C.
References Lorene::fwrite_be(), gam, kap, m_0, and Lorene::Hot_eos::sauve().
|
protected |
Computes the auxiliary quantities gam1
, unsgam1
, gam1sgamkap
from the values of gam
and kap
.
Definition at line 145 of file ideal_gas.C.
|
protectedinherited |
Sets to 0x0
all the pointers on derived quantities.
Definition at line 114 of file hoteos.C.
References Lorene::Hot_eos::p_cold_eos.
|
inherited |
|
inherited |
Computes the source terms for electronic fraction advection equation from the enthalpy with ye.
ent | [input, unit: c^2] enthalpy |
nzet | number of domains where the derivative dln(e)/dln(H) is to be computed. |
l_min | index of the innermost domain is which the coefficient dln(n)/dln(H) is to be computed [default value: 0]; the derivative dln(e)/dln(H) is computed only in domains whose indices are in [l_min,l_min+nzet-1] . In the other domains, it is set to zero. |
ye | [input, unit: ] electronic fraction |
Definition at line 330 of file hoteos.C.
References Lorene::Hot_eos::calcule(), Lorene::Tensor::get_mp(), and Lorene::Hot_eos::sigma_Hs_p().
|
virtual |
Computes the source terms for electronic fraction advection equation from the enthapy with electronic fraction (virtual function implemented in the derived classes).
ent | [input, unit: c^2] enthalpy |
ye | [input, unit: ] electronic fraction |
Implements Lorene::Hot_eos.
Definition at line 343 of file ideal_gas.C.
|
inherited |
Computes the temperature field from the log-enthalpy field and entropy per baryon.
ent | [input, unit: ] log-enthalpy H defined by , where e is the (total) energy density, p the pressure, n the baryon density, and the baryon mass |
sb | [input, unit: ] entropy per baryon |
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. |
Definition at line 280 of file hoteos.C.
References Lorene::Hot_eos::calcule(), Lorene::Tensor::get_mp(), and Lorene::Hot_eos::temp_Hs_p().
|
virtual |
Computes the temperature from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).
ent | [input, unit: ] log-enthalpy H defined by , where e is the (total) energy density, p the pressure, n the baryon density, and the baryon mass |
sb | [input, unit: ] entropy per baryon |
Implements Lorene::Hot_eos.
Definition at line 306 of file ideal_gas.C.
References Lorene::exp(), gam1sgamkap, and kap.
|
friend |
The construction functions from a file.
|
protected |
|
protected |
|
mutableprotectedinherited |