Mason Shopperly

research · note · in motion

Working through the Zingg two-book arc

Two books, taken together, are the analytical-numerics arc I keep coming back to. CFDLab is the artefact that finally answered them, on my own time.

JST vs Roe + MUSCL on the full Sod shock tube — CFDLab cross-project comparison, density and Mach panels
JST (ARC1D) vs Roe + MUSCL (upwind1d) on the full Sod shock tube — the comparison that doesn't exist until both lanes work.
Lane
research
State
Active
Last touched
2026-07-14
Tools
Python · ARC1D · FLOMG · upwind1d
Depth
■■■■■□ 5 / 6

What the arc actually is

Lomax, Pulliam, and Zingg wrote two books that, taken together, lay out the analytical-numerics arc end to end. Book one is the analytical layer: modified wavenumber, eigenvalue analysis of marching schemes, dispersion versus dissipation, truncation error. Book two is the practical layer: JST artificial dissipation, Roe + MUSCL, multigrid, shock-capturing made operational.

How I rebuilt it

Three structurally different solvers, each on its canonical problem: ARC1D (JST + implicit FD), FLOMG (FAS multigrid, transonic), upwind1d (Roe + MUSCL + TVD). Everything pinned by CI baselines so the analytical layer can keep developing without quietly breaking the solvers underneath it.

Where it sits now

The 1-D arc is done and holding: three solvers running, and the cross-project shock-tube comparison (JST artificial dissipation versus Roe + MUSCL upwinding) is the figure above — it doesn't exist until both lanes work, and that's the thing the arc was for. The codebase has since moved past the books' 1-D chapters: 100+ CI-pinned baselines, a shared library of the numerical fundamentals, and two 2-D lanes — an ARC2D reconstruction and a 2-D upwind extension — both verification-gated, neither called validated.

Next

The 2-D lanes carry the current work: the ARC2D reconstruction toward the reference-data comparison it hasn't earned yet, and the upwind extension through its exact-solution ladder. The full picture lives on /work/cfdlab.

← All notes