LORENE
|
Base class for 2-parameters equations of state (abstract class). More...
#include <hoteos.h>
Public Member Functions | |
virtual | ~Hot_eos () |
Destructor. More... | |
const string & | get_name () const |
Returns the hot EOS name. More... | |
void | set_name (const char *) |
Sets the hot EOS name. More... | |
virtual bool | operator== (const Hot_eos &) const =0 |
Comparison operator (egality) More... | |
virtual bool | operator!= (const Hot_eos &) const =0 |
Comparison operator (difference) More... | |
virtual int | identify () const =0 |
Returns a number to identify the sub-classe of Hot_eos the object belongs to. More... | |
virtual void | sauve (FILE *) const |
Save in a file. More... | |
virtual const Eos & | new_cold_Eos () const =0 |
Returns the corresponding cold Eos . More... | |
virtual double | nbar_Hs_p (double ent, double sb) const =0 |
Computes the baryon density from the log-enthalpy and electronic fraction (virtual function implemented in the derived classes). 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... | |
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). 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... | |
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). 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... | |
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). 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... | |
virtual double | csound_square_Hs_p (double ent, const double ye) const =0 |
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 =0 |
Computes the chi^2 coefficient from the enthapy with electronic fraction (virtual function implemented in the derived classes). 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... | |
virtual double | mul_Hs_p (double ent, const double ye) const =0 |
Computes the electronic chemical potential from the enthapy with electronic fraction (virtual function implemented in the derived classes). 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... | |
virtual double | sigma_Hs_p (double ent, const double ye) const =0 |
Computes the source terms for electronic fraction advection equation from the enthapy with electronic fraction (virtual function implemented in the derived classes). 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 | |
Hot_eos () | |
Standard constructor. More... | |
Hot_eos (const string &) | |
Standard constructor from a name (string) More... | |
Hot_eos (const char *) | |
Standard constructor from a name (char*) More... | |
Hot_eos (const Hot_eos &) | |
Copy constructor. More... | |
Hot_eos (FILE *) | |
Constructor from a binary file (created by the function sauve(FILE*) ). More... | |
Hot_eos (ifstream &) | |
Constructor from a formatted file. 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... | |
virtual ostream & | operator>> (ostream &) const =0 |
Operator >> 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 | |
string | name |
EOS name. More... | |
Eos * | p_cold_eos |
Corresponding cold Eos. More... | |
Friends | |
ostream & | operator<< (ostream &, const Hot_eos &) |
Display. More... | |
Base class for 2-parameters equations of state (abstract class).
()
|
protected |
|
explicitprotected |
Standard constructor from a name (string)
Definition at line 60 of file hoteos.C.
References set_der_0x0().
|
explicitprotected |
Standard constructor from a name (char*)
Definition at line 64 of file hoteos.C.
References set_der_0x0().
|
protected |
|
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().
|
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().
|
virtual |
|
protected |
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().
Scalar Lorene::Hot_eos::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.
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 calcule(), chi2_Hs_p(), and Lorene::Tensor::get_mp().
|
pure 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 |
Implemented in Lorene::Ye_eos_tabul, Lorene::Hoteos_tabul, and Lorene::Ideal_gas.
Scalar Lorene::Hot_eos::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.
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 calcule(), csound_square_Hs_p(), and Lorene::Tensor::get_mp().
|
pure 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 |
Implemented in Lorene::Ye_eos_tabul, Lorene::Hoteos_tabul, and Lorene::Ideal_gas.
|
protectedvirtual |
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.
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 calcule(), ener_Hs_p(), and Lorene::Tensor::get_mp().
|
pure 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 |
Implemented in Lorene::Ye_eos_tabul, Lorene::Hoteos_tabul, and Lorene::Ideal_gas.
|
inline |
|
static |
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().
|
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:
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.
|
pure virtual |
Returns a number to identify the sub-classe of Hot_eos
the object belongs to.
Implemented in Lorene::Ye_eos_tabul, Lorene::Hoteos_tabul, and Lorene::Ideal_gas.
Scalar Lorene::Hot_eos::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.
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 calcule(), Lorene::Tensor::get_mp(), and mul_Hs_p().
|
pure 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 |
Implemented in Lorene::Ye_eos_tabul, Lorene::Hoteos_tabul, and Lorene::Ideal_gas.
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.
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 calcule(), Lorene::Tensor::get_mp(), and nbar_Hs_p().
|
pure virtual |
Computes the baryon density from the log-enthalpy and electronic fraction (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: ] electronic fraction |
Implemented in Lorene::Ye_eos_tabul, Lorene::Hoteos_tabul, and Lorene::Ideal_gas.
|
pure virtual |
Returns the corresponding cold Eos
.
Implemented in Lorene::Ye_eos_tabul, Lorene::Hoteos_tabul, and Lorene::Ideal_gas.
|
pure virtual |
Comparison operator (difference)
Implemented in Lorene::Hoteos_tabul, and Lorene::Ideal_gas.
|
pure virtual |
Comparison operator (egality)
Implemented in Lorene::Hoteos_tabul, and Lorene::Ideal_gas.
|
protectedpure virtual |
Operator >>
Implemented in Lorene::Ye_eos_tabul, Lorene::Hoteos_tabul, and Lorene::Ideal_gas.
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.
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 calcule(), Lorene::Tensor::get_mp(), and press_Hs_p().
|
pure 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 |
Implemented in Lorene::Ye_eos_tabul, Lorene::Hoteos_tabul, and Lorene::Ideal_gas.
|
virtual |
Save in a file.
Reimplemented in Lorene::Ye_eos_tabul, Lorene::Hoteos_tabul, and Lorene::Ideal_gas.
Definition at line 129 of file hoteos.C.
References Lorene::fwrite_be(), identify(), and name.
|
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 | ) |
Scalar Lorene::Hot_eos::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.
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 calcule(), Lorene::Tensor::get_mp(), and sigma_Hs_p().
|
pure 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 |
Implemented in Lorene::Ye_eos_tabul, Lorene::Hoteos_tabul, and Lorene::Ideal_gas.
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.
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 calcule(), Lorene::Tensor::get_mp(), and temp_Hs_p().
|
pure 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 |
Implemented in Lorene::Ye_eos_tabul, Lorene::Hoteos_tabul, and Lorene::Ideal_gas.
|
friend |
|
mutableprotected |