Lorene::Ideal_gas Class Reference
Equations of state

Ideal-gas (temperature-dependent) equation of state, with mass-term in the energy density. More...

`#include <hoteos.h>`

Inheritance diagram for Lorene::Ideal_gas:

## Public Member Functions

| Ideal_gas (double gamma, double kappa, double mass=1.)
| Standard constructor.
| Ideal_gas (const Ideal_gas &)
| Copy constructor.
virtual | ~Ideal_gas ()
| Destructor.
void | operator= (const Ideal_gas &)
| Assignment to another `Ideal_gas`.
virtual bool | operator== (const Hot_eos &) const
| Comparison operator (egality).
virtual bool | operator!= (const Hot_eos &) const
| Comparison operator (difference).
virtual int | identify () const
| Returns a number to identify the sub-classe of `Hot_eos` the object belongs to.
double | get_gam () const
| Returns the adiabatic index (cf. Eq. (1)).
double | get_kap () const
| Returns the pressure coefficient (cf. Eq. (1)).
double | get_m_0 () const
| Return the individual particule mass (cf.
virtual const Eos & | new_cold_Eos () const
| Returns the corresponding cold `Eos`.
virtual void | sauve (FILE *) const
| Save in a file.
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).
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).
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).
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).
const string & | get_name () const
| Returns the hot EOS name.
void | set_name (const char *)
| Sets the hot EOS name.
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.
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.
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.
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.

## Static Public Member Functions

static Hot_eos * | hoteos_from_file (FILE *)
| Construction of an EOS from a binary file.
static Hot_eos * | hoteos_from_file (ifstream &)
| Construction of a hot EOS from a formatted file.

## Protected Member Functions

