Skip to content

Limited coarse-to-fine fills ​

IDGroupMilestoneBackendsFigureRegression
D2Seam studiesM6 (#68)FNL (crossings); CPU, FNL (AO legs)yes—

Case and scope ​

The unlimited quintic fill of D1 reaches sixth order on smooth flows but worsens a shock entering a finer region. D2 asks whether a limited 6-point fill keeps the order and brings the shock crossings of A3 back to tricubic's level (the Phase D exit). Neither did, so D2 then ran every fill on the c2f crossings to find out what the shock-crossing defect is not.

Models and numerics ​

ItemChoiceCode
seam_ghost_fill = weno6per direction the WENO-Z combination of the cubics of the 4-point sub-stencils that contain the ghost's interval (the C3 restriction's kernel, now shared); linear weights reproducing the Lagrange interpolant of their union (all positive); sub-stencils holding a jump dropped; the clamped linear interpolation of the interval when none is left. Order 6 at the centred anchor positions, 5 one cell from the donor block's edge, 4 at itseam_interpolate_weno6, seam_fill_weno6_1d, seam_weno6_core, adam_seam_interpolation_library.F90
seam_ghost_fill = quintic-mpthe D1 quintic clamped per direction to a Suresh–Huynh monotonicity-preserving bound: the interval's values and the curvature-corrected linear value L+θ(θ−1)/2dM4, widened by the curvature term; at the block edge, where the target lies a quarter cell outside the footprint, the extrapolation is allowed only when the edge-side intervals hold no jump. Order 6 at every targetseam_interpolate_quintic_mp, seam_fill_quintic_mp_1d, seam_minmod4, adam_seam_interpolation_library.F90
The other fills comparedinjection (order 1), restriction-compatible (order 2, exact R∘P=I with the mean restriction), tricubic (4, default), quintic (6)seam_interpolate_compatible, seam_interpolate_tricubic, seam_interpolate_quintic, adam_seam_interpolation_library.F90; interp_seam_ghost, adam_field_object.F90
Key[amr] seam_ghost_fill, read in initialize; both limited fills opt-in, the default stays tricubicadam_adam_object.F90
Restrictionlagrange6 on the crossings; weno6 (euler-ww) or lagrange6 (euler-mp) on AOC1, C3c
Scheme, time, refluxas in AO (reflux off) and AS (reflux on)numerics

Initial and boundary conditions ​

RunSetup
Crossingsthe AS c2f crossings, Sod N=200 and RJ2a N=256, lagrange6 restriction, reflux on, every fill; FNL, 2 ranks
AO euler-wwthe AO Euler vortex, weno6 restriction and fill, reflux off, N = 64 / 128 / 256
AO euler-mpthe AO Euler vortex, lagrange6 + quintic-mp, reflux off, N = 64 / 128 / 256
PV-5the limited blast across 2:1 seams of the positivity limiter, under both limited fills
GPthe ghost probe on a cubic field, under both limited fills

Input files ​

FileRole
src/tests/flume/verification/amr-order/check.sh --legs euler-ww,euler-mpthe AO legs: orders ≥4.8 / 4.5 (euler-ww) and ≥5.5 (euler-mp), the errors at most the baseline plus 2 %
src/tests/flume/verification/amr-shock/make_amr_shock.pythe crossings (--seam-ghost-fill, --seam-restriction)
src/tests/flume/verification/ghosts/check.sh --seam-ghost-fill FGP
src/tests/flume/verification/make_doc_runs.sh <runs> seams, make_doc_figures.py --only limited-fillsre-runs the crossings d-{quintic,weno6,quintic-mp}-{c2f,f2c} (CPU)
src/tests/flume/verification/multirealm/check.shleg 6 (--legs leg6) runs weno6 and quintic-mp across a refined inter-realm seam
bash
cd src/tests/flume/verification/amr-order && ./check.sh --legs euler-ww,euler-mp

Results ​

D2: the plateau with the 6-point fills

Sod at N=200, lagrange6, reflux on, CPU: the plateau behind the shock with the quintic, weno6 and quintic-mp fills (and the tricubic, c2f), coarse to fine and fine to coarse. The fills differ by at most about 10−3 in density, against a defect of 2.5⋅10−2 of the jump: the defect is not the fill.

Every fill on the c2f crossings (FNL, 2 ranks, lagrange6 restriction; plateau and band defects as in AS):

Fill (order)Sod plateau ρSod band ρSod shock (cells)RJ2a plateau ρRJ2a band ρ
injection (1)2.98⋅10−27.91⋅10−30.1732.49⋅10−22.16⋅10−4
restriction-compatible (2)2.32⋅10−25.31⋅10−30.1641.98⋅10−21.28⋅10−4
tricubic (4)2.46⋅10−26.33⋅10−30.1581.41⋅10−21.03⋅10−4
quintic (6)2.63⋅10−27.95⋅10−30.1592.30⋅10−20.68⋅10−4
weno6 (6, limited)3.01⋅10−27.75⋅10−30.1781.48⋅10−21.52⋅10−4
quintic-mp (6, limited)3.14⋅10−28.82⋅10−30.1732.47⋅10−26.25⋅10−4

Smooth flows (AO, N = 128 → 256):

LegL1 orderL∞ orderL1 at N = 256L∞ at N = 256
euler-ww (weno6 + weno6)5.325.508.60⋅10−86.61⋅10−6
euler-mp (lagrange6 + quintic-mp)6.106.336.04⋅10−84.77⋅10−6
euler-q6 (lagrange6 + quintic, D1)6.116.356.03⋅10−84.78⋅10−6

PV-5 passes with no inadmissible stage under both limited fills; GP holds a cubic field to round-off with either fill.

Related cases: D1 is the unlimited fill; E0 isolates the cause of the crossing defect; the baselines are AO and AS.

Findings ​

  • The defect has no trend with the fill's order, and limiting makes it worse. The best fill differs by case and by metric (restriction-compatible on Sod, tricubic on the RJ2a plateau, quintic on its band); every fill but the limited ones sits within roughly ±30% of tricubic, and the two limited fills are the worst on Sod, their shock furthest off. The plateau defect behind a crossing shock is not an overshoot of the fill, so no fill can be held to "no worse than tricubic".
  • The best Sod result belongs to the one fill with exact R∘P=I: the defect points to the consistency of the fill with the restriction at the crossing, and to the reflux (A3: reflux on/off moves it by up to 30 %), which is Phase E's ground, not the fill's order. E0 tested both and ruled both out.
  • On smooth flows both limited fills keep their order. euler-ww has the weno6 restriction's accuracy (the fill's 6-point WENO does not lose to the tricubic); euler-mp equals euler-q6: the MP bound never clips the vortex.