SpECTRE  v2024.03.19
EquationsOfState::EquationOfState< IsRelativistic, 3 > Class Template Referenceabstract

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

#include <EquationOfState.hpp>

Public Types

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

Public Member Functions

 EquationOfState (const EquationOfState &)=default
 
EquationOfStateoperator= (const EquationOfState &)=default
 
 EquationOfState (EquationOfState &&)=default
 
EquationOfStateoperator= (EquationOfState &&)=default
 
 EquationOfState (CkMigrateMessage *msg)
 
 WRAPPED_PUPable_abstract (EquationOfState)
 
virtual std::unique_ptr< EquationOfState< IsRelativistic, 3 > > get_clone () const =0
 
virtual bool is_equal (const EquationOfState< IsRelativistic, 3 > &rhs) const =0
 
virtual std::unique_ptr< EquationOfState< IsRelativistic, 3 > > promote_to_3d_eos ()
 
virtual bool is_barotropic () const =0
 Returns true if the EOS is barotropic. More...
 
virtual double electron_fraction_lower_bound () const =0
 The lower bound of the electron fraction that is valid for this EOS. More...
 
virtual double electron_fraction_upper_bound () const =0
 The upper bound of the electron fraction that is valid for this EOS. More...
 
virtual double rest_mass_density_lower_bound () const =0
 The lower bound of the rest mass density that is valid for this EOS. More...
 
virtual double rest_mass_density_upper_bound () const =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 double electron_fraction) const =0
 The lower bound of the specific internal energy that is valid for this EOS at the given rest mass density \(\rho\) and electron fraction \(Y_e\). More...
 
virtual double specific_internal_energy_upper_bound (const double rest_mass_density, const double electron_fraction) const =0
 The upper bound of the specific internal energy that is valid for this EOS at the given rest mass density \(\rho\) and electron fraction \(Y_e\). More...
 
virtual double specific_enthalpy_lower_bound () const =0
 The lower bound of the specific enthalpy that is valid for this EOS. More...
 
virtual double temperature_lower_bound () const =0
 The lower bound of the temperature that is valid for this EOS. More...
 
virtual double temperature_upper_bound () const =0
 The upper bound of the temperature that is valid for this EOS. More...
 
virtual double baryon_mass () const
 The vacuum mass of a baryon for this EOS. More...
 
virtual Scalar< double > pressure_from_density_and_energy (const Scalar< double > &, const Scalar< double > &, const Scalar< double > &) const =0
 
virtual Scalar< DataVectorpressure_from_density_and_energy (const Scalar< DataVector > &, const Scalar< DataVector > &, const Scalar< DataVector > &) const =0
 
virtual Scalar< double > pressure_from_density_and_temperature (const Scalar< double > &, const Scalar< double > &, const Scalar< double > &) const =0
 
virtual Scalar< DataVectorpressure_from_density_and_temperature (const Scalar< DataVector > &, const Scalar< DataVector > &, const Scalar< DataVector > &) const =0
 
virtual Scalar< double > temperature_from_density_and_energy (const Scalar< double > &, const Scalar< double > &, const Scalar< double > &) const =0
 
virtual Scalar< DataVectortemperature_from_density_and_energy (const Scalar< DataVector > &, const Scalar< DataVector > &, const Scalar< DataVector > &) const =0
 
virtual Scalar< double > specific_internal_energy_from_density_and_temperature (const Scalar< double > &, const Scalar< double > &, const Scalar< double > &) const =0
 
virtual Scalar< DataVectorspecific_internal_energy_from_density_and_temperature (const Scalar< DataVector > &, const Scalar< DataVector > &, const Scalar< DataVector > &) const =0
 
virtual Scalar< double > sound_speed_squared_from_density_and_temperature (const Scalar< double > &, const Scalar< double > &, const Scalar< double > &) const =0
 
virtual Scalar< DataVectorsound_speed_squared_from_density_and_temperature (const Scalar< DataVector > &, const Scalar< DataVector > &, const Scalar< DataVector > &) const =0
 

