ryujin 2.1.1 revision dbe95f27a182bcce0443e20d3cdf6a702d3e029e
Loading...
Searching...
No Matches
Public Member Functions | List of all members
ryujin::EquationOfStateLibrary::BumpyBarotropicPressure Class Reference

#include <source/euler_aeos/equation_of_state_bumpy_barotropic_pressure.h>

Inheritance diagram for ryujin::EquationOfStateLibrary::BumpyBarotropicPressure:
Inheritance graph
[legend]
Collaboration diagram for ryujin::EquationOfStateLibrary::BumpyBarotropicPressure:
Collaboration graph
[legend]

Public Member Functions

 BumpyBarotropicPressure (const std::string &subsection)
 
double pressure (double rho, double e) const final
 
double specific_internal_energy (double rho, double p) const final
 
double temperature (double rho, double e) const final
 
double cold_curve_bound (double rho) const final
 
double specific_entropy (double rho, double e) const final
 
double speed_of_sound (double rho, double e) const final
 
virtual double pressure (double rho, double e) const=0
 
virtual double specific_internal_energy (double rho, double p) const=0
 
virtual double speed_of_sound (double, double) const
 
virtual double temperature (double, double) const
 
- Public Member Functions inherited from ryujin::EquationOfStateLibrary::EquationOfState
 EquationOfState (const std::string &name, const std::string &subsection)
 

Additional Inherited Members

- Protected Attributes inherited from ryujin::EquationOfStateLibrary::EquationOfState
double covolume_constant_
 
double interpolation_pinfty_
 
double interpolation_q_
 

Detailed Description

A composite equation of state of the form

\begin{align} p\;=\;p_{\text{h}}(\rho,e_{\text{h}})\,+\,p_{\text{b}}(\rho), \qquad e\;=\;e_{\text{h}}\,+\,e_{\text{b}}(\rho), \qquad p_{\text{b}}(\rho)\;=\;\rho^2\,\partial_\rho e_{\text{b}}(\rho), \end{align}

in which the hydrodynamical constituent \(p_{\text{h}},\,e_{\text{h}}\) is given by a Noble-Abel stiffened gas and the barotropic constituent \(p_{\text{b}},\,e_{\text{b}}\) is a synthetic "bump" that concentrates the barotropic speed of sound in a narrow interval of width \(\varepsilon\) centered at a reference density \(\rho_0\):

\begin{align} a_{\text{b}}^2(\rho)\;=\; \frac{c_0^2}{\big((\rho-\rho_0)^2+\varepsilon\big)^{3/2}}. \end{align}

The bump renders the total pressure \(p\) nonconvex so that the Riemann problem can develop composite shock-rarefaction waves, while hyperbolicity is maintained.

The barotropic constituent carries no entropy and no temperature: \(T\,\mathrm{d}s = \mathrm{d}e + p\,\mathrm{d}v = \mathrm{d}e_{\text{h}} + p_{\text{h}}\,\mathrm{d}v\), so that \(s=s_{\text{h}}\) and \(T=T_{\text{h}}\). Consequently the isentropes of the composite equation of state are the hydrodynamical isentropes and the total speed of sound is given by \(a^2=a_{\text{h}}^2+a_{\text{b}}^2\).

Note
All functions of this class take and return the total specific internal energy e and the total pressure p. The hydrodynamical constituents are recovered as \(e_{\text{h}}=e-e_{\text{b}}(\rho)\) and \(p_{\text{h}}=p-p_{\text{b}}(\rho)\).

Definition at line 55 of file equation_of_state_bumpy_barotropic_pressure.h.

Constructor & Destructor Documentation

◆ BumpyBarotropicPressure()

ryujin::EquationOfStateLibrary::BumpyBarotropicPressure::BumpyBarotropicPressure ( const std::string &  subsection)
inline

Member Function Documentation

◆ pressure() [1/2]

double ryujin::EquationOfStateLibrary::BumpyBarotropicPressure::pressure ( double  rho,
double  e 
) const
inlinefinalvirtual

The total pressure is given by

