SpECTRE  v2024.04.12
NewtonianEuler::AnalyticData::ShuOsherTube Class Reference

Initial data for the Shu-Osher oscillatory shock tube [166]. 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 = tmpl::list< JumpPosition, LeftMassDensity, LeftVelocity, LeftPressure, RightVelocity, RightPressure, Epsilon, Lambda >
 

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
 
virtual auto get_clone () const -> std::unique_ptr< InitialData >=0
 

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

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 Function Documentation

◆ get_clone()

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

Member Data Documentation

◆ help

constexpr 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: