This class implements a high-resolution, TVD interpolation scheme for use in transport modeling. It extends a generic interpolation scheme interface and supports multiple TVD limiters (van Leer, Koren, Superbee, van Albada, etc.) for controlling numerical diffusion and oscillations. The default limiter is van Leer, but others can be selected by changing the limiter_id
member.
The scheme uses a combination of low-order upwind and high-order limited terms to compute face concentrations. The high-order term is constructed using a gradient-based virtual node value, following the approach described by Darwish et al. An additional TVD clamp is applied to the virtual node value to enforce TVD compliance, especially on grids where the original method may not guarantee monotonicity.
- Supports both structured and unstructured grids via polymorphic discretization and gradient objects.
- The limiter can be selected via the
limiter_id
member (default is van Leer).
- The method
find_local_extrema
finds the minimum and maximum values among the current cell and its neighbors, which is used to enforce the TVD condition.
- The
compute
method calculates the face coefficients for the transport equation.
Definition at line 35 of file UTVDScheme.f90.