weno5_advection_2d

Family
finite_volume
Grid family
cartesian
Kind
scheme
Accuracy
O(h⁵) per axis
Applies to
advect(q, U), dims=(x, y)
Rule file
discretizations/finite_volume/weno5_advection_2d.json
Tags
#finite-volume #weno #jiang-shu #advection #high-order #two-dimensional

Stencil

2D WENO5 cross stencil: five cells along x and four extra along y, intersecting at (i,j)
Dimension-by-dimension splitting (Shu 1998 §2.2; LeVeque 2002 §20): the 1D Jiang–Shu (1996) WENO5 reconstruction is applied independently along the x-axis (blue) and the y-axis (red) through the same cell (i,j). Each axis carries the three candidate sub-stencils of the 1D rule. The union spans nine cells per axis (five own-axis + four cross-axis), 17 of the 5×5 neighborhood total.

Coefficients

Per-axis blocks under axes.x / axes.y reuse the 1D weno5_advection sub-stencils, linear weights (d₀, d₁, d₂) = (1/10, 6/10, 3/10), and smoothness indicators (Jiang & Shu 1996 eq. 2.17), with the selector axis swapped between $x and $y. Nonlinear weights α_k = d_k / (ε + β_k)², normalized to ω_k = α_k / Σ α_j. The right-biased branch (used when the local face velocity is negative) is the index-reflected mirror of the left-biased branch.

The flux selection per axis is upwinded against the local face velocity:

$$ F^x_{i+1/2,j} = u_{i+1/2,j}\, q_{i+1/2,j}^{\mathrm{upwind}},\qquad F^y_{i,j+1/2} = v_{i,j+1/2}\, q_{i,j+1/2}^{\mathrm{upwind}}. $$

The advective tendency sums the two axis flux divergences:

$$ \mathrm{advect}(q, U) = \frac{F^x_{i+1/2,j} - F^x_{i-1/2,j}}{\Delta x} \,+\, \frac{F^y_{i,j+1/2} - F^y_{i,j-1/2}}{\Delta y}. $$

Convergence

Empirical L∞ convergence of dimension-by-dimension WENO5 on the 2D phase-shifted sine
Cell-averaged inputs of u(x,y) = sin(2π x + 1)·sin(2π y + 1/2) on [0,1]² periodic, reconstructed face values vs the analytic cross-section averages. Slope ≈ 5.0; sub-5th order is recovered in the asymptotic regime.

The numeric coverage lives in two fixtures:

nhL∞ errorobserved order
160.062500001.0733e-03
320.031250003.4081e-054.977
640.015625001.0643e-065.001
1280.007812503.3249e-085.000

Theoretical asymptotic order: 5.0 per axis (Jiang & Shu 1996, smooth regions; Shu 1998 §2.2 dimension-by-dimension splitting; LeVeque 2002 §20). Acceptance threshold: min(observed order) ≥ 4.4 across the n ∈ {16, 32, 64, 128} sweep, with NO acceptance fudging — the case fails (not skips) if the observed order falls below 4.4 (dsc-5od §5).

Pending ESS dispatch extension. ESS 0.0.3's mms_convergence routes WENO5 rules unconditionally to a 1D path (mms_weno5_convergence) that expects reconstruction_left_biased at the spec root. The 2D rule carries the same blocks under axes.x / axes.y per the dimension-by-dimension splitting (Shu 1998), so the existing path cannot read it. Until ESS gains a 2D dispatch (a follow-up esm-* bead is needed), Layer B SKIPs with applicable: false and Layer C is the operational verifier of the asymptotic 2D order.