Invariant-domain learned reconstruction
Implementation & benchmark of arXiv:2607.20171 — Guarantees by Construction for Learned Finite Volume Schemes on Steady Supersonic Flow
Source paper: Guarantees by Construction for Learned Finite Volume Schemes on Steady Supersonic Flow arXiv:2607.20171 ⓘ · analyzed Aug 30, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Insert a neural local reconstruction into a finite-volume or graph-based simulator, but hard-cap its contribution so every reconstructed state remains in the physical admissible set. The network learns accuracy-sensitive gradients or stencil weights; a deterministic limiter, rather than a penalty loss, guarantees positive density and pressure for arbitrary network outputs.
Formulas
Mathematical statement
The governing state is \(\mathbf{w}=(\rho,\rho v_x,\rho v_y,E)^\top\), where \(\rho\) is density, \(v_x,v_y\) are velocity components, and \(E\) is total energy. For an ideal gas, \(E=p/(\gamma-1)+\tfrac12\rho|\mathbf v|^2\), so pressure is \(p(\mathbf w)=(\gamma-1)(E-\tfrac12(m_x^2+m_y^2)/\rho)\), with momenta \(m_x=\rho v_x\), \(m_y=\rho v_y\), and \(\gamma=1.4\). The admissible set is \(\mathcal G=\{\mathbf w:\rho>0,\ p(\mathbf w)>0\}\). The paper reconstructs each scalar variable using \(q_i(\mathbf x)=\bar q_i+\phi_i\,\mathbf g_i\cdot(\mathbf x-\mathbf x_i)\), where \(\bar q_i\) is the cell average, \(\mathbf x_i\) is the cell centroid, \(\mathbf g_i\) is a learned or reconstructed gradient, and \(\phi_i\) is a limiter. Use a hard limiter by defining a raw face state \(\mathbf w_f^{\rm raw}(\theta)=\bar{\mathbf w}_i+\theta(\mathbf w_f^{\rm NN}-\bar{\mathbf w}_i)\) and selecting the largest \(\theta\in[0,1]\) such that the interpolated state lies in \(\mathcal G\). Density is affine in \(\theta\), so its bound is explicit; pressure positivity is enforced by bisection using the ideal-gas pressure formula. The convex interpolation toward the admissible cell average is the constructive invariant-domain mechanism. Nonnegative normalized stencil weights can additionally prevent cancellation in the learned gradient operator.
Implementation notes
1. Integration point: use a small MLP or message-passing network on each cell and its one-ring neighbors. Feed normalized neighbor differences, centroid offsets, local Mach number, and cell-average conserved variables into the network. Let it output either a gradient \(\mathbf g_i^{\rm NN}\) for each conserved variable or a raw face state \(\mathbf w_f^{\rm NN}\). Apply this module before the numerical flux and before the finite-volume update; do not replace the Riemann flux or CFL time-step calculation. 2. Pseudocode: compute \(z_i=\mathrm{MLP}(\mathrm{features}_i)\); decode \(\mathbf g_i^{\rm NN}\) or \(\mathbf w_f^{\rm NN}\); form each face extrapolation with \(q_i(\mathbf x)=\bar q_i+\phi_i\mathbf g_i\cdot(\mathbf x-\mathbf x_i)\); for every face define \(\mathbf w_f(\theta)=\bar{\mathbf w}_i+\theta(\mathbf w_f^{\rm NN}-\bar{\mathbf w}_i)\). First set \(\theta\leftarrow\min(1,(\rho_i-\varepsilon_\rho)/(\rho_i-\rho_f^{\rm NN}))\) when the density endpoint violates the lower bound. Then run 20 bisection iterations on \([0,\theta]\), retaining the largest midpoint satisfying \(p(\mathbf w_f(\theta))\ge\varepsilon_p\), and use the resulting state in the flux. 3. The admissible-set definition and interpolation are mathematical guarantees; \(\varepsilon_\rho,\varepsilon_p\) are engineering floors, while neural-output scaling, gradient normalization, and bisection tolerance are empirical choices. Add a hard constraint for stencil weights by decoding \(a_{ij}=\exp(u_{ij})/(\sum_k\exp(u_{ik})+\delta)\), where \(u_{ij}\) are unconstrained network outputs and \(\delta>0\) prevents a zero denominator. 4. First experiment: train this module on a small unstructured-mesh 2-D Euler solver for Mach-2 flow past a step or obstacle. Compare against the same solver with a conventional minmod or Venkatakrishnan limiter and against an unconstrained learned reconstruction with only a positivity penalty, using identical coarse meshes and time steps. Measure invalid-state frequency, shock-location error, density and pressure overshoot, L1 state error, limiter activation rate, and wall-clock cost. Success means zero invalid states across held-out Mach numbers and geometries while reducing L1 density error by at least 20% relative to the classical limiter without substantially increasing flux evaluations.
Verification
Stage 1 · Toy mechanism gate: Passed ✓
Stage 2 · Mechanism transferred to benchmark: Confirmed ✓
Stage 2 · Practical benchmark result: Inconclusive
Methodology: 8 paired seeds, permutation test (p<0.05) against a learning-rate-tuned baseline. How verification works
Stage 1 — Mechanism check agent confidence 9/10
Built a deterministic invariant-domain limiter for 2-D ideal-gas conserved states using an explicit density bound and pressure bisection. The mechanism manifested: density-limit error was 0, pressure-root error was at most 2.22e-16, and Lambda*theta remained constant with tail ratio 1.0 across a 32x raw-strength sweep. In the secondary random test, raw invalid states occurred 56.0% of the time while limited states had 0% invalid states; this toy test does not establish an Euler accuracy win.
- Agent confidence
- 9/10
- Baseline
- First-order cell-average reconstruction: 56.0% raw invalid rate in generated raw outputs; L2 distance to raw output 3.3401; cell reconstruction error 0 by definition.
- Idea
- Invariant limiter: 0.0% invalid states, 56.0% activation rate, L2 distance to raw output 1.0646, L2 distance to cell average 2.2755; density-bound max error 0, pressure-root max error 2.22e-16, inverse-scaling tail ratio 1.0.
Limitations: No neural network training, finite-volume Euler time integration, shock-location or L1 accuracy study, GPU benchmark, unstructured mesh, or comparison against a true minmod/Venkatakrishnan reconstruction was performed. The baseline comparison is only a small conserved-state reconstruction sanity test.
How to run: python3 run_experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2607.20171)
Ahead of the baseline (−3.2%) but not statistically significant (p=0.0823, wins 6 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0003
- Idea mean
- 0.0003
- Effect (Δ)
- -0 (−3.2%; negative = idea better)
- Wins
- 6 / 8 paired seeds
- p-value
- 0.0823 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±4.7%
- Mechanism
- Confirmed ✓
- Practical effect
- Inconclusive
- Baseline tuning
- swept over 3 configs
The matched built-in dynamics track tests stability/control structure but is not a finite-volume 2-D Euler/PDE task, so density/pressure positivity was approximated by a scalar pendulum angle-domain projection. The limiter was not stress-tested on trained outputs because it never activated; no Euler solver, shock accuracy, geometry generalization, GPU run, or wall-clock/FLOP comparison was performed.
How to run: CUDA_VISIBLE_DEVICES='' /home/maxwelhelp/main/bin/python3 run_bench.py
Verdict computed by deterministic test code from paired-seed statistics — not by the language model.
Stage 2 — Benchmark latest Failed ✗
Agent confidence: 9/10
Implemented an end-to-end invariant-domain projection around the matched rnn_small dynamics model and ran the full 8-seed paired protocol with learning-rate sweep parity. The idea slightly improved test MSE, but the paired permutation test was not significant (delta_mean=-9.687e-06, p=0.0823), so there is no demonstrated win. The trained-model signature confirmed zero observed domain violations, but the limiter never activated because raw predictions already stayed inside the chosen angle domain.
- Baseline
- Best lr=0.01; full 8-seed test MSE mean=0.0003015457559740753, std=0.00019741488644742065.
- Idea
- Best lr=0.01; full 8-seed test MSE mean=0.0002918587179010501, std=0.00018751789044513985; 6/8 paired wins; delta_mean=-9.687038073025178e-06; permutation p=0.0823; limiter activation rate=0.0; raw and limited invalid-rate means=0.0.
Benchmark result
Ahead of the baseline (−3.2%) but not statistically significant (p=0.0823, wins 6 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0003
- Idea mean
- 0.0003
- Effect (Δ)
- -0 (−3.2%; negative = idea better)
- Wins
- 6 / 8 paired seeds
- p-value
- 0.0823 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±4.7%
- Mechanism
- Confirmed ✓
- Practical effect
- Inconclusive
- Baseline tuning
- swept over 3 configs
The matched built-in dynamics track tests stability/control structure but is not a finite-volume 2-D Euler/PDE task, so density/pressure positivity was approximated by a scalar pendulum angle-domain projection. The limiter was not stress-tested on trained outputs because it never activated; no Euler solver, shock accuracy, geometry generalization, GPU run, or wall-clock/FLOP comparison was performed.
How to run: CUDA_VISIBLE_DEVICES='' /home/maxwelhelp/main/bin/python3 run_bench.py
Artifacts
- bench_report.json 6.8 KB View Raw
- invariant_reconstruction.py 2.2 KB View Raw
- report.md 1.5 KB View
- report_bench_2026-08-31T125617.md 4.5 KB View
- results.json 3.0 KB View Raw
- run_bench.py 4.3 KB View Raw
- run_experiment.py 4.1 KB View Raw