flux_limiter_minmod

Family
limiter
Grid family
cartesian
Kind
limiter
Accuracy
O(dx²) in smooth monotone regions; O(dx) at extrema
Applies to
limit(r)
Rule file
discretizations/finite_volume/flux_limiter_minmod.json
Tags
#limiter #tvd #minmod #monotonicity

Stencil

Slope-ratio interface stencil for minmod — q_{i-1}, q_i, q_{i+1} feeding face i+1/2
Three-point slope-ratio stencil at face i+1/2 (positive-velocity branch). The limiter does not introduce a stencil of its own — it consumes the upwind and downwind slopes already required by the underlying high-order reconstruction and emits a scalar φ(r) ∈ [0, 1] that scales the high-order correction added to the low-order (upwind) flux.

Limiter curve

Minmod limiter φ(r) and Sweby second-order TVD region
Minmod limiter φ(r) = max(0, min(r, 1)) overlaid on the Sweby second-order TVD region. The curve sits on the lower edge of the region and passes through (1, 1) — making it the most dissipative of the symmetric second-order TVD limiters.

Discrete operator

The minmod limiter enters the standard MUSCL/TVD flux assembly at each cell interface. With the positive-velocity branch (advection speed a > 0):

1. Slope ratio at face i+1/2:

$$r_{i+1/2} \;=\; \frac{q_i - q_{i-1}}{q_{i+1} - q_i}$$

2. Apply minmod:

$$\varphi(r) \;=\; \max\!\bigl(0,\;\min(r, 1)\bigr)$$

3. Limited high-resolution interface flux:

$$F_{i+1/2} \;=\; F^{\text{low}}_{i+1/2} \;+\; \varphi(r_{i+1/2})\, \bigl(F^{\text{high}}_{i+1/2} - F^{\text{low}}_{i+1/2}\bigr)$$

where F_low is the first-order upwind flux (a · q_i here) and F_high is any second-order reconstruction (e.g. Lax–Wendroff, Fromm). The negative- velocity branch is the mirror image with offsets shifted by one cell.

4. Equivalent slope-limited form used by MUSCL reconstruction:

$$\sigma_i \;=\; \varphi(r_i)\,\frac{q_{i+1} - q_i}{\Delta x}, \qquad q^{L}_{i+1/2} \;=\; q_i + \tfrac{1}{2}\,\Delta x\,\sigma_i$$

so the limiter scales the cell-centered slope used to extrapolate to the left face state. Both forms produce the same TVD scheme.

Coefficient layout

symbolrolegrid location
q_{i-1}, q_i, q_{i+1}inputs to the slope ratiocell centers
r_{i+1/2}upwind / downwind slope ratioface
φ(r_{i+1/2})scalar limiter ∈ [0, 1]face
F_{i+1/2}limited interface flux (rule output)face

Properties

PropertyValue
TVDyes (Sweby region: 0 ≤ φ(r) ≤ min(2, 2r), φ(1) = 1)
Monotonicity-preservingyes
Symmetricyes (φ(r)/r = φ(1/r))
Smooth-extremum behaviordrops to 1st-order by design
Order in smooth monotone regions2
Order at extrema / r ≤ 01 (the limiter clips the slope to zero)

Reference: Roe (1986), Ann. Rev. Fluid Mech. 18, eq. (35); Sweby (1984), SIAM J. Numer. Anal. 21(5), fig. 3. Caller wiring lives in discretizations/finite_volume/README.md.

Convergence

Convergence plot pending fixture activation. The minmod [fixtures/convergence/](https://github.com/EarthSciML/EarthSciDiscretizations/blob/main/discretizations/finite_volume/flux_limiter_minmod/fixtures/convergence) fixture is currently applicable: false — pointwise order-of-convergence is the wrong acceptance kind for a TVD limiter, which intentionally degrades to first order at smooth extrema. The right harness kind is Layer-B' (monotonicity / TVD norms over initial conditions with sharp gradients); once that fixture kind lands the page will embed an empirical plot here. Numeric coverage of the φ(r) checkpoints and TVD on a smooth + square-wave IC already lives at [tests/fixtures/flux_limiter_minmod/](https://github.com/EarthSciML/EarthSciDiscretizations/blob/main/tests/fixtures/flux_limiter_minmod).