SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
EquationsOfState::HybridEos< ColdEquationOfState > Class Template Reference

Hybrid equation of state combining a barotropic EOS for cold (zero-temperature) part with a simple thermal part. More...

#include <HybridEos.hpp>

Classes

struct  ColdEos
 
struct  ThermalAdiabaticIndex
 

Public Types

using options = implementation defined
 

Public Member Functions

 HybridEos (const HybridEos &)=default
 
HybridEosoperator= (const HybridEos &)=default
 
 HybridEos (HybridEos &&)=default
 
HybridEosoperator= (HybridEos &&)=default
 
 HybridEos (ColdEquationOfState cold_eos, double thermal_adiabatic_index)
 
 WRAPPED_PUPable_decl_base_template (SINGLE_ARG(EquationOfState< is_relativistic, 2 >), HybridEos)
 
std::unique_ptr< EquationOfState< is_relativistic, 2 > > get_clone () const override
 
std::unique_ptr< EquationOfState< is_relativistic, 3 > > promote_to_3d_eos () const override
 
bool is_barotropic () const override
 Returns true if the EOS is barotropic.
 
bool operator== (const HybridEos< ColdEquationOfState > &rhs) const
 
bool operator!= (const HybridEos< ColdEquationOfState > &rhs) const
 
bool is_equal (const EquationOfState< is_relativistic, 2 > &rhs) const override
 
double rest_mass_density_lower_bound () const override
 The lower bound of the rest mass density that is valid for this EOS.
 
double rest_mass_density_upper_bound () const override
 The upper bound of the rest mass density that is valid for this EOS.
 
double specific_internal_energy_lower_bound (const double rest_mass_density) const override
 The lower bound of the specific internal energy that is valid for this EOS at the given rest mass density ρ.
 
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 ρ.
 
double specific_enthalpy_lower_bound () const override
 The lower bound of the specific enthalpy that is valid for this EOS.
 
double baryon_mass () const override
 The vacuum baryon mass for this EoS.
 

Static Public Member Functions

static std::string name ()
 

Static Public Attributes

static constexpr size_t thermodynamic_dim = 2
 
static constexpr bool is_relativistic = ColdEquationOfState::is_relativistic
 
static constexpr Options::String help
 

Detailed Description

template<typename ColdEquationOfState>
class EquationsOfState::HybridEos< ColdEquationOfState >

Hybrid equation of state combining a barotropic EOS for cold (zero-temperature) part with a simple thermal part.

The hybrid equation of state:

p=pcold(ρ)+ρ(Γth1)(ϵϵcold(ρ))

where p is the pressure, ρ is the rest mass density, ϵ is the specific internal energy, pcold and ϵcold are the pressure and specific internal energy evaluated using the cold EOS, and Γth is the adiabatic index for the thermal part.

The temperature T is defined as

T=(Γth1)(ϵϵcold)

This is the amount of internal energy above that of the cold EOS.

For a hybrid EOS with the cold EOS being a polytrope we have

(1)p=κρΓ+ρT=κρΓ+ρ(Γ1)(ϵKρΓ1Γ1),(2)T=(Γ1)(ϵKρΓ1Γ1),(3)ϵ=1(Γ1)pρ

Member Data Documentation

◆ help

template<typename ColdEquationOfState >
constexpr Options::String EquationsOfState::HybridEos< ColdEquationOfState >::help
staticconstexpr
Initial value:
= {
"A hybrid equation of state combining a cold EOS with a simple thermal "
"part. The pressure is related to the rest mass density by "
" p = p_cold(rho) + rho * (Gamma_th - 1) * (epsilon - "
"epsilon_cold(rho)), where p is the pressure, rho is the rest mass "
"density, epsilon is the specific internal energy, p_cold and "
"epsilon_cold are the pressure and specific internal energy evaluated "
"using the cold EOS and Gamma_th is the adiabatic index for the thermal "
"part."}

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