Public Types | Public Member Functions | Static Public Attributes | List of all members
EquationsOfState::EquationOfState< IsRelativistic, 2 > Class Template Referenceabstract

Base class for equations of state which need two independent thermodynamic variables in order to determine the pressure. More...

#include <EquationOfState.hpp>

Public Types

using creatable_classes = typename detail::DerivedClasses< IsRelativistic, 2 >::type
 

Public Member Functions

 EquationOfState (const EquationOfState &)=default
 
EquationOfStateoperator= (const EquationOfState &)=default
 
 EquationOfState (EquationOfState &&)=default
 
EquationOfStateoperator= (EquationOfState &&)=default
 
 WRAPPED_PUPable_abstract (EquationOfState)
 
virtual double rest_mass_density_lower_bound () const noexcept=0
 The lower bound of the rest mass density that is valid for this EOS. More...
 
virtual double rest_mass_density_upper_bound () const noexcept=0
 The upper bound of the rest mass density that is valid for this EOS. More...
 
virtual double specific_internal_energy_lower_bound (const double rest_mass_density) const noexcept=0
 The lower bound of the specific internal energy that is valid for this EOS at the given rest mass density \(\rho\). More...
 
virtual double specific_internal_energy_upper_bound (const double rest_mass_density) const noexcept=0
 The upper bound of the specific internal energy that is valid for this EOS at the given rest mass density \(\rho\). More...
 
virtual double specific_enthalpy_lower_bound () const noexcept=0
 The lower bound of the specific enthalpy that is valid for this EOS. More...
 
virtual Scalar< double > pressure_from_density_and_energy (const Scalar< double > &, const Scalar< double > &) const noexcept=0
 
virtual Scalar< DataVectorpressure_from_density_and_energy (const Scalar< DataVector > &, const Scalar< DataVector > &) const noexcept=0
 
virtual Scalar< double > pressure_from_density_and_enthalpy (const Scalar< double > &, const Scalar< double > &) const noexcept=0
 
virtual Scalar< DataVectorpressure_from_density_and_enthalpy (const Scalar< DataVector > &, const Scalar< DataVector > &) const noexcept=0
 
virtual Scalar< double > specific_enthalpy_from_density_and_energy (const Scalar< double > &, const Scalar< double > &) const noexcept=0
 
virtual Scalar< DataVectorspecific_enthalpy_from_density_and_energy (const Scalar< DataVector > &, const Scalar< DataVector > &) const noexcept=0
 
virtual Scalar< double > specific_internal_energy_from_density_and_pressure (const Scalar< double > &, const Scalar< double > &) const noexcept=0
 
virtual Scalar< DataVectorspecific_internal_energy_from_density_and_pressure (const Scalar< DataVector > &, const Scalar< DataVector > &) const noexcept=0
 
virtual Scalar< double > chi_from_density_and_energy (const Scalar< double > &, const Scalar< double > &) const noexcept=0
 
virtual Scalar< DataVectorchi_from_density_and_energy (const Scalar< DataVector > &, const Scalar< DataVector > &) const noexcept=0
 
virtual Scalar< double > kappa_times_p_over_rho_squared_from_density_and_energy (const Scalar< double > &, const Scalar< double > &) const noexcept=0
 
virtual Scalar< DataVectorkappa_times_p_over_rho_squared_from_density_and_energy (const Scalar< DataVector > &, const Scalar< DataVector > &) const noexcept=0
 

Static Public Attributes

static constexpr bool is_relativistic = IsRelativistic
 
static constexpr size_t thermodynamic_dim = 2
 

Detailed Description

template<bool IsRelativistic>
class EquationsOfState::EquationOfState< IsRelativistic, 2 >

Base class for equations of state which need two independent thermodynamic variables in order to determine the pressure.

The template parameter IsRelativistic is true for relativistic equations of state and false for non-relativistic equations of state.

Member Function Documentation

◆ chi_from_density_and_energy() [1/2]

template<bool IsRelativistic>
virtual Scalar< DataVector > EquationsOfState::EquationOfState< IsRelativistic, 2 >::chi_from_density_and_energy ( const Scalar< DataVector > &  ,
const Scalar< DataVector > &   
) const
pure virtualnoexcept

