|
LORENE
|
Polytropic equation of state (relativistic case) for use in dynamical code. More...
#include <dyneos.h>
Public Member Functions | |
| Dyn_eos_poly (double gamma, double kappa) | |
Standard constructor (sets both m_0 and mu_0 to 1). More... | |
| Dyn_eos_poly (double gamma, double kappa, double mass) | |
Standard constructor with individual particle mass (sets mu_0 to 1). More... | |
| Dyn_eos_poly (double gamma, double kappa, double mass, double mu_zero) | |
| Standard constructor with individual particle mass and zero-pressure chemical potential. More... | |
| Dyn_eos_poly (const Dyn_eos_poly &) | |
| Copy constructor. More... | |
| virtual | ~Dyn_eos_poly () |
| Destructor. More... | |
| void | operator= (const Dyn_eos_poly &) |
Assignment to another Dyn_eos_poly. 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... | |
| double | get_gam () const |
Returns the adiabatic index (cf. Eq. (3)) More... | |
| double | get_kap () const |
Returns the pressure coefficient (cf. More... | |
| double | get_m_0 () const |
Return the individual particule mass (cf. More... | |
| double | get_mu_0 () const |
Return the relativistic chemical potential at zero pressure [unit: , with ]. 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_poly (FILE *) | |
Constructor from a binary file (created by the function sauve(FILE*) ). More... | |
| Dyn_eos_poly (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... | |
| 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 | |
| double | gam |
Adiabatic index (cf. Eq. (3)) More... | |
| double | kap |
Pressure coefficient (cf. More... | |
| double | m_0 |
Individual particule mass (cf. More... | |
| double | mu_0 |
Relativistic chemical potential at zero pressure [unit: , with ]. More... | |
| double | gam1 |
More... | |
| double | kapsgam1 |
More... | |
| double | gamkapsgam1 |
More... | |
| double | rel_mu_0 |
More... | |
| string | name |
| EOS name. 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 &) |
Polytropic equation of state (relativistic case) for use in dynamical code.
This equation of state (EOS) corresponds to identical relativistic particles of rest mass is
, whose total energy density e is related to their numerical density n by
where
is the chemical potential at zero pressure. The relativistic (i.e. including rest mass energy) chemical potential is then
The pressure is given by the (zero-temperature) First Law of Thermodynamics:
, so that
The log-enthalpy is defined as the logarithm of the ratio of the enthalpy par particle by the partical rest mass energy :
According to the (zero-temperature) First Law of Thermodynamics, the log-enthalpy is related to the chemical potential by
()
| Lorene::Dyn_eos_poly::Dyn_eos_poly | ( | double | gamma, |
| double | kappa | ||
| ) |
Standard constructor (sets both m_0 and mu_0 to 1).
The individual particle mass
is set to the mean baryon mass
.
| gamma | adiabatic index (cf. Eq. (3)) |
| kappa | pressure coefficient (cf. Eq. (3)) [unit: ], where and |
Definition at line 67 of file dyneos_poly.C.
References set_auxiliary().
| Lorene::Dyn_eos_poly::Dyn_eos_poly | ( | double | gamma, |
| double | kappa, | ||
| double | mass | ||
| ) |
Standard constructor with individual particle mass (sets mu_0 to 1).
| gamma | adiabatic index (cf. Eq. (3)) |
| kappa | pressure coefficient (cf. Eq. (3)) [unit: ], where and |
| mass | individual particule mass (cf. Eq. (1) [unit: ] |
Definition at line 76 of file dyneos_poly.C.
References set_auxiliary().
| Lorene::Dyn_eos_poly::Dyn_eos_poly | ( | double | gamma, |
| double | kappa, | ||
| double | mass, | ||
| double | mu_zero | ||
| ) |
Standard constructor with individual particle mass and zero-pressure chemical potential.
| gamma | adiabatic index (cf. Eq. (3)) |
| kappa | pressure coefficient (cf. Eq. (3)) [unit: ], where and |
| mass | individual particule mass (cf. Eq. (1)) [unit: ] |
| mu_zero | Relativistic chemical potential at zero pressure [unit: , with ]. (standard value: 1) |
Definition at line 85 of file dyneos_poly.C.
References set_auxiliary().
| Lorene::Dyn_eos_poly::Dyn_eos_poly | ( | const Dyn_eos_poly & | eosi | ) |
|
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 104 of file dyneos_poly.C.
References Lorene::fread_be(), gam, kap, m_0, mu_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 Dyn_eos::eos_from_file(ifstream&) .
Definition at line 125 of file dyneos_poly.C.
References gam, kap, m_0, mu_0, and set_auxiliary().
|
virtual |
Destructor.
Definition at line 146 of file dyneos_poly.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 |
[unit: c^2] 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().
|
virtual |
Computes the sound speed squared
from the baryon density with extra parameters.
| nbar | [input, unit: ] baryon density |
| par | possible extra parameters of the EOS |
[unit: c^2] Implements Lorene::Dyn_eos.
Definition at line 318 of file dyneos_poly.C.
References gam, gam1, kap, kapsgam1, mu_0, and Lorene::pow().
|
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 |
], where
Definition at line 276 of file dyneos.C.
References Lorene::Dyn_eos::calcule(), Lorene::Dyn_eos::ener_nbar_p(), and Lorene::Tensor::get_mp().
|
virtual |
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 |
], where
Implements Lorene::Dyn_eos.
Definition at line 298 of file dyneos_poly.C.
References gam, kapsgam1, mu_0, 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 |
, where e is the (total) energy density, p the pressure, n the baryon density, and
the baryon mass. Definition at line 263 of file dyneos.C.
References Lorene::Dyn_eos::calcule(), Lorene::Dyn_eos::ent_nbar_p(), and Lorene::Tensor::get_mp().
|
virtual |
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 |
, where e is the (total) energy density, p the pressure, n the baryon density, and
the baryon mass. Implements Lorene::Dyn_eos.
Definition at line 288 of file dyneos_poly.C.
References gam1, gamkapsgam1, Lorene::log(), Lorene::pow(), and rel_mu_0.
|
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.
| double Lorene::Dyn_eos_poly::get_gam | ( | ) | const |
Returns the adiabatic index
(cf. Eq. (3))
Definition at line 178 of file dyneos_poly.C.
References gam.
| double Lorene::Dyn_eos_poly::get_kap | ( | ) | const |
Returns the pressure coefficient
(cf.
Eq. (3)) [unit:
], where
and
.
Definition at line 183 of file dyneos_poly.C.
References kap.
| double Lorene::Dyn_eos_poly::get_m_0 | ( | ) | const |
Return the individual particule mass
(cf.
Eq. (1)) [unit:
].
Definition at line 188 of file dyneos_poly.C.
References m_0.
| double Lorene::Dyn_eos_poly::get_mu_0 | ( | ) | const |
Return the relativistic chemical potential at zero pressure [unit:
, with
].
Definition at line 193 of file dyneos_poly.C.
References mu_0.
|
inherited |
|
virtual |
Returns a number to identify the sub-classe of Dyn_eos the object belongs to.
Implements Lorene::Dyn_eos.
|
virtual |
Comparison operator (difference)
Implements Lorene::Dyn_eos.
Definition at line 248 of file dyneos_poly.C.
References operator==().
| void Lorene::Dyn_eos_poly::operator= | ( | const Dyn_eos_poly & | eosi | ) |
Assignment to another Dyn_eos_poly.
Definition at line 152 of file dyneos_poly.C.
References gam, kap, m_0, mu_0, Lorene::Dyn_eos::name, set_auxiliary(), and Lorene::Dyn_eos::set_name().
|
virtual |
Comparison operator (egality)
Implements Lorene::Dyn_eos.
Definition at line 204 of file dyneos_poly.C.
References gam, Lorene::Dyn_eos::identify(), identify(), kap, m_0, and mu_0.
|
protectedvirtual |
|
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 |
], where
Definition at line 288 of file dyneos.C.
References Lorene::Dyn_eos::calcule(), Lorene::Tensor::get_mp(), and Lorene::Dyn_eos::press_nbar_p().
|
virtual |
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 |
], where
Implements Lorene::Dyn_eos.
Definition at line 308 of file dyneos_poly.C.
References gam, kap, and Lorene::pow().
|
virtual |
Save in a file.
Reimplemented from Lorene::Dyn_eos.
Definition at line 258 of file dyneos_poly.C.
References Lorene::fwrite_be(), gam, kap, m_0, mu_0, and Lorene::Dyn_eos::sauve().
|
protected |
Computes the auxiliary quantities gam1 , unsgam1 , gam1sgamkap from the values of gam and kap.
Definition at line 170 of file dyneos_poly.C.
References gam, gam1, gamkapsgam1, kap, kapsgam1, m_0, mu_0, and rel_mu_0.
|
inherited |
|
friend |
The construction functions from a file.
|
protected |
|
protected |
|
protected |
|
protected |