Appearance
Rotated shock tube
| ID | Group | Milestone | Backends | Figure | Regression |
|---|---|---|---|---|---|
| MV-8 | Ideal MHD | M2 (#41) | CPU, FNL | yes | rotated-shock-tube |
Case and scope
Ryu–Jones 1a rotated in the
What the case catches:
- a divergence error of the multi-dimensional scheme:
(Tóth eq. 45, against the analytic value) under a bound, decreasing with ; - a 2-D solution that departs from the 1-D one: the mean relative
error of , , , , , against a 1-D reference run, under a bound, decreasing with .
Models and numerics
| Item | Choice | Code |
|---|---|---|
| Equations | ideal MHD, | models |
| Space | WENO5 flux splitting on characteristic variables | compute_residuals_weno, adam_flume_cpu_object.F90; mhd_glm_face_split_fluxes, adam_flume_mhd_library.F90 |
| Divergence control | GLM, glm_ch_check = error), glm_alpha = 0.18, glm_damping_length = 1.0 | models |
| Floors | disabled | models |
| Time | SSP Runge–Kutta, 5 stages (runge-kutta-ssp-54), CFL 0.4 | adam_rk_object.F90 |
| Boundaries | periodic (FLUME has no shifted-periodic boundary) | boundary conditions |
| FNL backend | the same kernels on the device | adam_flume_fnl_object.F90 |
Initial and boundary conditions
| Item | Value |
|---|---|
| Problem | Ryu & Jones (1995) 1a in the frame of the normal: |
| Initial condition | rotated-riemann, |
| Normals | |
| 2-D grid | |
| 1-D reference | the same problem along |
| Ranks | 2 |
| Final time |
Input files
| File | Role |
|---|---|
src/tests/flume/verification/mhd/rotated-shock-tube/make_rotated_shock_tube.py | writes the 2-D input from vortex/vortex-n064.ini or the 1-D reference from sod/sod-x.ini (--angle 45|63, --cells, --reference, --cfl, --glm-ch) |
src/tests/flume/verification/mhd/rotated-shock-tube/check.sh | runs the reference and the ladder for both normals (--np N, --legs LIST: mv8-63, mv8-45; about 30 min) |
src/tests/flume/verification/make_doc_runs.sh <runs> rotated, make_doc_figures.py --only rotated-shock-tube | re-runs both normals at |
src/tests/flume/verification/mhd/rotated-shock-tube/rotated_shock_tube_oracle.py |
bash
cd src/tests/flume/verification/mhd
rotated-shock-tube/check.sh # CPU
FLUME_EXE=$PWD/../../../../../exe/adam_flume_fnl rotated-shock-tube/check.sh # FNLResults

The
| Check | Bound (CPU baseline M2-P6d + 2%) | CPU | FNL |
|---|---|---|---|
| below / | pass | ||
| mean relative error, 63.4°, | below | pass | |
| below / | pass | ||
| mean relative error, 45°, | below | pass | |
| both measures decreasing with | strict | pass | pass |
Reference values of Tóth's second-order base scheme at 63.4°,
FNL ran both normals (work directories of both backends); the tables record the CPU values.
Related cases: Ryu–Jones 2a is the axis-aligned MHD Riemann problem; field loop measures the divergence error of a smooth field; GLM cleaning the cleaning itself.
Findings
is below Tóth's base-scheme value at 63.4° ( against ) with half his cells across the fan. - The 45° normal is not degenerate for this scheme, unlike Tóth's CT and CD schemes:
is conserved to truncation, not to round-off. - The convergence of
is about first order at 63.4° and slower at 45° (rates about 1.1 and 0.6 from 128 to 256, computed from the baselines behind the bounds). - A periodic line forces the velocity jump to be undone. A second jump would be the mirror problem, an expansion close to vacuum (density
, Alfvén speed ) where grows with the resolution of the fan and no holds; the resolved ramp (density at the final time) avoids it, and the 1-D reference solves the same problem, ramp and wave interactions included.