Computes \(\chi=\partial p / \partial \rho\) from the \(\rho\) and \(\epsilon\), where \(p\) is the pressure, \(\rho\) is the rest mass density, and \(\epsilon\) is the specific internal energy.

◆ chi_from_density_and_energy() [2/2]

template<bool IsRelativistic>
virtual Scalar< double > EquationsOfState::EquationOfState< IsRelativistic, 2 >::chi_from_density_and_energy ( const Scalar< double > &  ,
const Scalar< double > &   
) const
pure virtualnoexcept

Computes \(\chi=\partial p / \partial \rho\) from the \(\rho\) and \(\epsilon\), where \(p\) is the pressure, \(\rho\) is the rest mass density, and \(\epsilon\) is the specific internal energy.

◆ kappa_times_p_over_rho_squared_from_density_and_energy() [1/2]

template<bool IsRelativistic>
virtual Scalar< DataVector > EquationsOfState::EquationOfState< IsRelativistic, 2 >::kappa_times_p_over_rho_squared_from_density_and_energy ( const Scalar< DataVector > &  ,
const Scalar< DataVector > &   
) const
pure virtualnoexcept

Computes \(\kappa p/\rho^2=(p/\rho^2)\partial p / \partial \epsilon\) from \(\rho\) and \(\epsilon\), where \(p\) is the pressure, \(\rho\) is the rest mass density, and \(\epsilon\) is the specific internal energy.

The reason for not returning just \(\kappa=\partial p / \partial \epsilon\) is to avoid division by zero for small values of \(\rho\) when assembling the speed of sound with some equations of state.

◆ kappa_times_p_over_rho_squared_from_density_and_energy() [2/2]

template<bool IsRelativistic>
virtual Scalar< double > EquationsOfState::EquationOfState< IsRelativistic, 2 >::kappa_times_p_over_rho_squared_from_density_and_energy ( const Scalar< double > &  ,
const Scalar< double > &   
) const
pure virtualnoexcept

Computes \(\kappa p/\rho^2=(p/\rho^2)\partial p / \partial \epsilon\) from \(\rho\) and \(\epsilon\), where \(p\) is the pressure, \(\rho\) is the rest mass density, and \(\epsilon\) is the specific internal energy.

The reason for not returning just \(\kappa=\partial p / \partial \epsilon\) is to avoid division by zero for small values of \(\rho\) when assembling the speed of sound with some equations of state.

◆ pressure_from_density_and_energy() [1/2]

template<bool IsRelativistic>
virtual Scalar< DataVector > EquationsOfState::EquationOfState< IsRelativistic, 2 >::pressure_from_density_and_energy ( const Scalar< DataVector > &  ,
const Scalar< DataVector > &   
) const
pure virtualnoexcept

Computes the pressure \(p\) from the rest mass density \(\rho\) and the specific internal energy \(\epsilon\).

◆ pressure_from_density_and_energy() [2/2]

template<bool IsRelativistic>
virtual Scalar< double > EquationsOfState::EquationOfState< IsRelativistic, 2 >::pressure_from_density_and_energy ( const Scalar< double > &  ,
const Scalar< double > &   
) const
pure virtualnoexcept

Computes the pressure \(p\) from the rest mass density \(\rho\) and the specific internal energy \(\epsilon\).

◆ pressure_from_density_and_enthalpy() [1/2]

template<bool IsRelativistic>
virtual Scalar< DataVector > EquationsOfState::EquationOfState< IsRelativistic, 2 >::pressure_from_density_and_enthalpy ( const Scalar< DataVector > &  ,
const Scalar< DataVector > &   
) const
pure virtualnoexcept

Computes the pressure \(p\) from the rest mass density \(\rho\) and the specific enthalpy \(h\).

◆ pressure_from_density_and_enthalpy() [2/2]

template<bool IsRelativistic>
virtual Scalar< double > EquationsOfState::EquationOfState< IsRelativistic, 2 >::pressure_from_density_and_enthalpy ( const Scalar< double > &  ,
const Scalar< double > &   
) const
pure virtualnoexcept

Computes the pressure \(p\) from the rest mass density \(\rho\) and the specific enthalpy \(h\).

◆ rest_mass_density_lower_bound()

template<bool IsRelativistic>
virtual double EquationsOfState::EquationOfState< IsRelativistic, 2 >::rest_mass_density_lower_bound ( ) const
pure virtualnoexcept