Static Public Attributes

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

Detailed Description

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

Base class for equations of state which need three 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

◆ baryon_mass()

template<bool IsRelativistic>
virtual double EquationsOfState::EquationOfState< IsRelativistic, 3 >::baryon_mass ( ) const
inlinevirtual

The vacuum mass of a baryon for this EOS.

Reimplemented in EquationsOfState::Tabulated3D< IsRelativistic >.

◆ electron_fraction_lower_bound()

template<bool IsRelativistic>
virtual double EquationsOfState::EquationOfState< IsRelativistic, 3 >::electron_fraction_lower_bound ( ) const
pure virtual

The lower bound of the electron fraction that is valid for this EOS.

Implemented in EquationsOfState::Tabulated3D< IsRelativistic >.

◆ electron_fraction_upper_bound()

template<bool IsRelativistic>
virtual double EquationsOfState::EquationOfState< IsRelativistic, 3 >::electron_fraction_upper_bound ( ) const
pure virtual

The upper bound of the electron fraction that is valid for this EOS.

Implemented in EquationsOfState::Tabulated3D< IsRelativistic >.

◆ is_barotropic()

template<bool IsRelativistic>
virtual bool EquationsOfState::EquationOfState< IsRelativistic, 3 >::is_barotropic ( ) const
pure virtual

Returns true if the EOS is barotropic.

Implemented in EquationsOfState::Tabulated3D< IsRelativistic >.

◆ pressure_from_density_and_energy() [1/2]

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

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

◆ pressure_from_density_and_energy() [2/2]

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

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

◆ pressure_from_density_and_temperature() [1/2]

template<bool IsRelativistic>
virtual Scalar< DataVector > EquationsOfState::EquationOfState< IsRelativistic, 3 >::pressure_from_density_and_temperature ( const Scalar< DataVector > &  ,
const Scalar< DataVector > &  ,
const Scalar< DataVector > &   
) const
pure virtual

Computes the pressure \(p\) from the rest mass density \(\rho\), the temperature \(T\), and electron fraction \(Y_e\).

◆ pressure_from_density_and_temperature() [2/2]

template<bool IsRelativistic>
virtual Scalar< double > EquationsOfState::EquationOfState< IsRelativistic, 3 >::pressure_from_density_and_temperature ( const Scalar< double > &  ,
const Scalar< double > &  ,
const Scalar< double > &   
) const
pure virtual

Computes the pressure \(p\) from the rest mass density \(\rho\), the temperature \(T\), and electron fraction \(Y_e\).

◆ rest_mass_density_lower_bound()

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

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

Implemented in EquationsOfState::Tabulated3D< IsRelativistic >.

◆ rest_mass_density_upper_bound()

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

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

Implemented in EquationsOfState::Tabulated3D< IsRelativistic >.

◆ sound_speed_squared_from_density_and_temperature() [1/2]

template<bool IsRelativistic>
virtual Scalar< DataVector > EquationsOfState::EquationOfState< IsRelativistic, 3 >::sound_speed_squared_from_density_and_temperature ( const Scalar< DataVector > &  ,
const Scalar< DataVector > &  ,
const Scalar< DataVector > &   
) const
pure virtual

Computes adiabatic sound speed squared

\[ c_s^2 \equiv \frac{\partial p}{\partial e} |_{s, Y_e} = \frac{\rho}{h}\frac{\partial p}{\rho} |_{e, Y_e} + \frac{\partial p}{\partial e}|_{\rho, Y_e} \]

. With \(p, e\) the pressure and energy density respectively, \(s\) the entropy density, \(Y_e\) the electron fraction and \(\rho\) the rest-mass density. Computed as a function of temperature, rest-mass density and electron fraction. Note that this will break thermodynamic consistency if the pressure and internal energy interpolated separately. The precise impact of this will depend on the EoS and numerical scheme used for the evolution.

◆ sound_speed_squared_from_density_and_temperature() [2/2]

