SpECTRE  2021.08.02
NewtonianEuler::AnalyticData::SodExplosion< Dim > Class Template Reference

A cylindrical or spherical Sod explosion [108] [98]. More...

#include <SodExplosion.hpp>

Classes

struct  InitialRadius
 Initial radius of the discontinuity. More...
 
struct  InnerMassDensity
 
struct  InnerPressure
 
struct  OuterMassDensity
 
struct  OuterPressure
 

Public Types

using equation_of_state_type = EquationsOfState::IdealFluid< false >
 
using source_term_type = Sources::NoSource
 
using options = tmpl::list< InitialRadius, InnerMassDensity, InnerPressure, OuterMassDensity, OuterPressure >
 

Public Member Functions

 SodExplosion (const SodExplosion &)=delete
 
SodExplosionoperator= (const SodExplosion &)=delete
 
 SodExplosion (SodExplosion &&) noexcept=default
 
SodExplosionoperator= (SodExplosion &&) noexcept=default
 
 SodExplosion (double initial_radius, double inner_mass_density, double inner_pressure, double outer_mass_density, double outer_pressure, const Options::Context &context={})
 
template<typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataVector, Dim, Frame::Inertial > &x, tmpl::list< Tags... >) const noexcept
 Retrieve a collection of hydrodynamic variables at position x.
 
const equation_of_state_typeequation_of_state () const noexcept
 
void pup (PUP::er &) noexcept
 

Static Public Attributes

static constexpr Options::String help
 

Friends

template<size_t SpatialDim>
bool operator== (const SodExplosion< SpatialDim > &lhs, const SodExplosion< SpatialDim > &rhs) noexcept
 

Detailed Description

template<size_t Dim>
class NewtonianEuler::AnalyticData::SodExplosion< Dim >

A cylindrical or spherical Sod explosion [108] [98].

Common initial conditions are:

\begin{align*} (\rho, v^i, p) = &\left\{ \begin{array}{ll} (1 ,0, 1) & \mathrm{if} \; r \le 0.5 \\ (0.125 ,0, 0.1) & \mathrm{if} \; r > 0.5 \end{array}\right. \end{align*}

where \(r\) is the cylindrical (2d) or spherical (3d) radius. This test problem uses an adiabatic index of 1.4. A reference solution can be computed in 1d by solving the Newtonian Euler equations in cylindrical or spherical symmetry. Note that the inner and outer density and pressure, as well as where the initial discontinuity is can be chosen arbitrarily.

Member Data Documentation

◆ help

template<size_t Dim>
constexpr Options::String NewtonianEuler::AnalyticData::SodExplosion< Dim >::help
staticconstexpr
Initial value:
= {
"Cylindrical or spherical Sod explosion."}