SpECTRE  v2024.03.19
EquationsOfState::PolytropicFluid< IsRelativistic > Class Template Reference

Equation of state for a polytropic fluid. More...

#include <PolytropicFluid.hpp>

Classes

struct  PolytropicConstant
 
struct  PolytropicExponent
 

Public Types

using options = tmpl::list< PolytropicConstant, PolytropicExponent >
 
- Public Types inherited from EquationsOfState::EquationOfState< IsRelativistic, 1 >
using creatable_classes = typename detail::DerivedClasses< IsRelativistic, 1 >::type
 

Public Member Functions

 PolytropicFluid (const PolytropicFluid &)=default
 
PolytropicFluidoperator= (const PolytropicFluid &)=default
 
 PolytropicFluid (PolytropicFluid &&)=default
 
PolytropicFluidoperator= (PolytropicFluid &&)=default
 
 PolytropicFluid (double polytropic_constant, double polytropic_exponent)
 
std::unique_ptr< EquationOfState< IsRelativistic, 1 > > get_clone () const override
 
std::unique_ptr< EquationOfState< IsRelativistic, 3 > > promote_to_3d_eos () const override
 Create a 3D EOS from the 1D EOS. More...
 
std::unique_ptr< EquationOfState< IsRelativistic, 2 > > promote_to_2d_eos () const override
 Create a 2D EOS from the 1D EOS. More...
 
bool is_equal (const EquationOfState< IsRelativistic, 1 > &rhs) const override
 
bool operator== (const PolytropicFluid< IsRelativistic > &rhs) const
 
bool operator!= (const PolytropicFluid< IsRelativistic > &rhs) const
 
 WRAPPED_PUPable_decl_base_template (SINGLE_ARG(EquationOfState< IsRelativistic, 1 >), PolytropicFluid)
 
double rest_mass_density_lower_bound () const override
 The lower bound of the rest mass density that is valid for this EOS. More...
 
double rest_mass_density_upper_bound () const override
 The upper bound of the rest mass density that is valid for this EOS. More...
 
double specific_internal_energy_lower_bound (const double) const override
 The lower bound of the specific internal energy that is valid for this EOS at the given rest mass density \(\rho\). More...
 
double specific_internal_energy_upper_bound (const double) const override
 The upper bound of the specific internal energy that is valid for this EOS at the given rest mass density \(\rho\). More...
 
double specific_enthalpy_lower_bound () const override
 The lower bound of the specific enthalpy that is valid for this EOS. More...
 
double baryon_mass () const override
 The vacuum baryon mass for this EoS. More...
 
- Public Member Functions inherited from EquationsOfState::EquationOfState< IsRelativistic, 1 >
 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, 1 > > get_clone () const =0
 
virtual bool is_equal (const EquationOfState< IsRelativistic, 1 > &rhs) const =0
 
virtual std::unique_ptr< EquationOfState< IsRelativistic, 3 > > promote_to_3d_eos () const =0
 Create a 3D EOS from the 1D EOS. More...
 
virtual std::unique_ptr< EquationOfState< IsRelativistic, 2 > > promote_to_2d_eos () const =0
 Create a 2D EOS from the 1D EOS. More...
 
bool is_barotropic () const
 Returns true if the EOS is barotropic.
 
virtual Scalar< double > equilibrium_electron_fraction_from_density_temperature (const Scalar< double > &rest_mass_density, const Scalar< double > &) const
 
virtual Scalar< DataVectorequilibrium_electron_fraction_from_density_temperature (const Scalar< DataVector > &rest_mass_density, const Scalar< DataVector > &) const
 
virtual Scalar< double > pressure_from_density (const Scalar< double > &) const =0
 
virtual Scalar< DataVectorpressure_from_density (const Scalar< DataVector > &) const =0
 
virtual Scalar< double > rest_mass_density_from_enthalpy (const Scalar< double > &) const =0
 
virtual Scalar< DataVectorrest_mass_density_from_enthalpy (const Scalar< DataVector > &) const =0
 
virtual Scalar< double > specific_internal_energy_from_density (const Scalar< double > &) const =0
 
virtual Scalar< DataVectorspecific_internal_energy_from_density (const Scalar< DataVector > &) const =0
 
virtual Scalar< double > temperature_from_density (const Scalar< double > &) const
 
virtual Scalar< DataVectortemperature_from_density (const Scalar< DataVector > &rest_mass_density) const
 
virtual Scalar< double > temperature_from_specific_internal_energy (const Scalar< double > &) const
 
virtual Scalar< DataVectortemperature_from_specific_internal_energy (const Scalar< DataVector > &specific_internal_energy) const
 
virtual Scalar< double > chi_from_density (const Scalar< double > &) const =0
 
virtual Scalar< DataVectorchi_from_density (const Scalar< DataVector > &) const =0
 
virtual Scalar< double > kappa_times_p_over_rho_squared_from_density (const Scalar< double > &) const =0
 
virtual Scalar< DataVectorkappa_times_p_over_rho_squared_from_density (const Scalar< DataVector > &) const =0
 
virtual double electron_fraction_lower_bound () const
 The lower bound of the electron fraction that is valid for this EOS.
 
virtual double electron_fraction_upper_bound () const
 The upper bound of the electron fraction that is valid for this EOS.
 
virtual double temperature_lower_bound () const
 The lower bound of the temperature that is valid for this EOS.
 
virtual double temperature_upper_bound () const
 The upper bound of the temperature that is valid for this EOS.
 

Static Public Attributes

static constexpr size_t thermodynamic_dim = 1
 
static constexpr bool is_relativistic = IsRelativistic
 
static constexpr Options::String help
 
- Static Public Attributes inherited from EquationsOfState::EquationOfState< IsRelativistic, 1 >
static constexpr bool is_relativistic = IsRelativistic
 
static constexpr size_t thermodynamic_dim = 1
 

Detailed Description

template<bool IsRelativistic>
class EquationsOfState::PolytropicFluid< IsRelativistic >

Equation of state for a polytropic fluid.

A polytropic equation of state \(p=K\rho^{\Gamma}\) where \(K\) is the polytropic constant and \(\Gamma\) is the polytropic exponent. The polytropic exponent is related to the polytropic index \(N_p\) by \(N_p=1/(\Gamma-1)\).

Member Function Documentation

◆ baryon_mass()

template<bool IsRelativistic>
double EquationsOfState::PolytropicFluid< IsRelativistic >::baryon_mass ( ) const
inlineoverridevirtual

The vacuum baryon mass for this EoS.

Reimplemented from EquationsOfState::EquationOfState< IsRelativistic, 1 >.

◆ get_clone()

template<bool IsRelativistic>
std::unique_ptr< EquationOfState< IsRelativistic, 1 > > EquationsOfState::PolytropicFluid< IsRelativistic >::get_clone ( ) const
overridevirtual

◆ is_equal()

template<bool IsRelativistic>
bool EquationsOfState::PolytropicFluid< IsRelativistic >::is_equal ( const EquationOfState< IsRelativistic, 1 > &  rhs) const
overridevirtual

◆ promote_to_2d_eos()

template<bool IsRelativistic>
std::unique_ptr< EquationOfState< IsRelativistic, 2 > > EquationsOfState::PolytropicFluid< IsRelativistic >::promote_to_2d_eos ( ) const
overridevirtual

Create a 2D EOS from the 1D EOS.

Implements EquationsOfState::EquationOfState< IsRelativistic, 1 >.

◆ promote_to_3d_eos()

template<bool IsRelativistic>
std::unique_ptr< EquationOfState< IsRelativistic, 3 > > EquationsOfState::PolytropicFluid< IsRelativistic >::promote_to_3d_eos ( ) const
overridevirtual

Create a 3D EOS from the 1D EOS.

Implements EquationsOfState::EquationOfState< IsRelativistic, 1 >.

◆ rest_mass_density_lower_bound()

template<bool IsRelativistic>
double EquationsOfState::PolytropicFluid< IsRelativistic >::rest_mass_density_lower_bound ( ) const
inlineoverridevirtual

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

Implements EquationsOfState::EquationOfState< IsRelativistic, 1 >.

◆ rest_mass_density_upper_bound()

template<bool IsRelativistic>
double EquationsOfState::PolytropicFluid< IsRelativistic >::rest_mass_density_upper_bound ( ) const
overridevirtual

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

Implements EquationsOfState::EquationOfState< IsRelativistic, 1 >.

◆ specific_enthalpy_lower_bound()

template<bool IsRelativistic>
double EquationsOfState::PolytropicFluid< IsRelativistic >::specific_enthalpy_lower_bound ( ) const
inlineoverridevirtual

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

Implements EquationsOfState::EquationOfState< IsRelativistic, 1 >.

◆ specific_internal_energy_lower_bound()

template<bool IsRelativistic>
double EquationsOfState::PolytropicFluid< IsRelativistic >::specific_internal_energy_lower_bound ( const double  ) const
inlineoverridevirtual

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

Implements EquationsOfState::EquationOfState< IsRelativistic, 1 >.

◆ specific_internal_energy_upper_bound()

template<bool IsRelativistic>
double EquationsOfState::PolytropicFluid< IsRelativistic >::specific_internal_energy_upper_bound ( const double  ) const
inlineoverridevirtual

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

Implements EquationsOfState::EquationOfState< IsRelativistic, 1 >.

Member Data Documentation

◆ help

template<bool IsRelativistic>
constexpr Options::String EquationsOfState::PolytropicFluid< IsRelativistic >::help
staticconstexpr
Initial value:
= {
"A polytropic fluid equation of state.\n"
"The pressure is related to the rest mass density by p = K rho ^ Gamma, "
"where p is the pressure, rho is the rest mass density, K is the "
"polytropic constant, and Gamma is the polytropic exponent. The "
"polytropic index N is defined as Gamma = 1 + 1 / N."}

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