|
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). | |
| Dyn_eos_poly (double gamma, double kappa, double mass) | |
Standard constructor with individual particle mass (sets mu_0 to 1). | |
| Dyn_eos_poly (double gamma, double kappa, double mass, double mu_zero) | |
| Standard constructor with individual particle mass and zero-pressure chemical potential. | |
| Dyn_eos_poly (const Dyn_eos_poly &) | |
| Copy constructor. | |
| virtual | ~Dyn_eos_poly () |
| Destructor. | |
| void | operator= (const Dyn_eos_poly &) |
Assignment to another Dyn_eos_poly. | |
| virtual bool | operator== (const Dyn_eos &) const |
| Comparison operator (egality). | |
| virtual bool | operator!= (const Dyn_eos &) const |
| Comparison operator (difference). | |
| virtual int | identify () const |
Returns a number to identify the sub-classe of Dyn_eos the object belongs to. | |
| double | get_gam () const |
Returns the adiabatic index ![]() | |
| double | get_kap () const |
Returns the pressure coefficient ![]() | |
| double | get_m_0 () const |
Return the individual particule mass ![]() | |
| double | get_mu_0 () const |
Return the relativistic chemical potential at zero pressure [unit: ![]() ![]() | |
| virtual void | sauve (FILE *) const |
| Save in a file. | |
| 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). | |
| 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). | |
| 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). | |
| virtual double | csound_square_nbar_p (double nbar, const Param *par=0x0) const |
Computes the sound speed squared ![]() | |
| const string & | get_name () const |
| Returns the EOS name. | |
| void | set_name (const string &) |
| Sets the EOS name. | |
| 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. | |
| 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. | |
| 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. | |
| Scalar | csound_square_nbar (const Scalar &nbar, int nzet, int l_min=0, Param *par=0x0) const |
Computes the sound speed squared ![]() | |
Static Public Member Functions | |
| static Dyn_eos * | convert_from_Eos (const Eos &) |
Conversion operator from Eos to Dyn_eos. | |
| static Dyn_eos * | eos_from_file (FILE *) |
| Construction of an EOS from a binary file. | |
| static Dyn_eos * | eos_from_file (ifstream &) |
| Construction of an EOS from a formatted file. | |
Protected Member Functions | |
| Dyn_eos_poly (FILE *) | |
Constructor from a binary file (created by the function sauve(FILE*) ). | |
| Dyn_eos_poly (ifstream &) | |
| Constructor from a formatted file. | |
| void | set_auxiliary () |
Computes the auxiliary quantities gam1 , unsgam1 , gam1sgamkap from the values of gam and kap. | |
| virtual ostream & | operator>> (ostream &) const |
| Operator >>. | |
| 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. | |
Protected Attributes | |
| double | gam |
Adiabatic index ![]() | |
| double | kap |
Pressure coefficient ![]() | |
| double | m_0 |
Individual particule mass ![]() | |
| double | mu_0 |
Relativistic chemical potential at zero pressure [unit: ![]() ![]() | |
| double | gam1 |
![]() | |
| double | kapsgam1 |
![]() | |
| double | gamkapsgam1 |
![]() | |
| double | rel_mu_0 |
![]() | |
| string | name |
| EOS name. | |
Friends | |
| Dyn_eos * | Dyn_eos::eos_from_file (FILE *) |
| The construction functions from a file. | |
| 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 
![\[ e(n) = {\kappa \over \gamma-1} n^\gamma + \mu_0 \, n \ , \qquad \qquad (1)
\]](form_243.png)
where 
![\[ \mu(n) := {de\over dn} = {\kappa \gamma \over \gamma-1} n^{\gamma-1}
+ \mu_0 \ .\qquad \qquad (2)
\]](form_245.png)
The pressure is given by the (zero-temperature) First Law of Thermodynamics: 
![\[ p(n) = \kappa n^\gamma \ . \qquad \qquad (3)
\]](form_247.png)
The log-enthalpy is defined as the logarithm of the ratio of the enthalpy par particle by the partical rest mass energy :
![\[ H(n) := c^2 \ln \left( {e+p \over m_0 c^2\, n} \right) \ . \qquad \qquad (4)
\]](form_248.png)
According to the (zero-temperature) First Law of Thermodynamics, the log-enthalpy is related to the chemical potential by
![\[ H = c^2 \ln \left( {\mu \over m_0 c^2} \right) \ . \qquad \qquad (5)
\]](form_249.png)
()
| 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 

| gamma | adiabatic index ![]() |
| kappa | pressure coefficient ![]() (cf. Eq. (3)) [unit: ![]() ![]() ![]() |
Definition at line 67 of file dyneos_poly.C.
References Lorene::Dyn_eos::Dyn_eos(), gam, kap, m_0, mu_0, and 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 ![]() |
| kappa | pressure coefficient ![]() ![]() ![]() ![]() |
| mass | individual particule mass ![]() ![]() |
Definition at line 76 of file dyneos_poly.C.
References Lorene::Dyn_eos::Dyn_eos(), gam, kap, m_0, mu_0, and 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 ![]() |
| kappa | pressure coefficient ![]() ![]() ![]() ![]() |
| mass | individual particule mass ![]() ![]() |
| mu_zero | Relativistic chemical potential at zero pressure [unit: ![]() ![]() |
Definition at line 85 of file dyneos_poly.C.
References Lorene::Dyn_eos::Dyn_eos(), gam, kap, m_0, mu_0, and set_auxiliary().
| Lorene::Dyn_eos_poly::Dyn_eos_poly | ( | const Dyn_eos_poly & | eosi | ) |
Copy constructor.
Definition at line 94 of file dyneos_poly.C.
References Lorene::Dyn_eos::Dyn_eos(), Dyn_eos_poly(), gam, kap, m_0, mu_0, and set_auxiliary().
|
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::Dyn_eos::Dyn_eos(), 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 Lorene::Dyn_eos::Dyn_eos(), 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::annule(), Lorene::Valeur::c, Lorene::Valeur::coef_i(), Dyn_eos(), Lorene::Scalar::get_etat(), Lorene::Tbl::get_etat(), Lorene::Tensor::get_mp(), Lorene::Mg3d::get_nzone(), Lorene::Scalar::get_spectral_va(), Lorene::Tbl::get_taille(), Lorene::Map(), Lorene::Valeur::set_etat_c_qcq(), Lorene::Mtbl::set_etat_qcq(), Lorene::Scalar::set_etat_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Scalar::set_etat_zero(), Lorene::Tbl::set_etat_zero(), Lorene::Scalar::set_spectral_va(), Lorene::Mtbl::t, and Lorene::Tbl::t.
Conversion operator from Eos to Dyn_eos.
Works only for relativistic polytropes and tabulated EOSs.
Definition at line 120 of file dyneos.C.
References Dyn_eos(), 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 
| nbar | [input, unit: ![]() |
| 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 calcule(), csound_square_nbar_p(), and Lorene::Tensor::get_mp().
|
virtual |
Computes the sound speed squared 
| nbar | [input, unit: ![]() |
| par | possible extra parameters of the EOS |

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: ![]() |
| 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 calcule(), 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: ![]() |
| par | possible extra parameters of the EOS |


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: ![]() |
| 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 calcule(), 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: ![]() |
| par | possible extra parameters of the EOS |


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 Dyn_eos(), and 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.
Definition at line 362 of file dyneos.C.
References Dyn_eos().
| double Lorene::Dyn_eos_poly::get_gam | ( | ) | const |
Returns the adiabatic index 
Definition at line 178 of file dyneos_poly.C.
References gam.
| double Lorene::Dyn_eos_poly::get_kap | ( | ) | const |
Returns the pressure coefficient 
Eq. (3)) [unit: 


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 
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: 

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 Lorene::Dyn_eos::Dyn_eos(), and 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 Dyn_eos_poly(), 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 Lorene::Dyn_eos::Dyn_eos(), Dyn_eos_poly(), 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: ![]() |
| 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 calcule(), Lorene::Tensor::get_mp(), and press_nbar_p().
|
virtual |
Computes the pressure from the baryon density and extra parameters (virtual function implemented in the derived classes).
| nbar | [input, unit: ![]() |
| par | possible extra parameters of the EOS |


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.
References Lorene::Dyn_eos::Dyn_eos(), and Dyn_eos_poly().
|
protected |
|
protected |
|
protected |
|
protected |