Sections A–C document the vacuum-spacetime / gravitational-wave capability. This
section is the magnetized-accretion half — the HARM domain. The platform implements
conservative GRMHD with the Noble et al. (2006) primitive-variable inversion at its core,
validated piece by piece against closed forms and convergence gates. Everything below runs
from the same WASM engine (wasm/src/grmhd/), checked by
cargo test --release --lib grmhd (15/15).
con2prim recovers the primitive state P = (ρ, u, vi, Bi) from the conserved state U. Our first implementation used the Noble (2006) 2D (W, v2) scheme generalized to a spatial 3-metric. It is exact for hydro on any metric and for flat-space SRMHD, but only ~10-4 in ρ for the magnetized + curved + shifted case — even though the Newton iteration converges (residual ~10-16). It was finding the exact root of the wrong equations.
Root cause: the GR-MHD normal-frame momentum Si = α Tti carries a magnetic term −α bt bi, where bi is the 4-metric-lowered magnetic 4-vector, bi = βi bt + γij bj. The shift contribution βi bt has no analogue in the special-relativistic Noble relation, which lowers B with the 3-metric only. Hydro has no magnetic term; flat space has βi = 0; only the magnetized + shifted case exposes it. This is the standard subtle heart of GR-MHD primitive recovery (Noble et al. 2006, §3–4). It was caught by a prim→cons→prim round-trip gate in the Kerr-Schild metric.
Rather than hand-derive the curved-metric analytic inverse, we drive the GDBS
drift-aware closure engine (wasm/src/drift_escalator.rs; pinned application
“GDBS physics”) on the GR-exact forward map. con2prim becomes a closure
problem — find P that drives R(P) = ‖ prim2cons(P) − U ‖ → 0:
Because we close the GR-exact forward map (the one we already validated) rather than evaluate a hand-derived inverse, the special-relativistic-vs-GR formulation gap never enters. For completeness: two GDBS components that look related are not the right tool — HXT is mesh-tier composition (no tiers in a pointwise solve), and the cascade auto-tuner closes transcendental constants to rational combinations (con2prim seeks continuous reals).
This section closes one specific gap — GR-MHD primitive recovery to the f64 floor on a fixed Kerr-Schild background — and validates the supporting pieces (FM torus equilibrium, SRMHD Riemann tests, constrained transport, linear MRI dispersion γmax = (3/4)Ω). It does not by itself deliver magnetized accretion. The remaining pipeline, each gated by its own check: wiring the closure inverse into the magnetized torus evolution; constrained transport for B in (r, θ) + a poloidal field-loop seed → MRI growth; the horizon-penetrating inner boundary (currently above the horizon); and the diagnostics a HARM user reads (Ṁ, horizon flux ΦBH, Maxwell stress). 2D-axisymmetric evolution shows MRI onset but, by Cowling's anti-dynamo theorem, cannot sustain turbulence — that requires 3D (the GPU tile-streaming path).
The in-development bug log on the live module (HPC Lab → GRMHD Accretion) records each finding per experiment with how the gate caught it and how it was fixed — including this con2prim result.
wasm/src/drift_escalator.rs (closure engine), wasm/src/grmhd/gr2d.rs (cons2prim_gr_mhd_closure), docs/nasa/noble/D_grmhd_con2prim_closure.md (full methodology).