SpECTRE  v2024.12.16
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Burgers::Solutions::Step Class Reference

A propagating shock between two constant states. More...

#include <Step.hpp>

Classes

struct  InitialPosition
 
struct  LeftValue
 
struct  RightValue
 

Public Types

using options = implementation defined
 

Public Member Functions

 Step (double left_value, double right_value, double initial_shock_position, const Options::Context &context={})
 
 Step (const Step &)=default
 
Stepoperator= (const Step &)=default
 
 Step (Step &&)=default
 
Stepoperator= (Step &&)=default
 
auto get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override
 
template<typename T >
Scalar< T > u (const tnsr::I< T, 1 > &x, double t) const
 
template<typename T >
Scalar< T > du_dt (const tnsr::I< T, 1 > &x, double t) const
 
tuples::TaggedTuple< Tags::Uvariables (const tnsr::I< DataVector, 1 > &x, double t, tmpl::list< Tags::U >) const
 
tuples::TaggedTuple<::Tags::dt< Tags::U > > variables (const tnsr::I< DataVector, 1 > &x, double t, tmpl::list<::Tags::dt< Tags::U > >) 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 {"A propagating shock solution"}
 

Detailed Description

A propagating shock between two constant states.

The shock propagates left-to-right, with profile U(x,t)=UR+(ULUR)H((xx0vt)). Here UL and UR are the left and right constant states, satisfying UL>UR; H is the Heaviside function; x0 is the initial (i.e., t=0) position of the shock; and v=0.5(UL+UR) is the speed of the shock.

Note
At the shock, where x=x0+vt, we have U(x,t)=UL. (This is inherited from the Heaviside implementation step_function.) Additionally, the time derivative tu0 is zero, rather than the correct delta function.

Member Function Documentation

◆ get_clone()

auto Burgers::Solutions::Step::get_clone ( ) const -> std::unique_ptr< evolution::initial_data::InitialData >
overridevirtual

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