| Ideal_gas (FILE *)
| Constructor from a binary file (created by the function `sauve(FILE*)` ).
| Ideal_gas (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 >>.
virtual void | del_deriv () const
| Deletes all the derived quantities.
void | set_der_0x0 () const
| Sets to `0x0` all the pointers on derived quantities.
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.

## Protected Attributes

double | gam
| Adiabatic index .
double | kap
| Pressure coefficient (cf.
double | m_0
| Individual particule mass (cf.
double | gam1
double | unsgam1
double | gam1sgamkap
string | name
| EOS name.
Eos * | p_cold_eos
| Corresponding cold Eos.

## Friends

Hot_eos * | Hot_eos::hoteos_from_file (FILE *)
| The construction functions from a file.
Hot_eos * | Hot_eos::hoteos_from_file (ifstream &)

## Detailed Description

Ideal-gas (temperature-dependent) equation of state, with mass-term in the energy density.

and

### (to be written...)

()

Definition at line 362 of file hoteos.h.

## Constructor & Destructor Documentation

## Ideal_gas() [1/4]

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 .

Parameters

  gamma | adiabatic index
  kappa | pressure coefficient
  mass | individual particule mass

Definition at line 64 of file ideal_gas.C.

References gam, Lorene::Hot_eos::Hot_eos(), kap, m_0, and set_auxiliary().

## Ideal_gas() [2/4]

Lorene::Ideal_gas::Ideal_gas | ( | const Ideal_gas & | eosi | ) |

Copy constructor.

Definition at line 73 of file ideal_gas.C.

References gam, Lorene::Hot_eos::Hot_eos(), Ideal_gas(), kap, m_0, and set_auxiliary().

## Ideal_gas() [3/4]

Lorene::Ideal_gas::Ideal_gas | ( | FILE * | fich | ) |

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 82 of file ideal_gas.C.

References Lorene::fread_be(), gam, Lorene::Hot_eos::Hot_eos(), kap, m_0, and set_auxiliary().

## Ideal_gas() [4/4]

Lorene::Ideal_gas::Ideal_gas | ( | ifstream & | fich | ) |

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 96 of file ideal_gas.C.

References gam, Lorene::Hot_eos::Hot_eos(), kap, m_0, and set_auxiliary().

## ~Ideal_gas()

Lorene::Ideal_gas::~Ideal_gas | ( |  | ) |

virtual

Destructor.

Definition at line 110 of file ideal_gas.C.

## Member Function Documentation

## calcule()

void Lorene::Hot_eos::calcule | ( | const Scalar & | thermo1,
|  | const Scalar & | thermo2,
|  | int | nzet,
|  | int | l_min,
|  | double(Hot_eos::* | fait )(double, double) const,
|  | Scalar & | resu ) const

protected inherited

General computational method for `Scalar` 's.

Parameters

  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::annule(), Lorene::Tbl::annule_hard(), Lorene::Valeur::annule_hard(), Lorene::Valeur::c, Lorene::Valeur::coef_i(), Lorene::Tbl::dim, Lorene::Scalar::get_etat(), Lorene::Tbl::get_etat(), Lorene::Valeur::get_mg(), Lorene::Tensor::get_mp(), Lorene::Mg3d::get_nzone(), Lorene::Scalar::get_spectral_va(), Lorene::Tbl::get_taille(), Hot_eos(), 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.

## del_deriv()

void Lorene::Hot_eos::del_deriv | ( |  | ) | const

protected virtual inherited

Deletes all the derived quantities.

Definition at line 109 of file hoteos.C.

References p_cold_eos, and set_der_0x0().

## ener_Hs()

Scalar Lorene::Hot_eos::ener_Hs | ( | const Scalar & | ent,
|  | const Scalar & | sb,
|  | int | nzet,
|  | int | l_min = 0 ) const

inherited

Computes the total energy density from the log-enthalpy and entropy per baryon.

Parameters

  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.

Returns
  energy density [unit: ], where

Definition at line 252 of file hoteos.C.

References calcule(), ener_Hs_p(), and Lorene::Tensor::get_mp().

## ener_Hs_p()

double Lorene::Ideal_gas::ener_Hs_p | ( | double | ent,
|  | double | sb ) const

virtual

Computes the total energy density from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).

Parameters

  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

Returns
  energy density e [unit: ], where

Implements Lorene::Hot_eos.

Definition at line 263 of file ideal_gas.C.

References Lorene::exp(), gam, gam1, gam1sgamkap, kap, m_0, Lorene::pow(), and unsgam1.

## get_gam()

double Lorene::Ideal_gas::get_gam | ( |  | ) | const

Returns the adiabatic index (cf. Eq. (1)).

Definition at line 143 of file ideal_gas.C.

References gam.

## get_kap()

double Lorene::Ideal_gas::get_kap | ( |  | ) | const

Returns the pressure coefficient (cf. Eq. (1)).

Definition at line 147 of file ideal_gas.C.

References kap.

## get_m_0()

double Lorene::Ideal_gas::get_m_0 | ( |  | ) | const

Return the individual particule mass (cf.

Eq. (1))

Definition at line 151 of file ideal_gas.C.

References m_0.

## get_name()

const string & Lorene::Hot_eos::get_name | ( |  | ) | const

inline inherited

Returns the hot EOS name.

Definition at line 120 of file hoteos.h.

References name.

## hoteos_from_file() [1/2]

Hot_eos * Lorene::Hot_eos::hoteos_from_file | ( | FILE * | fich | ) |

static inherited

Construction of an EOS from a binary file.

The file must have been created by the function `sauve(FILE*)` .

Definition at line 67 of file hoteos_from_file.C.

References Lorene::fread_be(), and Hot_eos().

## hoteos_from_file() [2/2]

Hot_eos * Lorene::Hot_eos::hoteos_from_file | ( | ifstream & | fich | ) |

static inherited

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:

- 1 = relativistic ideal gas (class `Ideal_gas` ).
- 2 = non-relativistic ideal gas (class `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 104 of file hoteos_from_file.C.

References Hot_eos().

## identify()

int Lorene::Ideal_gas::identify | ( |  | ) | const

virtual

Returns a number to identify the sub-classe of `Hot_eos` the object belongs to.

Implements Lorene::Hot_eos.

Definition at line 58 of file hoteos_from_file.C.

## nbar_Hs()

Scalar Lorene::Hot_eos::nbar_Hs | ( | const Scalar & | ent,
|  | const Scalar & | sb,
|  | int | nzet,
|  | int | l_min = 0 ) const

inherited

Computes the baryon density field from the log-enthalpy field and entropy per baryon.

Parameters

  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.

Returns
  baryon density [unit: ]

Definition at line 236 of file hoteos.C.

References calcule(), Lorene::Tensor::get_mp(), and nbar_Hs_p().

## nbar_Hs_p()

double Lorene::Ideal_gas::nbar_Hs_p | ( | double | ent,
|  | double | sb ) const

virtual

Computes the baryon density from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).

Parameters

  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

Returns
  baryon density [unit: ]

Implements Lorene::Hot_eos.

Definition at line 250 of file ideal_gas.C.

References Lorene::exp(), gam1sgamkap, Lorene::pow(), and unsgam1.

## new_cold_Eos()

const Eos & Lorene::Ideal_gas::new_cold_Eos | ( |  | ) | const

virtual

Returns the corresponding cold `Eos`.

Implements Lorene::Hot_eos.

Definition at line 160 of file ideal_gas.C.

References gam, kap, m_0, and Lorene::Hot_eos::p_cold_eos.

## operator!=()

bool Lorene::Ideal_gas::operator!= | ( | const Hot_eos & | eos_i | ) | const

virtual

Comparison operator (difference).

Implements Lorene::Hot_eos.

Definition at line 212 of file ideal_gas.C.

References Lorene::Hot_eos::Hot_eos(), and operator==().

## operator=()

void Lorene::Ideal_gas::operator= | ( | const Ideal_gas & | eosi | ) |

Assignment to another `Ideal_gas`.

Definition at line 116 of file ideal_gas.C.

References gam, Ideal_gas(), kap, m_0, Lorene::Hot_eos::name, and set_auxiliary().

## operator==()

bool Lorene::Ideal_gas::operator== | ( | const Hot_eos & | eos_i | ) | const

virtual

Comparison operator (egality).

Implements Lorene::Hot_eos.

Definition at line 175 of file ideal_gas.C.

References gam, Lorene::Hot_eos::Hot_eos(), Ideal_gas(), Lorene::Hot_eos::identify(), identify(), kap, and m_0.

## operator>>()

ostream & Lorene::Ideal_gas::operator>> | ( | ostream & | ost | ) | const

protected virtual

Operator >>.

Implements Lorene::Hot_eos.

Definition at line 231 of file ideal_gas.C.

References gam, kap, and m_0.

## press_Hs()

Scalar Lorene::Hot_eos::press_Hs | ( | const Scalar & | ent,
|  | const Scalar & | sb,
|  | int | nzet,
|  | int | l_min = 0 ) const

inherited

Computes the pressure from the log-enthalpy and entropy per baryon.

Parameters

  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.

Returns
  pressure [unit: ], where

Definition at line 266 of file hoteos.C.

References calcule(), Lorene::Tensor::get_mp(), and press_Hs_p().

## press_Hs_p()

double Lorene::Ideal_gas::press_Hs_p | ( | double | ent,
|  | double | sb ) const

virtual

Computes the pressure from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).

Parameters

  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

Returns
  pressure p [unit: ], where

Implements Lorene::Hot_eos.

Definition at line 279 of file ideal_gas.C.

References Lorene::exp(), gam, gam1, gam1sgamkap, kap, Lorene::pow(), and unsgam1.

## sauve()

void Lorene::Ideal_gas::sauve | ( | FILE * | fich | ) | const

virtual

Save in a file.

Reimplemented from Lorene::Hot_eos.

Definition at line 221 of file ideal_gas.C.

References Lorene::fwrite_be(), gam, kap, m_0, and Lorene::Hot_eos::sauve().

## set_auxiliary()

void Lorene::Ideal_gas::set_auxiliary | ( |  | ) |

protected

Computes the auxiliary quantities `gam1` , `unsgam1` , `gam1sgamkap` from the values of `gam` and `kap`.

Definition at line 133 of file ideal_gas.C.

References gam, gam1, gam1sgamkap, kap, m_0, and unsgam1.

## set_der_0x0()

void Lorene::Hot_eos::set_der_0x0 | ( |  | ) | const

protected inherited

Sets to `0x0` all the pointers on derived quantities.

Definition at line 114 of file hoteos.C.

References p_cold_eos.

## set_name()

void Lorene::Hot_eos::set_name | ( | const char * | name_i | ) |

inherited

Sets the hot EOS name.

Definition at line 118 of file hoteos.C.

References name.

## temp_Hs()

Scalar Lorene::Hot_eos::temp_Hs | ( | const Scalar & | ent,
|  | const Scalar & | sb,
|  | int | nzet,
|  | int | l_min = 0 ) const

inherited

Computes the temperature field from the log-enthalpy field and entropy per baryon.

Parameters

  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.

Returns
  temperature [unit: MeV]

Definition at line 280 of file hoteos.C.

References calcule(), Lorene::Tensor::get_mp(), and temp_Hs_p().

## temp_Hs_p()

double Lorene::Ideal_gas::temp_Hs_p | ( | double | ent,
|  | double | sb ) const

virtual

Computes the temperature from the log-enthalpy and entropy per baryon (virtual function implemented in the derived classes).

Parameters

  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

Returns
  temperature [unit: MeV]

Implements Lorene::Hot_eos.

Definition at line 294 of file ideal_gas.C.

References Lorene::exp(), gam1sgamkap, and kap.

## Friends And Related Symbol Documentation

## Hot_eos::hoteos_from_file

Hot_eos * Hot_eos::hoteos_from_file | ( | FILE * |  | ) |

friend

The construction functions from a file.

References Lorene::Hot_eos::Hot_eos(), and Ideal_gas().

## Member Data Documentation

## gam

double Lorene::Ideal_gas::gam

protected

Adiabatic index .

Definition at line 369 of file hoteos.h.

## gam1

double Lorene::Ideal_gas::gam1

protected

Definition at line 383 of file hoteos.h.

## gam1sgamkap

double Lorene::Ideal_gas::gam1sgamkap

protected

Definition at line 385 of file hoteos.h.

## kap

double Lorene::Ideal_gas::kap

protected

Pressure coefficient (cf.

Eq. (1)) [unit: ], where and .

Definition at line 376 of file hoteos.h.

## m_0

double Lorene::Ideal_gas::m_0

protected

Individual particule mass (cf.

Eq. (2)) [unit: ].

Definition at line 381 of file hoteos.h.

## name

string Lorene::Hot_eos::name

protected inherited

EOS name.

Definition at line 72 of file hoteos.h.

## p_cold_eos

Eos* Lorene::Hot_eos::p_cold_eos

mutable protected inherited

Corresponding cold Eos.

Definition at line 108 of file hoteos.h.

## unsgam1

double Lorene::Ideal_gas::unsgam1

protected

Definition at line 384 of file hoteos.h.

The documentation for this class was generated from the following files:

- hoteos.h
- hoteos_from_file.C
- ideal_gas.C