template<class ... Params>
Rodin::Advection::Lagrangian class

Lagrangian variational advection for scalar fields.

This class implements semi-Lagrangian time-stepping for the advection equation:

\[ \frac{\partial u}{\partial t} + \mathbf{v} \cdot \nabla u = 0 \]

where $ u $ is the scalar field and $ \mathbf{v} $ is the velocity field.

Semi-Lagrangian Method

At each time step, the method:

  1. Traces characteristics backwards: $ \mathbf{X}(t) = \mathbf{x} - \int_0^{\Delta t} \mathbf{v} \, ds $
  2. Interpolates the solution at departure points
  3. Solves a projection problem to obtain the new solution

The variational formulation at each step is:

\[ \int_\Omega u^{n+1} v \, dx = \int_\Omega u^n(\mathbf{X}) v \, dx \]

Advantages

  • Unconditionally stable for large CFL numbers
  • Naturally handles complex geometries
  • Mass-conservative in variational form