\begin{align} p = p_{\text{h}}(\rho, e - e_{\text{b}}(\rho)) + p_{\text{b}}(\rho) \end{align}

Implements ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 155 of file equation_of_state_bumpy_barotropic_pressure.h.

◆ specific_internal_energy() [1/2]

double ryujin::EquationOfStateLibrary::BumpyBarotropicPressure::specific_internal_energy ( double  rho,
double  p 
) const
inlinefinalvirtual

The total specific internal energy is given by

\begin{align} e = e_{\text{h}}(\rho, p - p_{\text{b}}(\rho)) + e_{\text{b}}(\rho) \end{align}

Implements ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 168 of file equation_of_state_bumpy_barotropic_pressure.h.

◆ temperature() [1/2]

double ryujin::EquationOfStateLibrary::BumpyBarotropicPressure::temperature ( double  rho,
double  e 
) const
inlinefinalvirtual

The barotropic constituent is athermal, so that the temperature is the hydrodynamical one,

\begin{align} T = T_{\text{h}}(\rho, e - e_{\text{b}}(\rho)) \end{align}

Reimplemented from ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 182 of file equation_of_state_bumpy_barotropic_pressure.h.

◆ cold_curve_bound()

double ryujin::EquationOfStateLibrary::BumpyBarotropicPressure::cold_curve_bound ( double  rho) const
inlinefinalvirtual

The admissible set is characterized by \(e_{\text{h}}\ge e_{\text{h},\text{cold}}(\rho)\) and thus

\begin{align} e_{\text{cold}} = e_{\text{h},\text{cold}}(\rho) + e_{\text{b}}(\rho) \end{align}

Reimplemented from ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 196 of file equation_of_state_bumpy_barotropic_pressure.h.

◆ specific_entropy()

double ryujin::EquationOfStateLibrary::BumpyBarotropicPressure::specific_entropy ( double  rho,
double  e 
) const
inlinefinalvirtual

The barotropic constituent is isentropic, so that the specific entropy is the hydrodynamical one,

\begin{align} s = s_{\text{h}}(\rho, e - e_{\text{b}}(\rho)) \end{align}

Reimplemented from ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 209 of file equation_of_state_bumpy_barotropic_pressure.h.

◆ speed_of_sound() [1/2]

double ryujin::EquationOfStateLibrary::BumpyBarotropicPressure::speed_of_sound ( double  rho,
double  e 
) const
inlinefinalvirtual

The isentropes of the composite equation of state coincide with the hydrodynamical isentropes, so that the speed of sound is given by

\begin{align} a^2 = a_{\text{h}}^2(\rho, e - e_{\text{b}}(\rho)) + a_{\text{b}}^2(\rho) \end{align}

Reimplemented from ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 223 of file equation_of_state_bumpy_barotropic_pressure.h.

◆ pressure() [2/2]

virtual double ryujin::EquationOfStateLibrary::EquationOfState::pressure ( double  rho,
double  e 
) const
virtual

Return the pressure given density rho and specific internal energy e.

Note
This function is implemented for every equation of state.

Implements ryujin::EquationOfStateLibrary::EquationOfState.

◆ specific_internal_energy() [2/2]

virtual double ryujin::EquationOfStateLibrary::EquationOfState::specific_internal_energy ( double  rho,
double  p 
) const
virtual

Return the specific internal energy e for a given density rho and pressure p.

Note
This function is implemented for every equation of state.

Implements ryujin::EquationOfStateLibrary::EquationOfState.

◆ speed_of_sound() [2/2]

virtual double ryujin::EquationOfStateLibrary::EquationOfState::speed_of_sound ( double  ,
double   
) const
inlinevirtual

Return the sound speed c for a given density rho and specific internal energy e.

Note
This function might not be implemented for a given equation of state.

Reimplemented from ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 123 of file equation_of_state.h.

◆ temperature() [2/2]

virtual double ryujin::EquationOfStateLibrary::EquationOfState::temperature ( double  ,
double   
) const
inlinevirtual

Return the temperature T for a given density rho and specific internal energy e.

Note
This function might not be implemented for a given equation of state.

Reimplemented from ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 109 of file equation_of_state.h.


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