LORENE
|
Equation of state for the CompOSE database with a consistent computation of the baryon density. More...
#include <dyneos.h>
Public Member Functions | |
Dyn_eos_cons (const string &name_i, const string &table_name, bool compose=true) | |
Standard constructor. More... | |
virtual | ~Dyn_eos_cons () |
Destructor. More... | |
virtual bool | operator== (const Dyn_eos &) const |
Comparison operator (egality) More... | |
virtual bool | operator!= (const Dyn_eos &) const |
Comparison operator (difference) More... | |
virtual int | identify () const |
Returns a number to identify the sub-classe of Dyn_eos the object belongs to. More... | |
virtual void | sauve (FILE *) const |
Save in a file. More... | |
virtual double | ent_nbar_p (double nbar, const Param *par=0x0) const |
Computes the log-enthalpy from the baryon density and extra parameters (virtual function implemented in the derived classes). More... | |
virtual double | ener_nbar_p (double nbar, const Param *par=0x0) const |
Computes the total energy density from the baryon density and extra parameters (virtual function implemented in the derived classes). More... | |
virtual double | press_nbar_p (double nbar, const Param *par=0x0) const |
Computes the pressure from the baryon density and extra parameters (virtual function implemented in the derived classes). More... | |
virtual double | csound_square_nbar_p (double nbar, const Param *par=0x0) const |
Computes the sound speed squared from the baryon density with extra parameters. More... | |
const string & | get_name () const |
Returns the EOS name. More... | |
void | set_name (const string &) |
Sets the EOS name. More... | |
Scalar | ent_nbar (const Scalar &nbar, int nzet, int l_min=0, Param *par=0x0) const |
Computes the log-enthalpy field from the baryon density field and extra parameters. More... | |
Scalar | ener_nbar (const Scalar &nbar, int nzet, int l_min=0, Param *par=0x0) const |
Computes the total energy density from the baryon density and extra parameters. More... | |
Scalar | press_nbar (const Scalar &nbar, int nzet, int l_min=0, Param *par=0x0) const |
Computes the pressure from the baryon density and extra parameters. More... | |
Scalar | csound_square_nbar (const Scalar &nbar, int nzet, int l_min=0, Param *par=0x0) const |
Computes the sound speed squared from the baryon density with extra parameters. More... | |
Static Public Member Functions | |
static Dyn_eos * | convert_from_Eos (const Eos &) |
Conversion operator from Eos to Dyn_eos . More... | |
static Dyn_eos * | eos_from_file (FILE *) |
Construction of an EOS from a binary file. More... | |
static Dyn_eos * | eos_from_file (ifstream &) |
Construction of an EOS from a formatted file. More... | |
Protected Member Functions | |
Dyn_eos_cons (FILE *) | |
Constructor from a binary file (created by the function sauve(FILE*) ). More... | |
Dyn_eos_cons (ifstream &ist) | |
Constructor from a formatted file. More... | |
virtual void | read_table_compose () |
Reads the files .nb and .thermo containing the table in CompOSE format and initializes the arrays lognb , loge and dlesdlnb . More... | |
virtual void | read_table_lorene () |
Reads the file containing the table in LORENE format and initializes the arrays lognb , loge and dlesdlnb . More... | |
virtual ostream & | operator>> (ostream &) const |
Operator >> More... | |
void | calcule (const Scalar &thermo, int nzet, int l_min, double(Dyn_eos::*fait)(double, const Param *) const, Param *par, Scalar &resu) const |
General computational method for Scalar 's. More... | |
Protected Attributes | |
string | tablename |
Name of the file containing the tabulated data. More... | |
string | authors |
Authors - reference for the table. More... | |
bool | compose_format |
Are(is) the table(s) in CompOSE format? More... | |
double | nbmin |
Lower boundary of the baryon density interval. More... | |
double | nbmax |
Upper boundary of the baryon density interval. More... | |
Tbl * | lognb |
Table of . More... | |
Tbl * | loge |
Table of . More... | |
Tbl * | dlesdlnb |
Table of . More... | |
Tbl * | c_sound2 |
Table of . More... | |
string | name |
EOS name. More... | |
Private Member Functions | |
Dyn_eos_cons (const Dyn_eos_cons &) | |
Copy constructor (private to make Dyn_eos_cons a non-copiable class) More... | |
Friends | |
Dyn_eos * | Dyn_eos::eos_from_file (FILE *) |
The construction functions from a file. More... | |
Dyn_eos * | Dyn_eos::eos_from_file (ifstream &) |
Equation of state for the CompOSE database with a consistent computation of the baryon density.
(derived from Dyn_eos_tab
).
General tabulated EOS, reading a table passed as an argument to the constructor. The baryon density is computed to ensure the relation , thus eventually modifying the table. See documentation of the class Dyn_eos_tab
for details of the table format.
Lorene::Dyn_eos_cons::Dyn_eos_cons | ( | const string & | name_i, |
const string & | table_name, | ||
bool | compose = true |
||
) |
Standard constructor.
name_i | Name of the EoS |
table_name | Name of the file containing the table (case compose = false), or the prefix i.e. without the .nb or .thermo of the two files (case compose = true) |
compose | Are the file(s) in CompOSE format? |
Definition at line 65 of file dyneos_cons.C.
References Lorene::Dyn_eos_tab::compose_format, Lorene::Dyn_eos::name, read_table_compose(), read_table_lorene(), and Lorene::Dyn_eos_tab::tablename.
|
protected |
Constructor from a binary file (created by the function sauve(FILE*)
).
This constructor is protected because any EOS construction from a binary file must be done via the function Dyn_eos::eos_from_file(FILE*)
.
Definition at line 79 of file dyneos_cons.C.
References Lorene::Dyn_eos_tab::compose_format, Lorene::fread_be(), Lorene::Dyn_eos::name, read_table_compose(), read_table_lorene(), and Lorene::Dyn_eos_tab::tablename.
|
protected |
Constructor from a formatted file.
This constructor is protected because any EOS construction from a formatted file must be done via the function Dyn_eos::eos_from_file
(ifstream& ) .
ist | input file stream containing a name as first line and the full filename (including the path) containing the EOS file as second line |
Definition at line 104 of file dyneos_cons.C.
References Lorene::Dyn_eos_tab::compose_format, Lorene::Dyn_eos::name, read_table_compose(), read_table_lorene(), and Lorene::Dyn_eos_tab::tablename.
|
private |
Copy constructor (private to make Dyn_eos_cons
a non-copiable class)
|
virtual |
Destructor.
Definition at line 123 of file dyneos_cons.C.
|
protectedinherited |
General computational method for Scalar
's.
thermo | [input] thermodynamical quantity (for instance the density 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 Dyn_eos which performs the pointwise calculation. |
par | possible extra parameters of the EOS |
resu | [output] result of the computation. |
Definition at line 196 of file dyneos.C.
References Lorene::Scalar::get_etat().
Conversion operator from Eos
to Dyn_eos
.
Works only for relativistic polytropes and tabulated EOSs.
Definition at line 120 of file dyneos.C.
References Lorene::Eos_poly::get_gam(), Lorene::Eos_poly::get_kap(), Lorene::Eos_poly::get_m_0(), Lorene::Eos_poly::get_mu_0(), Lorene::Eos::get_name(), and Lorene::Eos::identify().
|
inherited |
Computes the sound speed squared from the baryon density with extra parameters.
nbar | [input, unit: ] baryon density |
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. |
par | possible extra parameters of the EOS |
Definition at line 300 of file dyneos.C.
References Lorene::Dyn_eos::calcule(), Lorene::Dyn_eos::csound_square_nbar_p(), and Lorene::Tensor::get_mp().
|
virtualinherited |
Computes the sound speed squared from the baryon density with extra parameters.
nbar | [input, unit: ] baryon density |
par | possible extra parameters of the EOS |
Implements Lorene::Dyn_eos.
Definition at line 474 of file dyneos_tab.C.
References Lorene::Dyn_eos_tab::c_sound2, Lorene::Tbl::get_taille(), Lorene::log10(), Lorene::Dyn_eos_tab::lognb, Lorene::Dyn_eos_tab::nbmax, and Lorene::Dyn_eos_tab::nbmin.
|
inherited |
Computes the total energy density from the baryon density and extra parameters.
nbar | [input, unit: ] baryon density |
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. |
par | possible extra parameters of the EOS |
Definition at line 276 of file dyneos.C.
References Lorene::Dyn_eos::calcule(), Lorene::Dyn_eos::ener_nbar_p(), and Lorene::Tensor::get_mp().
|
virtualinherited |
Computes the total energy density from the baryon density and extra parameters (virtual function implemented in the derived classes).
nbar | [input, unit: ] baryon density |
par | possible extra parameters of the EOS |
Implements Lorene::Dyn_eos.
Definition at line 424 of file dyneos_tab.C.
References Lorene::Dyn_eos_tab::dlesdlnb, Lorene::Tbl::get_taille(), Lorene::log10(), Lorene::Dyn_eos_tab::loge, Lorene::Dyn_eos_tab::lognb, Lorene::Dyn_eos_tab::nbmax, Lorene::Dyn_eos_tab::nbmin, and Lorene::pow().
|
inherited |
Computes the log-enthalpy field from the baryon density field and extra parameters.
nbar | [input, unit: ] baryon density |
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. |
par | possible extra parameters of the EOS |
Definition at line 263 of file dyneos.C.
References Lorene::Dyn_eos::calcule(), Lorene::Dyn_eos::ent_nbar_p(), and Lorene::Tensor::get_mp().
|
virtualinherited |
Computes the log-enthalpy from the baryon density and extra parameters (virtual function implemented in the derived classes).
nbar | [input, unit: ] baryon density |
par | possible extra parameters of the EOS |
Implements Lorene::Dyn_eos.
Definition at line 399 of file dyneos_tab.C.
References Lorene::Dyn_eos_tab::dlesdlnb, Lorene::Tbl::get_taille(), Lorene::log(), Lorene::log10(), Lorene::Dyn_eos_tab::loge, Lorene::Dyn_eos_tab::lognb, Lorene::Dyn_eos_tab::nbmax, Lorene::Dyn_eos_tab::nbmin, and Lorene::pow().
|
staticinherited |
Construction of an EOS from a binary file.
The file must have been created by the function sauve(FILE*)
.
Definition at line 323 of file dyneos.C.
References Lorene::fread_be().
|
staticinherited |
Construction of an EOS from a formatted file.
The fist line of the file must start by the EOS number, according to the following conventions (same as fo the classes Eos
):
Dyn_eos_poly
).Dyn_eos_poly_newt
).Dyn_eos_tab
).Dyn_eos_cons
).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.
|
inherited |
|
virtual |
Returns a number to identify the sub-classe of Dyn_eos
the object belongs to.
Reimplemented from Lorene::Dyn_eos_tab.
|
virtual |
Comparison operator (difference)
Reimplemented from Lorene::Dyn_eos_tab.
Definition at line 145 of file dyneos_cons.C.
References operator==().
|
virtual |
Comparison operator (egality)
Reimplemented from Lorene::Dyn_eos_tab.
Definition at line 132 of file dyneos_cons.C.
References Lorene::Dyn_eos::identify(), and identify().
|
protectedvirtual |
Operator >>
Reimplemented from Lorene::Dyn_eos_tab.
Definition at line 155 of file dyneos_cons.C.
References Lorene::Dyn_eos_tab::authors, Lorene::Dyn_eos_tab::compose_format, Lorene::Tbl::get_taille(), Lorene::Dyn_eos_tab::lognb, and Lorene::Dyn_eos_tab::tablename.
|
inherited |
Computes the pressure from the baryon density and extra parameters.
nbar | [input, unit: ] baryon density |
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. |
par | possible extra parameters of the EOS |
Definition at line 288 of file dyneos.C.
References Lorene::Dyn_eos::calcule(), Lorene::Tensor::get_mp(), and Lorene::Dyn_eos::press_nbar_p().
|
virtualinherited |
Computes the pressure from the baryon density and extra parameters (virtual function implemented in the derived classes).
nbar | [input, unit: ] baryon density |
par | possible extra parameters of the EOS |
Implements Lorene::Dyn_eos.
Definition at line 447 of file dyneos_tab.C.
References Lorene::Dyn_eos_tab::dlesdlnb, Lorene::Tbl::get_taille(), Lorene::log10(), Lorene::Dyn_eos_tab::loge, Lorene::Dyn_eos_tab::lognb, Lorene::Dyn_eos_tab::nbmax, Lorene::Dyn_eos_tab::nbmin, and Lorene::pow().
|
protectedvirtual |
Reads the files .nb and .thermo containing the table in CompOSE format and initializes the arrays lognb
, loge
and dlesdlnb
.
Reimplemented from Lorene::Dyn_eos_tab.
Definition at line 274 of file dyneos_cons.C.
References Lorene::Dyn_eos_tab::c_sound2, Lorene::compute_derivative(), Lorene::diffrelmax(), Lorene::Dyn_eos_tab::dlesdlnb, Lorene::exp(), Lorene::integ1D(), Lorene::log(), Lorene::log10(), Lorene::Dyn_eos_tab::loge, Lorene::Dyn_eos_tab::lognb, Lorene::Dyn_eos_tab::nbmax, Lorene::Dyn_eos_tab::nbmin, Lorene::pow(), Lorene::Tbl::set(), Lorene::Tbl::set_etat_qcq(), and Lorene::Dyn_eos_tab::tablename.
|
protectedvirtual |
Reads the file containing the table in LORENE format and initializes the arrays lognb
, loge
and dlesdlnb
.
Reimplemented from Lorene::Dyn_eos_tab.
Definition at line 172 of file dyneos_cons.C.
References Lorene::Dyn_eos_tab::authors, Lorene::Dyn_eos_tab::c_sound2, Lorene::compute_derivative(), Lorene::diffrelmax(), Lorene::Dyn_eos_tab::dlesdlnb, Lorene::exp(), Lorene::integ1D(), Lorene::log(), Lorene::log10(), Lorene::Dyn_eos_tab::loge, Lorene::Dyn_eos_tab::lognb, Lorene::Dyn_eos_tab::nbmax, Lorene::Dyn_eos_tab::nbmin, Lorene::pow(), Lorene::Tbl::set(), Lorene::Tbl::set_etat_qcq(), and Lorene::Dyn_eos_tab::tablename.
|
virtualinherited |
Save in a file.
Reimplemented from Lorene::Dyn_eos.
Definition at line 176 of file dyneos_tab.C.
References Lorene::Dyn_eos_tab::compose_format, Lorene::fwrite_be(), Lorene::Dyn_eos::sauve(), and Lorene::Dyn_eos_tab::tablename.
|
inherited |
|
friend |
The construction functions from a file.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |