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 37 of file UTVDScheme.f90.