Appearance
Dissipative terms (M4)
Milestone M4 (#65) adds the dissipative terms to FLUME: viscosity and heat conduction (Navier–Stokes) on Euler and MHD, resistivity (Ohmic diffusion) on MHD, and the no-slip walls. Each coefficient is read either as a coefficient or as its dimensionless number (#49 N4); the keys are listed in input, the fluxes in numerics, the walls in boundary conditions.
The legs grow from the contract (DC) through exact linear and steady solutions on uniform grids (VV-1 to VV-6) to the 2:1 AMR and forest seams (VV-7, VV-8), and end with the run-by-run comparison of the two backends. Every leg runs on the CPU and on FNL, on 2 ranks.
| Case | ID | What it verifies |
|---|---|---|
| Input contract | DC | 25 input cases: invalid combinations refused with a message, implied coefficients logged exactly, zero coefficients bitwise inert, dimensional keys converted back exactly |
| Viscous waves | VV-1, VV-2 | order 4 and 2 of the viscous flux on a shear wave (along |
| Compressible Couette flow | VV-3 | the no-slip walls (isothermal and moving) and the viscous heating, against the exact steady profile |
| Becker's viscous shock | VV-4 | the nonlinear viscous and heat fluxes through a resolved shock, Mach 2 and 3 |
| Ohmic decay and the visco-resistive Alfvén wave | VV-5 | the Ohmic flux (sign, cross terms, coefficient), |
| Ohmic heating and the divergence constraint | VV-6 | the Ohmic energy returned to the gas as heat; no divergence added by the curl form (GLM, EGLM) |
| Conservation across 2:1 seams and forest seams | VV-7 | the dissipative fluxes carried by the reflux and the inter-realm register; forest union equal to the single realm |
| Accuracy across 2:1 seams | VV-8 | the order of the composite grid (second), and the reflux as the carrier of the dissipative seam flux |
| CPU and FNL agree run by run | VV agree | every one of the 72 VV runs equal on the two backends within |
Run every leg:
bash
cd src/tests/flume/verification/dissipation && ./check.sh # DC, CPU
cd src/tests/flume/verification/viscous && ./check.sh # VV-1 to VV-8, CPU
FLUME_EXE=$PWD/../../../../../exe/adam_flume_fnl ./check.sh # FNL
./check.sh --legs agree # CPU against FNLThe figures (viscous.png, viscous-fields.png, couette.png) are drawn by make_doc_figures.py from the CPU work directories that viscous/check.sh leaves (no make_doc_runs.sh group):
bash
exe/.regression-venv/bin/python src/tests/flume/verification/make_doc_figures.py --out docs/public/flume \
--only viscous viscous-fields couette