template<bool IsRelativistic>
virtual Scalar< double > EquationsOfState::EquationOfState< IsRelativistic, 3 >::sound_speed_squared_from_density_and_temperature ( const Scalar< double > &  ,
const Scalar< double > &  ,
const Scalar< double > &   
) const
pure virtual

Computes adiabatic sound speed squared

\[ c_s^2 \equiv \frac{\partial p}{\partial e} |_{s, Y_e} = \frac{\rho}{h}\frac{\partial p}{\rho} |_{e, Y_e} + \frac{\partial p}{\partial e}|_{\rho, Y_e} \]

. With \(p, e\) the pressure and energy density respectively, \(s\) the entropy density, \(Y_e\) the electron fraction and \(\rho\) the rest-mass density. Computed as a function of temperature, rest-mass density and electron fraction. Note that this will break thermodynamic consistency if the pressure and internal energy interpolated separately. The precise impact of this will depend on the EoS and numerical scheme used for the evolution.

◆ specific_enthalpy_lower_bound()

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

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

Implemented in EquationsOfState::Tabulated3D< IsRelativistic >.

◆ specific_internal_energy_from_density_and_temperature() [1/2]

template<bool IsRelativistic>
virtual Scalar< DataVector > EquationsOfState::EquationOfState< IsRelativistic, 3 >::specific_internal_energy_from_density_and_temperature ( const Scalar< DataVector > &  ,
const Scalar< DataVector > &  ,
const Scalar< DataVector > &   
) const
pure virtual

Computes the specific internal energy \(\epsilon\) from the rest mass density \(\rho\), the temperature \(T\), and electron fraction \(Y_e\).

◆ specific_internal_energy_from_density_and_temperature() [2/2]

template<bool IsRelativistic>
virtual Scalar< double > EquationsOfState::EquationOfState< IsRelativistic, 3 >::specific_internal_energy_from_density_and_temperature ( const Scalar< double > &  ,
const Scalar< double > &  ,
const Scalar< double > &   
) const
pure virtual

Computes the specific internal energy \(\epsilon\) from the rest mass density \(\rho\), the temperature \(T\), and electron fraction \(Y_e\).

◆ specific_internal_energy_lower_bound()

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

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

Implemented in EquationsOfState::Tabulated3D< IsRelativistic >.

◆ specific_internal_energy_upper_bound()

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

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

Implemented in EquationsOfState::Tabulated3D< IsRelativistic >.

◆ temperature_from_density_and_energy() [1/2]

template<bool IsRelativistic>
virtual Scalar< DataVector > EquationsOfState::EquationOfState< IsRelativistic, 3 >::temperature_from_density_and_energy ( const Scalar< DataVector > &  ,
const Scalar< DataVector > &  ,
const Scalar< DataVector > &   
) const
pure virtual

Computes the temperature \(T\) from the rest mass density \(\rho\), the specific internal energy \(\epsilon\), and electron fraction \(Y_e\).

◆ temperature_from_density_and_energy() [2/2]

template<bool IsRelativistic>
virtual Scalar< double > EquationsOfState::EquationOfState< IsRelativistic, 3 >::temperature_from_density_and_energy ( const Scalar< double > &  ,
const Scalar< double > &  ,
const Scalar< double > &   
) const
pure virtual

Computes the temperature \(T\) from the rest mass density \(\rho\), the specific internal energy \(\epsilon\), and electron fraction \(Y_e\).

◆ temperature_lower_bound()

template<bool IsRelativistic>
virtual double EquationsOfState::EquationOfState< IsRelativistic, 3 >::temperature_lower_bound ( ) const
pure virtual

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

Implemented in EquationsOfState::Tabulated3D< IsRelativistic >.

◆ temperature_upper_bound()

template<bool IsRelativistic>
virtual double EquationsOfState::EquationOfState< IsRelativistic, 3 >::temperature_upper_bound ( ) const
pure virtual

The upper bound of the temperature that is valid for this EOS.

Implemented in EquationsOfState::Tabulated3D< IsRelativistic >.


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