Sod Shock Tube with Meta-Calculus Flux Limiting
Flux-limiter comparison on the Sod and Shu-Osher shock tubes, including a limiter blended by a log-derivative shock sensor. Every result number below is read from a stored artifact.
The Sod Shock Tube Problem
Problem Setup
A tube with a membrane at x=0.5 separating high-pressure gas (left) from low-pressure gas (right). At t=0, the membrane bursts.
Physical Features
The solution develops three distinct waves:
- 1.Rarefaction fan - smooth expansion wave moving left
- 2.Contact discontinuity - density jump at constant pressure
- 3.Shock wave - pressure/density jump moving right
Governing Equations
1D Euler equations for compressible inviscid flow:
Where rho is density, u is velocity, p is pressure, and E = p/(gamma-1) + 0.5*rho*u^2 is total energy. Ideal gas with gamma = 1.4.
Log-Derivative Shock Sensor
Current Sensor (since 2026-10-07)
The log-derivative (the logarithm of the geometric derivative) is unchanged by rescaling rho and does not depend on where x = 0 sits. High |s| (shock) blends toward minmod; low |s| (smooth) toward superbee, with van Leer in between.
Retracted Sensor
The earlier elasticity sensor depends on the coordinate origin (the threshold acts as T/|x| and the sensor vanishes at x = 0), so the Shu-Osher result changed when the same problem was shifted. Results that used it, including the old 1.2% and 5.4% headlines, are retracted.
Classical Limiters (Baselines)
Regenerated Benchmark: Shu-Osher and Sod
Shu-Osher has smooth entropy waves interacting with a shock, which makes it a harder test than Sod.
Earlier Experiments (older k-blending limiter)
These studies use the older k(gradient) blending limiter, not the current sensor, re-run on the SSP-RK2 Shu-Osher solver. Numbers are read from the stored artifacts; each is a single configuration study with parameters taken from earlier MOO runs, and the mesh study carries the artifact's own in-sample status.
Cross-Validation: Do Tuned Parameters Transfer?
Artifact verdict: PROBLEM_SPECIFIC
Multi-Seed NSGA-II (Shu-Osher, pymoo)
Best in-sample L2 per seed vs minmod 0.1621 (5 seeds, pop 20 x 15 generations):
Parameters are tuned against the same reference they are scored on, so this measures optimizer repeatability, not generalization.
Mesh Refinement (Shu-Osher vs minmod, Sod vs Van Leer; in-sample, hand-set params)
Artifact status: IN-SAMPLE, NOT A GENERAL CLAIM: Shu-Osher solver is SSP-RK2 + TVD MUSCL (re-run 2026-10-07); MOO_best params are hand-set from the retracted forward-Euler MOO run; improvement is vs minmod (Shu-Osher) and vanleer (Sod), not the best standard limiter at each nx
| nx | Sod | Shu-Osher |
|---|---|---|
| 100 | -18.3% | +4.6% |
| 200 | -5.3% | +0.1% |
| 400 | +3.4% | +18.1% |
| 800 | +9.7% | +65.7% |
Verdict: PARTIAL_CONSISTENCY. Not a headline result: the comparison is against minmod on Shu-Osher (not the best limiter at each nx), in-sample, with hand-set parameters from the retracted run, scored against a Van Leer nx = 2000 reference. An independent check against a converged WENO5 nx = 16000 reference (docs/research/cfd-followups-2026-10/F3/table_results.json, cell-averaged L2) finds a meta limiter variant within the reference uncertainty of the best standard limiter at 200, 800 and 1600 cells, while superbee is clearly better at 100 and 400 cells.
Lax Shock Tube (3rd benchmark, nx = 200)
Verdict: transferred parameters lose to superbee.
What Flux Limiters Do (Plain English)
The Problem
Simulating air flow on a computer means dividing space into grid cells and moving fluid between them. Sharp changes such as shock waves make the numerics produce fake oscillations, like ringing artifacts in a bad JPEG.
Flux limiters are safety nets that prevent this. More safety means more blur.
The Safety Nets
Very safe, rarely oscillates, but smears details.
A common balanced default between safety and sharpness.
Keeps edges crisp but can add oscillations (highest TV above).
The sensor-blended limiter switches between these by local |d ln rho / dx|. On the regenerated Shu-Osher run it trades a lower L2 than superbee for more total variation than minmod. On Sod its best setting (NNC_thresh_7.0) loses to superbee (+26.1% L2) and Van Leer (+16.7% L2) and is about level with minmod (+0.3% L2).
Archived Figures (pre-2026-10-07)
No archived figures are shown; the charts above render from the stored artifacts. The former cross-validation and mesh-refinement figures were drawn from hard-coded values and have been removed.
Figures from the withdrawn shock_tube_full_nnc_update.py were removed (2026-10-07).
Literature
- Grossman & Katz (1972): "Non-Newtonian Calculus." Lee Press.
- Grossman (1983): "Bigeometric Calculus: A System with a Scale-Free Derivative."
- Bashirov et al. (2008): "Multiplicative Calculus and Its Applications." J. Math. Anal. Appl. 337, 36-48.
- Riza & Aktore (2015): "The Runge-Kutta Method in Geometric Multiplicative Calculus." LMS J. Comp. Math. 18(1), 539-554.
Data & Code
Simulation Files
simulations/cfd_nnc_comprehensive.py- current sensor benchmarksimulations/cross_validation_experiment.py- transfer tests (old limiter)simulations/mesh_refinement_study.py- resolution tests (old limiter)simulations/multi_seed_moo.py- 5-seed pymoo NSGA-II (old limiter)
Results Files (copied to public/)
cfd_nnc_comprehensive.json- regenerated 2026-10-07cross_validation_results.jsonmesh_refinement_results.json- in-sample, hand-set parameterslax_shock_tube_results.jsonmulti_seed_moo_results.json