SpECTRE  v2024.04.12
NewtonianEuler::AnalyticData::SodExplosion< Dim > Class Template Reference

A cylindrical or spherical Sod explosion [183] [167]. 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 options = tmpl::list< InitialRadius, InnerMassDensity, InnerPressure, OuterMassDensity, OuterPressure >
 

Public Member Functions

 SodExplosion (const SodExplosion &)=default
 
SodExplosionoperator= (const SodExplosion &)=default
 
 SodExplosion (SodExplosion &&)=default
 
SodExplosionoperator= (SodExplosion &&)=default
 
auto get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override
 
 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
 Retrieve a collection of hydrodynamic variables at position x.
 
const equation_of_state_typeequation_of_state () const
 
void pup (PUP::er &) override
 
virtual auto get_clone () const -> std::unique_ptr< InitialData >=0
 

Static Public Attributes

static constexpr Options::String help
 

Friends

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

Detailed Description

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

A cylindrical or spherical Sod explosion [183] [167].

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

◆ get_clone()

template<size_t Dim>
auto NewtonianEuler::AnalyticData::SodExplosion< Dim >::get_clone ( ) const -> std::unique_ptr< evolution::initial_data::InitialData >
overridevirtual

Member Data Documentation

◆ help

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

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