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

Initial data for the Shu-Osher oscillatory shock tube [188]. 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
ShuOsherTubeoperator= (const ShuOsherTube &)=default
 ShuOsherTube (ShuOsherTube &&)=default
ShuOsherTubeoperator= (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

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 [188].

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