Rodin/Variational/Flow.h file

Flow map operators for shape functions and grid functions.

This file defines the Flow class, which implements the flow map (push-forward) of functions along a vector field. Flow maps are used in advection problems, level set methods, and semi-Lagrangian time integration schemes.

Mathematical Foundation

Given a velocity field $ \mathbf{v}(x,t) $ , the flow map $ \Phi_t $ satisfies:

\[ \frac{d\Phi}{dt}(x,t) = \mathbf{v}(\Phi(x,t), t), \quad \Phi(x,0) = x \]

The flow operator computes $ u(\Phi(x,t)) $ , which represents the value of function $ u $ advected along the flow.

Applications

  • Advection-diffusion: $ \frac{\partial u}{\partial t} + \mathbf{v} \cdot \nabla u = f $
  • Semi-Lagrangian methods: Characteristic tracking for transport equations
  • Level set methods: Interface evolution and tracking
  • ALE formulations: Arbitrary Lagrangian-Eulerian methods

Namespaces

namespace Rodin
The Rodin library for Shape and Topology Optimization.
namespace Rodin::FormLanguage
Module for writing high level abstract expressions.
namespace Rodin::Variational
Module which provides the necessary tools for constructing variational problems.

Classes

class Rodin::Variational::DefaultBoundaryPolicy
Default boundary policy for flow maps.
class Rodin::Variational::DefaultTangentPolicy
Default tangent policy for flow maps.
template<class Derived, class VectorField, class Step, class BoundaryPolicy, class TangentPolicy>
class Rodin::Variational::Flow<FunctionBase<Derived>, VectorField, Step, BoundaryPolicy, TangentPolicy>
Flow map operator for functions.