SpECTRE  v2024.06.18

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

#include <Kuzmin.hpp>

## Public Types

using options = tmpl::list<>

## Public Member Functions

Kuzmin (const Kuzmin &)=default

Kuzminoperator= (const Kuzmin &)=default

Kuzmin (Kuzmin &&)=default

Kuzminoperator= (Kuzmin &&)=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, 2 > &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 2D scalar advection problem adopted from [115] and its analytic solution.

Let $$r(x,y) = \sqrt{(x-x_0)^2 + (y-y_0)^2}/r_0$$ be the normalized distance from a point $$(x_0,y_0)$$ within a circle with the radius $$r_0=0.15$$. The initial proļ¬le consists of three bodies:

• a slotted cylinder centered at $$(0.5, 0.75)$$

\begin{align*} u(x,y) = \left\{\begin{array}{ll} 1 & \text{if } |x-x_0| \geq 0.025 \text{ or } y \geq 0.85 \\ 0 & \text{otherwise} \\ \end{array}\right\}, \end{align*}

• a cone centered at $$(0.5, 0.25)$$

\begin{align*} u(x,y) = 1 - r(x,y) , \end{align*}

• and a hump centered at $$(0.25, 0.5)$$

\begin{align*} u(x,y) = \frac{1 + \cos(\pi r(x,y))}{4} . \end{align*}

The system is evolved over the domain $$[0,1]\times[0,1]$$ with the advection velocity field $$v(x,y) = (0.5-y,-0.5+x)$$, which causes a solid rotation about $$(x,y)=(0.5,0.5)$$ with angular velocity being 1.0. We use the periodic boundary condition for evolving this problem.

## ◆ get_clone()

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