Perform classical ENO3 reconstruction on the supplied stencil.
Selects the smoothest 3-cell substencil per equation component using Newton divided differences (Harten et al., 1987).
Stencil column mapping (5-point, half_stencil=3): col 1 = v_{i-2}, col 2 = v_{i-1}, col 3 = v_i (centre), col 4 = v_{i+1}, col 5 = v_{i+2}.
Two-step stencil selection per component: Step 1 — compare |d^1[i-1]| vs |d^1[i]| (1st-order divided differences): d^1[j] = v_{j+1} - v_j Step 2 — compare |d^2[s-1]| vs |d^2[s]| (2nd-order divided differences): d^2[j] = (v_{j+2} - 2*v_{j+1} + v_j) / 2
Selected substencil starts at column s ∈ {1, 2, 3} and uses the same reconstruction formulas as the three WENO5 substencils: S0 (s=1): f̂ = (1/3)v1 - (7/6)v2 + (11/6)v3 S1 (s=2): f̂ = -(1/6)v1 + (5/6)v2 + (1/3)v3 S2 (s=3): f̂ = (1/3)v1 + (5/6)v2 - (1/6)*v3
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | f_stencil(:,:) | |||
| real(kind=wp), | intent(out) | :: | f_hat(:) |