SpECTRE
v2024.09.29
|
Initial data for the 2D scalar advection problem adopted from [119] and its analytic solution. More...
#include <Kuzmin.hpp>
Public Types | |
using | options = tmpl::list<> |
Public Member Functions | |
Kuzmin (const Kuzmin &)=default | |
Kuzmin & | operator= (const Kuzmin &)=default |
Kuzmin (Kuzmin &&)=default | |
Kuzmin & | operator= (Kuzmin &&)=default |
auto | get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override |
template<typename DataType > | |
tuples::TaggedTuple< ScalarAdvection::Tags::U > | variables (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 |
Initial data for the 2D scalar advection problem adopted from [119] 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:
\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*}
\begin{align*} u(x,y) = 1 - r(x,y) , \end{align*}
\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.
|
overridevirtual |
Implements evolution::initial_data::InitialData.
|
staticconstexpr |