Flow.h file
Flow map operators for shape functions and grid functions.
This file defines the Rodin::Variational::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 , the flow map satisfies:
The flow operator computes , which represents the value of function advected along the flow.
Applications
- Advection-diffusion:
- 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 finite element methods and shape optimization.
- namespace Rodin::FormLanguage
- Namespace Rodin::
FormLanguage. - namespace Rodin::Variational
- Namespace Rodin::
Variational.
Classes
-
template<class Derived, class FES, class VectorField, class Step, class BoundaryPolicy>struct Rodin::FormLanguage::Traits<Variational::Flow<Variational::ShapeFunctionBase<Derived, FES, Variational::TestSpace>, VectorField, Step, BoundaryPolicy>>
- Type traits for
Flowover a shape function: exposes the finite element space, the shape function space and the operand type. - struct Rodin::Variational::BoundaryHit
- Information passed to a boundary policy when a trajectory reaches the domain boundary.
- class Rodin::Variational::DefaultBoundaryPolicy
- Default boundary policy for flow maps.
-
template<class Derived, class VectorField, class Step, class BoundaryPolicy>class Rodin::Variational::Flow<FunctionBase<Derived>, VectorField, Step, BoundaryPolicy>
- Flow map operator for functions.
- class Rodin::Variational::Flow<FunctionBase<Derived>, VectorField, Step, BoundaryPolicy>::Trace
- Result of a characteristic trace.