SpECTRE  v2024.06.18
ScalarAdvection::Solutions::Kuzmin Class Reference

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.

Member Function Documentation

◆ get_clone()

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

Member Data Documentation

◆ help

constexpr Options::String ScalarAdvection::Solutions::Kuzmin::help
staticconstexpr
Initial value:
{
"A rotating 2D scalar advecting problem adopted from Kuzmin2014 paper"}

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