Skip to content

2:1 caps in a 2-D prototype ​

IDGroupMilestoneBackendsFigureRegression
B1Seam studiesM6 (#68)NumPy prototype (no ADAM run)yes—

Case and scope ​

#68 Appendix A measured in 1-D that the mean restriction and the reflux of point-value fluxes each cap the order at 2, and that a 6-point restriction with a quintic prolongation and no reflux recovers order 5. A 1-D model has no tangential direction: no tangential averaging in the register (the coarse face takes the mean of two fine point fluxes, one more O(H2) term, #68 F1), no tangential footprint of the prolongation, no seam corners. Phase B repeats the measurement in 2-D, in NumPy, without ADAM runs, and locates the maximum error (corner, edge or interior) to test whether the seam corners explain the L∞ order 1.46 of A1's Euler vortex (AO).

Models and numerics ​

ItemChoiceCode
Equationut+ux+uy=0 (velocity (1,1))Law, proto2d.py
Spaceconservative finite differences of point values with the 5th-order linear upwind flux (the WENO5 optimal weights), dimension by dimension, 3 ghost layersface_flux, proto2d.py
Timeclassical RK4, one global step Δt=0.4h(64h)1/4/max(a,b), so Δt∝h5/4 and the spatial error dominatesadvance, proto2d.py
Composite gridthe box [0.25,0.75]2 refined 2:1 (h=H/2); the coarse cells it covers hold the restriction of the fine ones before every evaluation, as FLUME's coarse ghosts doComposite, proto2d.py
Restrictionmean (the 2×2 mean, FLUME's) or lag6 (6×6 tensor Lagrange at the coarse centre, shifted inside the box at its edge)Composite.restrict, proto2d.py
Prolongationcubic (FLUME's tricubic) or quintic, from coarse cells outside the box only (shifted away from the box along the normal axis, as FLUME's donor-block footprint; centred along the other axis)Composite.pad_fine, proto2d.py
Refluxon: a coarse box face takes the mean of its two fine fluxes (the 2-D register); off: each grid keeps its own fluxComposite.rhs, proto2d.py
FLUME counterpartsthe seam operators of AOadam_seam_interpolation_library.F90

Initial and boundary conditions ​

ItemValue
Domainthe periodic unit square
Initial conditionsin⁡2πxsin⁡2πy
Final timet=1, one period
Gridcoarse N cells per side; N = 32 / 64 / 128 (check.sh), 64 / 128 / 256 (--long)
Regionscorner: within 3 coarse cells of a box corner; edge: within 3 coarse cells of a box edge otherwise; interior: the rest
Armsuniform coarse control; restriction (mean, lag6) × prolongation (cubic, quintic) × reflux (on, off)

Input files ​

FileRole
src/tests/flume/verification/amr-proto/proto2d.pythe prototype; b1 [--cells ...] [--velocity a b] [--assert ARM:NORM:MIN]
src/tests/flume/verification/amr-proto/check.shruns B1, B2 and B3 (--legs b1,b2,b3, a leg runs only when the ones before it pass; --long for the finer ladders)
src/tests/flume/verification/make_doc_figures.py --only seam-proto-b1draws the figure (fig_seam_proto_b1; NumPy only, about 1 min)
bash
cd src/tests/flume/verification/amr-proto && ./check.sh --legs b1  # about 1 min for B1
./check.sh --legs b1 --long                                        # B1 at N = 64 / 128 / 256, about 4 min

Bounds asserted by check.sh, lower bounds only (a transfer that recovers order passes): the uniform control L∞ order at least 4.8; lag6-quintic-off at least 4.7 in L1 and L∞; lag6-cubic-off at least 3.7 in L∞. The caps of the mean restriction and of the reflux are reported.

Results ​

B1: order per arm and where the error lives

The check.sh ladder, N = 32 / 64 / 128 (the legend gives the 64 → 128 orders; the table below is the --long ladder, 128 → 256): L1 and L∞ per arm against the order-2 and order-5 slopes, and the L∞ error at N=128 split by region. Every arm with the reflux on, or with the mean restriction, is capped at order 2 in L∞; only lag6 + quintic without reflux reaches 5, and its error is spread evenly over corners, edges and interior.

Orders of N = 128 → 256; mass drift after one period at N=256:

ArmL1L∞L∞ corner / edge / interiorMass drift
uniform (coarse)5.015.01– / – / 5.015⋅10−18
mean, cubic, on (today)2.851.931.93 / 1.97 / 1.971⋅10−18
mean, cubic, off2.011.951.95 / 1.97 / 1.975⋅10−8
lag6, cubic, on2.851.931.93 / 1.97 / 1.952⋅10−18
lag6, cubic, off3.984.014.01 / 3.96 / 3.951.3⋅10−9
lag6, quintic, on2.851.931.93 / 1.95 / 1.966⋅10−19
lag6, quintic, off4.994.994.99 / 4.98 / 4.989.1⋅10−11
mean, quintic, off2.021.931.93 / 1.98 / 1.977⋅10−8

Related cases: AO measures the same caps in FLUME; B2 adds the nonlinear weights and a sensor-gated reflux; B3 studies the restriction's footprint.

Findings ​

  • The 1-D findings hold in 2-D. The mean restriction caps the order at 2 whatever the prolongation; the reflux caps it at 2 whatever the transfers (its tangential mean of point fluxes included). The 6-point restriction with the quintic prolongation and no reflux recovers order 5 in L1 and L∞, with the tangential footprint and the corners present; with the cubic prolongation, order 4.
  • Without the reflux, the mass drift converges at the scheme's order when the transfers are high-order (9⋅10−11 at N=256, against 5⋅10−8 with the mean restriction).
  • The corners hold the maximum error, not a lower order. In every arm the maximum sits within 3 cells of a box corner, but the corner, edge and interior maxima converge at the same rate. In this linear model the corners do not explain the L∞ order 1.46 of A1's Euler vortex; what the model lacks is the nonlinear WENO weights and the characteristic projection (#68 F6), which B2's nonlinear prototype brings in.