The lower bound of the rest mass density that is valid for this EOS.

Implemented in EquationsOfState::DarkEnergyFluid< IsRelativistic >, EquationsOfState::IdealFluid< IsRelativistic >, and EquationsOfState::IdealFluid< false >.

◆ rest_mass_density_upper_bound()

template<bool IsRelativistic>
virtual double EquationsOfState::EquationOfState< IsRelativistic, 2 >::rest_mass_density_upper_bound ( ) const
pure virtualnoexcept

The upper bound of the rest mass density that is valid for this EOS.

Implemented in EquationsOfState::DarkEnergyFluid< IsRelativistic >, EquationsOfState::IdealFluid< IsRelativistic >, and EquationsOfState::IdealFluid< false >.

◆ specific_enthalpy_from_density_and_energy() [1/2]

template<bool IsRelativistic>
virtual Scalar< DataVector > EquationsOfState::EquationOfState< IsRelativistic, 2 >::specific_enthalpy_from_density_and_energy ( const Scalar< DataVector > &  ,
const Scalar< DataVector > &   
) const
pure virtualnoexcept

Computes the specific enthalpy \(h\) from the rest mass density \(\rho\) and the specific internal energy \(\epsilon\).

◆ specific_enthalpy_from_density_and_energy() [2/2]

template<bool IsRelativistic>
virtual Scalar< double > EquationsOfState::EquationOfState< IsRelativistic, 2 >::specific_enthalpy_from_density_and_energy ( const Scalar< double > &  ,
const Scalar< double > &   
) const
pure virtualnoexcept

Computes the specific enthalpy \(h\) from the rest mass density \(\rho\) and the specific internal energy \(\epsilon\).

◆ specific_enthalpy_lower_bound()

template<bool IsRelativistic>
virtual double EquationsOfState::EquationOfState< IsRelativistic, 2 >::specific_enthalpy_lower_bound ( ) const
pure virtualnoexcept

The lower bound of the specific enthalpy that is valid for this EOS.

Implemented in EquationsOfState::DarkEnergyFluid< IsRelativistic >, EquationsOfState::IdealFluid< IsRelativistic >, and EquationsOfState::IdealFluid< false >.

◆ specific_internal_energy_from_density_and_pressure() [1/2]

template<bool IsRelativistic>
virtual Scalar< DataVector > EquationsOfState::EquationOfState< IsRelativistic, 2 >::specific_internal_energy_from_density_and_pressure ( const Scalar< DataVector > &  ,
const Scalar< DataVector > &   
) const
pure virtualnoexcept

Computes the specific internal energy \(\epsilon\) from the rest mass density \(\rho\) and the pressure \(p\).

◆ specific_internal_energy_from_density_and_pressure() [2/2]

template<bool IsRelativistic>
virtual Scalar< double > EquationsOfState::EquationOfState< IsRelativistic, 2 >::specific_internal_energy_from_density_and_pressure ( const Scalar< double > &  ,
const Scalar< double > &   
) const
pure virtualnoexcept

Computes the specific internal energy \(\epsilon\) from the rest mass density \(\rho\) and the pressure \(p\).

◆ specific_internal_energy_lower_bound()

template<bool IsRelativistic>
virtual double EquationsOfState::EquationOfState< IsRelativistic, 2 >::specific_internal_energy_lower_bound ( const double  rest_mass_density) const
pure virtualnoexcept

The lower bound of the specific internal energy that is valid for this EOS at the given rest mass density \(\rho\).

Implemented in EquationsOfState::DarkEnergyFluid< IsRelativistic >, EquationsOfState::IdealFluid< IsRelativistic >, and EquationsOfState::IdealFluid< false >.

◆ specific_internal_energy_upper_bound()

template<bool IsRelativistic>
virtual double EquationsOfState::EquationOfState< IsRelativistic, 2 >::specific_internal_energy_upper_bound ( const double  rest_mass_density) const
pure virtualnoexcept

The upper bound of the specific internal energy that is valid for this EOS at the given rest mass density \(\rho\).

Implemented in EquationsOfState::DarkEnergyFluid< IsRelativistic >, EquationsOfState::IdealFluid< IsRelativistic >, and EquationsOfState::IdealFluid< false >.


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