SpECTRE  v2026.09.05
Loading...
Searching...
No Matches
NewtonianEuler::AnalyticData::ShuOsherTube Class Reference

Initial data for the Shu-Osher oscillatory shock tube [192]. More...

#include <ShuOsherTube.hpp>

Classes

struct  Epsilon
struct  JumpPosition
 Initial postition of the discontinuity. More...
struct  Lambda
struct  LeftMassDensity
struct  LeftPressure
struct  LeftVelocity
struct  RightPressure
struct  RightVelocity

Public Types

using equation_of_state_type = EquationsOfState::IdealFluid<false>
using options

Public Member Functions

 ShuOsherTube (double jump_position, double mass_density_l, double velocity_l, double pressure_l, double velocity_r, double pressure_r, double epsilon, double lambda)
 ShuOsherTube (const ShuOsherTube &)=default
ShuOsherTube & operator= (const ShuOsherTube &)=default
 ShuOsherTube (ShuOsherTube &&)=default
ShuOsherTube & operator= (ShuOsherTube &&)=default
auto get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override
template<typename DataType, typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, 1, Frame::Inertial > &x, tmpl::list< Tags... >) const
const EquationsOfState::IdealFluid< false > & equation_of_state () const
void pup (PUP::er &p) override
Public Member Functions inherited from evolution::initial_data::InitialData
virtual const InitialData & unwrap () const
 Unwrap wrapper types (e.g. WithNoise, which wraps analytic initial data and adds random noise) to reach the underlying analytic solution or data.

Static Public Attributes

static constexpr Options::String help

Friends

bool operator== (const ShuOsherTube &lhs, const ShuOsherTube &rhs)

Detailed Description

Initial data for the Shu-Osher oscillatory shock tube [192].

The general initial data is given by:

\begin{align*} \{\rho,v^x,p\}= \left\{ \begin{array}{ll} \left\{\rho_L, v^x_L, p_L\right\} &\mathrm{if} \;\;\; x<\Delta \\ \left\{1+\epsilon\sin(\lambda x), v^x_R, p_R\right\} &\mathrm{if} \;\;\; x\ge \Delta \end{array}\right. \end{align*}

with the adiabatic index being 1.4.

With the standard parameters given below, this is a Mach-3 shock moving into a sinusoidal density profile.

\begin{align*} \{\rho,v^x,p\}= \left\{ \begin{array}{ll} \left\{3.857143, 2.629369, 10.33333\right\} &\mathrm{if} \;\;\; x<-4 \\ \left\{1+0.2\sin(5x), 0, 1\right\} &\mathrm{if} \;\;\; x\ge -4 \end{array}\right. \end{align*}

With these values the usual final time is 1.8.

Member Typedef Documentation

◆ options

using NewtonianEuler::AnalyticData::ShuOsherTube::options

Member Function Documentation

◆ get_clone()

auto NewtonianEuler::AnalyticData::ShuOsherTube::get_clone ( ) const -> std::unique_ptr< evolution::initial_data::InitialData >
overridevirtual

Member Data Documentation

◆ help

Options::String NewtonianEuler::AnalyticData::ShuOsherTube::help
staticconstexpr
Initial value:
= {
"1D Shu-Osher oscillatory shock tube."}

The documentation for this class was generated from the following file:
  • src/PointwiseFunctions/AnalyticData/NewtonianEuler/ShuOsherTube.hpp