SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
ScalarAdvection::Solutions::Krivodonova Class Reference

Initial data for the 1D scalar advection problem adopted from [121] and its analytic solution. More...

#include <Krivodonova.hpp>

Public Types

using options = implementation defined
 

Public Member Functions

 Krivodonova (const Krivodonova &)=default
 
Krivodonovaoperator= (const Krivodonova &)=default
 
 Krivodonova (Krivodonova &&)=default
 
Krivodonovaoperator= (Krivodonova &&)=default
 
auto get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override
 
template<typename DataType >
tuples::TaggedTuple< ScalarAdvection::Tags::Uvariables (const tnsr::I< DataType, 1 > &x, double t, tmpl::list< ScalarAdvection::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
 

Detailed Description

Initial data for the 1D scalar advection problem adopted from [121] and its analytic solution.

The initial profile consists of a combination of Gaussians, a square pulse, a sharp triangle, and a combination of half-ellipses.

u(x,t=0)={(G(x,β,zδ)+G(x,β,z+δ)+4G(x,β,z))/6if0.8x0.61if0.4x0.21|10(x0.1)|if0x0.2(F(x,α,aδ)+F(x,α,a+δ)+4F(x,α,a))/6if0.4x0.60otherwise},

where

G(x,β,z)=eβ(xz)2F(x,α,a)=max(1α2(xa)2,0)

with a=0.5,z=0.7,δ=0.005,α=10,and β=log2/(36δ2).

The system is evolved over the 1D domain [1,1] with the constant advection velocity field v(x)=1.0 and with the periodic boundary condition. The initial profile is simply advected (translated) to +x direction, going over cycles in the domain every 2.0 time unit.

Member Function Documentation

◆ get_clone()

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

Member Data Documentation

◆ help

constexpr Options::String ScalarAdvection::Solutions::Krivodonova::help
staticconstexpr
Initial value:
{
"An advecting 1D profile adopted from Krivodonova2007 paper, periodic "
"over the interval [-1, 1]"}

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