Rodin::External::MMG::Advect class

Advection of a level set function by a velocity field.

Solves the advection equation

\[ \left\{ \begin{aligned} \dfrac{\partial u}{\partial t} + v(x) \cdot \nabla u (t, x) &= 0 && \text{ in } \Omega \times (0, + \infty) \\ u(x, 0) &= u_0(x) && \text{ on } \Omega \times \{ t = 0 \} \end{aligned} \right. \]

where $ u_0 : \mathbb{R}^d \rightarrow \mathbb{R} $ is known.

Constructors, destructors, conversion operators

Advect(LevelSetFunction& ls, const VectorField& disp)
Constructs an Advect object.

Public functions

auto enableExtrapolation(bool ex = true) -> Advect&
Specifies whether to extrapolate characteristic lines or not.
void step(double dt)
Advances the level set function by the time step dt.

Function documentation

Rodin::External::MMG::Advect::Advect(LevelSetFunction& ls, const VectorField& disp)

Constructs an Advect object.

Parameters
ls in/out Function to advect
disp in Displacement velocity field

Advect& Rodin::External::MMG::Advect::enableExtrapolation(bool ex = true)

Specifies whether to extrapolate characteristic lines or not.

If true, characteristic lines are extrapolated outside the domain when the input velocity field causes them to do so. Otherwise, no action is taken.

By default it is set to true.

void Rodin::External::MMG::Advect::step(double dt)

Advances the level set function by the time step dt.

Parameters
dt in Advection timestep