SpECTRE
v2024.12.16
|
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 = tmpl::list< ColdEos, ThermalAdiabaticIndex > |
Public Member Functions | |
HybridEos (const HybridEos &)=default | |
HybridEos & | operator= (const HybridEos &)=default |
HybridEos (HybridEos &&)=default | |
HybridEos & | operator= (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 \(\rho\). | |
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\). | |
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 |
Hybrid equation of state combining a barotropic EOS for cold (zero-temperature) part with a simple thermal part.
The hybrid equation of state:
\[ 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 temperature \(T\) is defined as
\[ T = (\Gamma_{th} - 1) (\epsilon - \epsilon_{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
\begin{align} p &= \kappa \rho^\Gamma + \rho T =\kappa\rho^\Gamma+\rho (\Gamma-1)\left(\epsilon-\frac{K\rho^{\Gamma-1}}{\Gamma-1}\right), \\ T&=(\Gamma-1)\left(\epsilon-\frac{K\rho^{\Gamma-1}}{\Gamma-1}\right), \\ \epsilon &= \frac{1}{(\Gamma-1)}\frac{p}{\rho} \end{align}
|
staticconstexpr |