Vignesh Gopakumar
  • Home
  • Research
  • Talks
  • Blog
  • Tokamak Toolkit

Claims register

Every number quoted anywhere in this log has a row here, and pages show it from this register, so it cannot drift between pages. Claims are never deleted: a wrong one is marked retracted and kept, with a link to the erratum.

Status:

  • tested: asserted by a named test in the suite at the stated commit
  • measured: from a recorded run or study at the stated commit
  • preliminary: measured, with a caveat named in the row
  • reviewed: passed a human review gate
  • superseded: replaced by a newer claim
  • retracted: wrong; see the errata

tested claims are checked by the test suite, which is run in full, and again with every UKAEA-gated code disabled, before each publish. The code is in a private repository whose continuous-integration results are not part of this log, so a claim is tested at its stated commit, not re-checked automatically between publishes. reviewed claims passed the M1 physicist review (1 Oct 2026), which the owner did as reviewer of record; the gate and the tolerances it set are on the decisions page.

ID Claim Value Status Evidence Commit
C-001 Toy Tier A scenario runs 100 coupled steps under jit
exact; profiles finite and positive, edge condition respected
100 steps tested tests/regression/test_toy_loop.py::test_100_steps_under_jit 79285af
C-002 Final fixed-point residual per step, toy scenario, relaxed Picard iteration
order of magnitude; 6 iterations at relaxation 0.7
3 × 10-5 measured solver comparison, entry 01
tkit run configs/scenarios/toy.yaml with loop.solver=picard
91d4e55
C-003 Final fixed-point residual per step, toy scenario, Newton-Raphson with line search
order of magnitude; 4 iterations; test asserts < 1e-9
10-14 tested tests/regression/test_toy_loop.py::test_newton_converges_quadratically 91d4e55
C-004 Cost of Newton relative to Picard per run, toy scenario, 100 steps on CPU
8.8 s vs 0.04 s; dominated by the dense 150x150 Jacobian (ceiling K-002)
200× slower measured solver comparison, entry 01 91d4e55
C-005 Final residual on the stiff toy settings where Picard stalls (Picard 2e-2, Newton 3e-11)
Picard stalls at 2e-2 and is reported, not hidden
3 × 10-11 tested tests/regression/test_toy_loop.py::test_newton_converges_where_picard_stalls 91d4e55
C-006 Agreement between the fixed-step scan over the transport code's step function and that code's own driver, same configuration
test asserts < 1e-10
10-13 tested tests/regression/test_torax_loop.py::test_scan_matches_torax_driver 61aa774
C-007 Stored ITER hybrid ramp-up reference reproduced by the fixed-step loop at the reference's own 2 s step
test asserts < 1e-10
10-14 tested tests/regression/test_torax_loop.py::test_rampup_reference_steps_reproduced 61aa774
C-008 Reverse-mode gradient of stored energy through three coupled transport steps, checked against central finite differences
forward and reverse mode agree to 1e-9
10-6 tested tests/diff/test_torax_gradients.py::test_grad_through_torax_steps_fd_checked 61aa774
C-009 Stored thermal energy from the converted profiles versus the transport code's own value, ITER hybrid (impurity pressure included)
test asserts 1e-10 at every output time
10-16 tested tests/regression/test_torax_backend.py::test_stored_energy_identity 3ae5531
C-010 Total heating power from the converted sources versus the transport code's own value
test tolerance; agreement observed to 5 significant figures
better than 10−8 tested tests/regression/test_torax_backend.py::test_heating_power_identity 3ae5531
C-011 Effect on stored energy at t = 80 s of removing the non-converged steps in the ITER hybrid ramp-up by lowering the line-search floor (53.998 vs 53.999 MJ)
6 non-converged steps at dt = 0.5 s become 0; residual tolerance unchanged
2 × 10−5 relative measured line-search study, entry 05 ae294c9
C-012 Core electron temperature difference between 1 s and 0.25 s fixed steps at t = 2 s of the ITER hybrid ramp-up (initial transient; falls to 0.4% by t = 80 s)
first-order convergence in dt
18% measured time-convergence study, entry 03 61aa774
C-013 Departure of the published adaptive-step ITER hybrid flat-top reference from the dt -> 0 answer at t = 2 s
5% at t = 5 s; reference steps up to 0.42 s
Caveat: the benchmark tolerance and whether to compare at the published or a converged step are still open (decision pending)
34% preliminary time-convergence study, entry 03 61aa774
C-014 Guarded transport with an always-open guard reproduces the unwrapped neural transport model
bit-identical on T_e and n_e over 8 steps; fallback fraction 0
bit-identical tested tests/regression/test_torax_guard.py::test_open_guard_reproduces_plain_qlknn_exactly 26f89fb
C-015 Guarded transport with an always-closed guard reproduces the pure fallback model
fallback fraction 1
10-12 tested tests/regression/test_torax_guard.py::test_empty_guard_equals_pure_fallback 26f89fb
C-016 Error introduced by wrapping the neural transport model before the post-processing defaults were carried to the wrapper (a bug, since fixed)
cause: a radial smoothing width injected by the model's own configuration validator
5% measured identity check, entry 04 26f89fb
C-017 Absorbed power of the analytic Gaussian radio-frequency heating model versus the requested power
deposition and driven current peak within one grid cell of the requested radius
10-6 tested tests/physics/test_rf_deposition.py::test_absorbed_power_equals_request ae294c9
C-018 Plasma current of the MAST-U-like free-boundary equilibrium versus the requested 620 kA
magnetic axis at R = 0.99 m, Z = -0.05 m
10-3 tested tests/physics/test_freegsnke_mastu.py::test_solve_reproduces_requested_plasma 8dc8425
C-019 Free-boundary solver convergence for the MAST-U-like diverted plasma
26 of 100 allowed iterations; about 43 s on one CPU
4 × 10-10 measured MAST-U forward solve, entry 06 8dc8425
C-020 Integral of dV/drho over the MAST-U-like equilibrium recovers the enclosed volume
test asserts 2%; area reconstruction ceiling K-004
2% tested tests/physics/test_freegsnke_mastu.py::test_ids_is_complete_and_valid 8dc8425
C-021 Toroidal-flux radius versus geometric minor radius for the MAST-U-like equilibrium (0.83 m vs 0.55 m), which must not be conflated on a spherical tokamak
ordering asserted by test
a factor of 1.52 tested tests/physics/test_freegsnke_mastu.py::test_adapter_round_trip_and_resampling 8dc8425
C-022 Error in the outermost flux-surface area when reconstructed by counting grid cells inside the surface, for a diverted plasma (why the volume-based formula is used instead)
2% agreement at mid-radius
32% measured area reconstruction check, entry 06 8dc8425
C-023 Wall-clock time to simulate 80 s of the ITER hybrid ramp-up on one datacentre GPU, after compilation
90 s wall time in total, of which about 70 s is one-off compilation; reference run reproduces bit for bit
under 4 s measured reference generation, entry 02 3ae5531
C-024 IMAS round trip (data structure -> IDS -> data structure) preserves values and coordinates for the equilibrium, core_profiles, core_transport and core_sources records, including a netCDF file round trip
test asserts rtol 1e-14; each IDS also passes the Data Dictionary's validate()
10-14 tested tests/unit/test_adapters_roundtrip.py dfc01a7
C-025 Toy scenario, 100 coupled steps, wall time once compiled on one datacentre GPU (M0, relaxed Picard iteration)
2.5 s including compilation
0.4 s measured M0 report
tkit run configs/scenarios/toy.yaml
79285af
C-026 Single-step particle and energy balance of the implicit transport solve (change in content equals integrated source minus edge loss)
test tolerance
10-10 tested tests/conservation/test_balance.py::test_particle_balance_single_step, ::test_energy_balance_single_step dfc01a7
C-027 Per-step particle and energy balance reconstructed from the recorded trace of a full coupled run, whether or not the nonlinear iteration converged
test tolerance; holds because of the corrector solve
10-9 tested tests/conservation/test_balance.py::test_loop_balance_exact_from_trace dfc01a7
C-028 Reverse-mode gradient of stored energy with respect to heating power and transport stiffness through 20 coupled toy steps, checked against central finite differences
forward and reverse mode agree to 1e-9
2 × 10-5 tested tests/diff/test_gradients.py::test_grad_finite_and_fd_checked dfc01a7
C-029 Tests passing at the close of M0, run in full and again with every gated code disabled
same 42 in both modes; lint and type checks clean
42 tests measured M0 report 79285af
C-030 Toroidal-flux radius at the boundary versus geometric minor radius, ITER hybrid reference runs (2.747 m vs 2.000 m)
read from the stored reference runs
a factor of 1.37 measured ITER hybrid reference runs (rho_b and a_minor outputs) 3ae5531
C-031 ASCOT5 smoke test, analytic ITER field at R = 7 m versus the vacuum 1/R value from 5.3 T at 6.2 m
confirms the compiled library loads, builds inputs and evaluates fields
2% tested tests/unit/test_external_codes.py::test_ascot5_library ae294c9
C-032 Normalised electron temperature gradient R/L_Te at rho = 0.26 on the ITER hybrid ramp-up at t = 80 s, the Tokamak Toolkit's feature convention versus QLKNN's (6.80 vs 5.73); at rho = 0.90 the two are 16.89 vs 25.22 (-33%)
rho = 0.50: 7.76 vs 7.26; rho = 0.74: 9.03 vs 10.47
+19% measured feature-convention comparison on the stored ITER hybrid ramp-up reference, 2026-09-30 8dc8425
C-033 Exported boundary flux radius versus the source code's own value, for TORAX (ITER hybrid, 2.746910 m; minor radius 2.0 m) and FreeGSNKE (MAST-U-like, 0.83 m; minor radius 0.55 m), after the K-007 fix
test tolerance, both codes
10-12 tested tests/regression/test_torax_backend.py::test_equilibrium_export_matches_torax_flux_radius, tests/physics/test_freegsnke_mastu.py::test_equilibrium_export_matches_source_flux_radius 6b0845c
C-034 Shortfall in stored thermal energy computed from the converted profiles before the impurity ions' pressure was included, ITER hybrid
consistent across output times; falls to C-009 once impurity pressure is added
0.3% low measured conversion check, entry 2 3ae5531
C-035 Per-step global energy balance of TORAX's discrete equations, rebuilt from TORAX's own coefficients, ITER hybrid ramp-up benchmark at its reference settings (Newton, 2 s steps); relative residual = |residual| / (|storage| + |edge| + |sources| + |pinning|)
test bound on fine-tolerance steps (8 steps); measured over the full 80 s (40 steps): max 1.2e-7, median 2e-10; 8e-5 on the 3 steps where Newton reached only its coarse tolerance
better than 10-6 tested tests/conservation/test_torax_balance.py::test_rampup_benchmark_balance fb5a0b5
C-036 Per-step global particle (electron) balance, same reconstruction and runs as C-035
test bound; measured max 1.4e-11 over the 80 s ramp-up, 7e-12 on the flat-top
better than 10-10 tested tests/conservation/test_torax_balance.py::test_rampup_benchmark_balance, ::test_newton_step_conserves_energy_and_particles fb5a0b5
C-037 Share of the per-step energy balance left unaccounted for by the flat-top reference's solver (linear, one predictor-corrector step), ITER hybrid flat-top, 0.05 s steps, median of the first 6 steps; five corrector steps reduce it to 0.09%
per step 0.6-2.1%; test asserts 0.1-5% and a reduction by more than 5x with five corrector steps
about 0.8% tested tests/conservation/test_torax_balance.py::test_linear_predictor_corrector_energy_defect_is_coefficient_lag fb5a0b5
C-038 Share of the heating power removed by the pedestal model's adaptive pinning source, ITER hybrid ramp-up, every step from t = 4 s to 80 s (20.6 of 23.5 MW at t = 80 s); the power conducted through the last closed flux surface is 1.5-10% of the heating over the same steps
range over 39 steps; test asserts more than 50% on 7 steps
87–98% reviewed run_balance over the 80 s ramp-up (40 fixed 2 s steps), 2026-09-30; bound in tests/conservation/test_torax_balance.py::test_rampup_benchmark_balance fb5a0b5
C-039 Edge term of the rebuilt TORAX balance versus the flux through the last face computed separately from the face gradient, all four evolving channels
test tolerance; measured agreement about 1e-14
10-10 tested tests/conservation/test_torax_balance.py::test_edge_term_is_the_last_face_flux fb5a0b5
C-040 Per-step metric records received by the tracking server's client, toy scenario of 100 steps run end to end through the command line with the Simvue mirror in offline mode (no network); the local record holds the same 100, one per step, stamped with the simulation time
exact
100 of 100 steps tested tests/regression/test_cli_tracking.py::test_run_with_simvue_offline, ::test_run_logs_every_step e8e1d6f
C-041 Share of the heating power conducted out through the last closed flux surface (the balance's edge term), ITER hybrid ramp-up, every step from t = 4 s to 80 s (2.3 of 23.5 MW at t = 80 s); the rest of the C-038 balance is the change in stored energy (0.1-2.9%)
range over 39 steps
1.5–10% measured run_balance over the 80 s ramp-up (40 fixed 2 s steps), 2026-09-30 fb5a0b5
C-042 ASCOT5's D-T alpha birth rate (AFSI, thermal reactants) on TORAX's profiles over TORAX's own birth rate (P_alpha / 3.5 MeV), ITER hybrid flat-top at t = 5 s
AFSI Monte Carlo, 1600 samples per cell; the test asserts 2% with 400 samples
1.002 tested tests/physics/test_ascot_alpha.py::test_afsi_birth_rate_matches_torax; job 2257707 d81df2d
C-043 Share of alpha markers lost across the separatrix before slowing down, 640 markers, guiding-centre orbit tolerance (ADAPTIVE_TOL_ORBIT) 1e-5 versus 1e-6, same markers
113 and 4 of 640 markers
18% at 10-5, 0.6% at 10-6 measured cluster job 2257707, runs CHECK_TOL_PROD and CHECK_TOL_TIGHT d81df2d
C-044 Alpha heating of ions computed by ASCOT5 at orbit tolerance 1e-5 versus 1e-6, same 640 markers, ITER hybrid flat-top at t = 5 s
Monte Carlo, 640 markers
13.2 MW at 10-5, 25.0 MW at 10-6 (TORAX: 24.8 MW) measured cluster job 2257707, runs CHECK_TOL_PROD and CHECK_TOL_TIGHT d81df2d
C-045 Total alpha heating on TORAX's cells, ASCOT5 (640 markers, tolerance 1e-6) versus TORAX's local alpha model, ITER hybrid flat-top at t = 5 s; electron fraction 0.649 in both
+4.4%: +0.7% alpha energy (3.52 vs 3.5 MeV) and birth-rate noise, about +2% from the deposition moments over-closing the energy books, +1.6% from interpolation onto TORAX's cells; preliminary (640 markers, tolerance convergence not shown, OQ-11)
Superseded by C-059
73.6 MW vs 70.5 MW superseded job 2257707 run CHECK_TOL_TIGHT; tkit ascot-apply apply_summary.json ac911c3
C-046 Stored thermal energy after continuing TORAX from t = 5 s to 7 s with the ASCOT5 alpha profiles held fixed, relative to TORAX's own t = 5 s alpha profiles held fixed
T_e profile 0.3%, T_i 0.6% (relative L2); ASCOT5 profiles from 640 markers
-0.005% measured tkit ascot-apply on job 2257707 CHECK_TOL_TIGHT, duration 2 s ac911c3
C-047 Effect of holding the alpha heating fixed for 2 s (TORAX's own t = 5 s profiles) instead of evolving it with TORAX's local model, on stored thermal energy at t = 7 s; the local model's alpha power rises from 70.5 to 77.5 MW over those 2 s
single run
-0.3% (central T_e -1.0%) reviewed tkit ascot-apply, restart_frozen vs restart_local ac911c3
C-048 NRMSD between the paper's TORAX and RAPTOR curves, recomputed from the curves read out of the vector paths of Fig. 6 of the TORAX paper (arXiv:2406.06718v4), against the value printed in each panel (T_i, T_e, n_e, psi, q)
to the printed precision; axes calibrated from tick marks to 6e-5 of the axis range
all five printed values reproduced (1.102, 0.712, 0.026, 0.414, 0.701% vs 1.1, 0.71, 0.03, 0.41, 0.70%) tested tests/regression/test_raptor_benchmark.py::test_extracted_curves_reproduce_the_printed_nrmsd 1d64c0c
C-049 Agreement between the Tokamak Toolkit's fixed-step scan over TORAX's step function and TORAX's own driver on the RAPTOR L-mode benchmark (200 steps of 0.05 s; T_e, T_i, n_e, psi; relative L2, max over output times)
agreed tolerance 1e-10 (OQ-5); same at dt = 0.025, 0.0125, 0.00625 s
better than 10-13 measured tkit benchmark-raptor --dt 0.05 (runs/raptor/dt0.05.json)
python -m tkit.cli benchmark-raptor --dt 0.05 --balance
1d64c0c
C-050 NRMSD of the Tokamak Toolkit's run (TORAX 1.4.3, published settings) against RAPTOR at t = 10 s, ITER L-mode benchmark of the TORAX paper, for T_i, T_e, n_e, psi, q; the paper's own TORAX run against RAPTOR in brackets
M1 acceptance gate (physicist review, OQ-5, 1 Oct 2026): <= 2% for T_i, T_e, psi, q and <= 0.1% for n_e, n_i; extraction error below 0.01 percentage points (C-048)
T_i 1.23% (1.1%), T_e 0.28% (0.71%), n_e 0.03% (0.03%), psi 0.49% (0.41%), q 0.69% (0.70%) reviewed tests/regression/test_raptor_benchmark.py::test_published_settings_pass_the_m1_acceptance_gate 1d64c0c
C-051 NRMSD of the Tokamak Toolkit's run (TORAX 1.4.3) against the paper's own TORAX run at t = 10 s, same case and settings, i.e. the change between TORAX versions plus the config translation
regression test bound 0.6% on the six profiles
T_i 0.13%, T_e 0.50%, n_e 0.01%, psi 0.08%, q 0.16%; Ohmic power density 3.6% reviewed tests/regression/test_raptor_benchmark.py::test_published_settings_against_fig6 1d64c0c
C-052 Change in the t = 10 s NRMSD against RAPTOR (T_i, T_e, n_e, psi, q) between the published time step 0.05 s and 0.00625 s (three halvings, no non-converged steps)
first-order convergence; t = 10 s is close to stationary
at most 0.006 percentage points measured tkit benchmark-raptor --dt 0.05, 0.025, 0.0125, 0.00625 (runs/raptor/dt*.json) 1d64c0c
C-053 Largest relative deviation of the line-averaged ion temperature from RAPTOR's during the transient (at t = 0.2 s), at the published time step 0.05 s and at 0.00625 s; the paper reports a maximum transient deviation of about 2.5% for its TORAX run
M1 acceptance gate on the line-averaged traces: <= 5% (physicist review, OQ-5, 1 Oct 2026); the paper's TORAX run used dt = 0.05 s; the Tokamak Toolkit at 0.05 s follows it to 0.14%
2.4% at dt = 0.05 s, 2.9% at dt = 0.00625 s (1.0% at t = 10 s) reviewed tkit benchmark-raptor (runs/raptor/dt0.05.json, dt0.00625.json) df8ee7d
C-054 Per-step global energy and particle balance on the RAPTOR L-mode benchmark at its published settings (Newton, 5 corrector steps, dt = 0.05 s), every one of 200 steps converged
agreed 1e-6 per converged step (OQ-5); test covers 20 steps, run covers 200
energy 1.1 × 10-7, particles 3 × 10-13 tested tests/conservation/test_torax_balance.py::test_raptor_lmode_benchmark_balance 1d64c0c
C-055 Reverse-mode gradient of stored energy with respect to the initial electron temperature through three Newton-solved TORAX steps of the RAPTOR L-mode benchmark, against central finite differences
test asserts 1e-7; forward mode equals it since 8aa70ee (C-062, K-009 lifted)
6 × 10-9 tested tests/diff/test_torax_gradients.py::test_grad_through_newton_benchmark_steps_fd_checked df8ee7d
C-056 NRMSD of the ion density against the paper's TORAX run at t = 10 s with TORAX 1.4's temperature-dependent neon charge (8.1 at the edge) versus neon fixed at Z = 10 as in the paper's Table II
single runs
0.35% with the computed charge, 0.009% with Z = 10 measured TORAX driver on configs/benchmarks/raptor_lmode with and without impurity Z_override 1d64c0c
C-057 Alpha markers of the 6400-marker production run (orbit tolerance 1e-6, second cluster job) stopped by ASCOT5's per-marker time cap of 600 s while still energetic, and the share of the birth power left in them; ASCOT5 charges each marker the wall time of its whole vectorised batch, so the cap did not mean CPU time per marker
exact count; the run's profiles are discarded
2823 of 6400 markers, 18% of the birth power measured cluster job 2286956, run PROD, end condition CPUMAX d7318f7
C-058 Share of the alpha birth power deposited to ions, ASCOT5 orbit tolerance 1e-6 versus 1e-7 (two complete 640-marker runs from separate jobs, different marker samples), ITER hybrid flat-top at t = 5 s; the electron share is 0.660 versus 0.661, and deposited plus lost power exceeds the birth power by 2.2% versus 0.4%
640 markers per run; Monte Carlo noise not measured separately
0.348 at 10-6, 0.331 at 10-7 reviewed job 2257707 CHECK_TOL_TIGHT (1e-6) and job 2286956 CHECK_TOL_TIGHT (1e-7) c8eaf6e
C-059 Total alpha heating on TORAX's cells, ASCOT5 (640 markers, tolerance 1e-7, all markers finished) versus TORAX's local alpha model, ITER hybrid flat-top at t = 5 s; electron fraction 0.667 versus 0.649
+2.4%, equal to the markers' birth power excess over TORAX's alpha power, of which 1.0% is explained (AFSI rate +0.4%, 3.52 vs 3.5 MeV +0.6%) and 1.4% is not; radial shape not resolved by 640 markers (heating centroid 0.376 vs 0.355 at 1e-6, TORAX 0.362)
Superseded by C-064
72.2 MW vs 70.5 MW reviewed job 2286956 CHECK_TOL_TIGHT; tkit ascot-profiles + ascot-apply (apply_tol1e-7) c8eaf6e
C-060 Effect on TORAX of the ASCOT5 alpha heating (tolerance 1e-7, 640 markers) held fixed from t = 5 s to 7 s, against TORAX's own t = 5 s alpha profiles held fixed, ITER hybrid flat-top; stored thermal energy, with central T_e and the temperature profiles
single run
Superseded by C-067
+0.03% in stored energy (central T_e +0.5%, T_e and T_i profiles 0.6%) reviewed tkit ascot-apply on job 2286956 CHECK_TOL_TIGHT, duration 2 s c8eaf6e
C-061 M1 acceptance tolerance against RAPTOR on the published ITER L-mode case, set at the M1 physicist review; NRMSD of the t = 10 s profiles (T_i, T_e, psi, q; densities), and the maximum relative deviation of the line-averaged T_e, T_i, n_e traces over 0-10 s; fusion and Ohmic powers reported, not gated
a limit, not a measurement: owner as physicist reviewer, OQ-5, 1 Oct 2026
profiles ≤ 2% (densities ≤ 0.1%), traces ≤ 5% reviewed tkit.physics.raptor_benchmark.ACCEPTANCE; tests/regression/test_raptor_benchmark.py::test_published_settings_pass_the_m1_acceptance_gate 023d5db
C-062 Forward-mode (jacfwd) versus reverse-mode gradient of stored energy with respect to the initial electron temperature through three Newton-solved TORAX steps of the RAPTOR L-mode benchmark, with tkit's value-preserving patch to TORAX's trapped-particle fraction (before it, forward mode returned NaN); stored energy with and without the patch identical to the last bit
test asserts 1e-12
2 × 10-15 (NaN before the fix) tested tests/diff/test_torax_gradients.py::test_forward_mode_through_newton_matches_reverse 8aa70ee
C-063 Weighted mean birth energy of the ASCOT5 alpha markers (6400 markers, third cluster job), drawn from AFSI's birth distribution for the ITER hybrid flat-top at t = 5 s, against the 3.52 MeV used for the expected birth power; the marker weights sum to AFSI's birth rate exactly, so this ratio is the whole of the markers' birth-power excess (K-011)
±0.004 MeV (standard error of the mean over 6400 markers); the 640-marker samples give 3.565-3.586 MeV, which is why earlier jobs put the excess at 1.3-1.4%
3.573 MeV, 1.5% above 3.52 MeV measured cluster job 2287778, run PROD; tkit ascot-profiles prints the mean
python -m tkit.cli ascot-profiles alpha_t5.h5 data/reference/iterhybrid_predictor_corrector.nc --run PROD --out prod.npz
fcd8ce5
C-064 Total alpha heating on TORAX's cells, ASCOT5 production run (6400 markers, orbit tolerance 1e-7, all markers finished) versus TORAX's local alpha model, ITER hybrid flat-top at t = 5 s; electron fraction 0.664 versus 0.649
+1.8%. Birth power is 2.5% above TORAX's alpha power, fully accounted for: AFSI rate +0.4%, 3.52 vs 3.5 MeV +0.6%, mean birth energy above 3.52 MeV +1.5% (C-063). Then losses -0.7%, thermalised markers -0.8%, energy books +0.6%, interpolation onto TORAX's cells +0.2%
71.8 MW vs 70.5 MW measured job 2287778 PROD; tkit ascot-apply (apply_prod)
python -m tkit.cli ascot-apply alpha_t5.npz data/reference/iterhybrid_predictor_corrector.nc --duration 2 --out apply_prod
fcd8ce5
C-065 Radial position of the alpha heating on TORAX's cells, ASCOT5 production run versus TORAX's local model, ITER hybrid flat-top at t = 5 s; power-weighted mean radius and the radius inside which half the power is deposited (normalised toroidal flux radius)
the three 640-marker samples give centroids 0.371-0.376 and half-power radii 0.329-0.343, outside TORAX's in every sample; inside rho_tor_norm 0.3 the profile is not resolved cell by cell (K-012)
centroid 0.370 vs 0.362, half-power radius 0.331 vs 0.325 measured job 2287778 PROD and CHECK_TOL_*, job 2286956 CHECK_TOL_TIGHT; tkit ascot-apply heating summary
python blog/figures/make_ascot_alpha_profile.py JOBDIR PREVJOBDIR
fcd8ce5
C-066 Change in alpha heating from tightening the ASCOT5 orbit tolerance from 1e-7 to 1e-8, the same 640 markers, ITER hybrid flat-top at t = 5 s; electron and ion heating
single pair of runs; lost markers 5 vs 6. Energy books 1.0049 at 1e-7 and 1.0057 at 1e-8: the remaining 0.5% overshoot does not shrink with the tolerance
electrons -0.16%, ions +0.08% measured cluster job 2287778, runs CHECK_TOL_PROD (1e-7) and CHECK_TOL_TIGHT (1e-8) fcd8ce5
C-067 Effect on TORAX of the ASCOT5 production alpha heating (6400 markers, tolerance 1e-7) held fixed from t = 5 s to 7 s, against TORAX's own t = 5 s alpha profiles held fixed, ITER hybrid flat-top; stored thermal energy, with central T_e and the temperature profiles
single run
-0.009% in stored energy (central T_e +0.3%, T_e and T_i profiles 0.4% and 0.5%) measured tkit ascot-apply on job 2287778 PROD, duration 2 s
python -m tkit.cli ascot-apply alpha_t5.npz data/reference/iterhybrid_predictor_corrector.nc --duration 2 --out apply_prod
2138b3c
C-068 Cost of one TGLF case (SAT2, both magnetic-field perturbations, three species) on inputs drawn from the M2 MAST-U and ITER sampling spaces, one AMD EPYC core per case
512 cases, single job; the 256-worker dataset jobs measured 3.3 s per case (C-074)
2.2-2.5 s per case alone, 2.6 s median in a 64-worker pool; about 700 core-hours per 10^6 cases measured cluster job 2293936 (OQ-14), scripts/oq14_tglf_timing.py
python scripts/oq14_tglf_timing.py
3fb1fe2
C-069 Install checks of the GACODE build (commit f34a9dd) on the cluster's CPU nodes; TGLF and CGYRO regression suites, TORAX's in-process TGLF wrapper and TORAX's TGLF transport-model tests
each suite's own tolerances
TGLF 9/9 regression cases; tglf2py wrapper 11/11; TORAX TGLF transport-model tests 3/3; CGYRO 21/21 measured login-node builds 2026-10-02 and cluster job 2293936 (OQ-14) 3fb1fe2
C-070 TGLF as TORAX's transport model on TORAX's iterhybrid_predictor_corrector case, TORAX 1.4.3 with the upstream TGLF patch, legacy TGLF defaults, no transport radial domain
single run
fails at the first step: NaN fluxes on the axis face, about 10^6 gyro-Bohm units on the edge face (K-015) measured cluster job 2293936 (OQ-14), scripts/oq14_torax_tglf.py 3fb1fe2
C-071 TGLF dataset tglf-mastu-v1, 10^5 Latin-hypercube points of the approved MAST-U region (sampling space version 2) under the alpha_MHD cap; cases that TGLF completed with finite fluxes
exact count
100000 of 100000 cases completed, all six fluxes finite measured cluster job 2300218; dataset sha256 104e3015...; Simvue run tglf-dataset-mastu, tag dataset-m2-tglf-mastu-v1
python -m tkit.datasets.tglf_dataset mastu --n 100000 --workers 256
887245e
C-072 TGLF dataset tglf-iter-v1, 10^5 Latin-hypercube points of the approved ITER region (sampling space version 2) under the alpha_MHD cap; cases that TGLF completed with finite fluxes
exact count
100000 of 100000 cases completed, all six fluxes finite measured cluster job 2300314; dataset sha256 3f6ee151...; Simvue run tglf-dataset-iter, tag dataset-m2-tglf-iter-v1
python -m tkit.datasets.tglf_dataset iter --n 100000 --workers 256
887245e
C-073 Fraction of Latin-hypercube draws kept under the fixed alpha_MHD cap (MAST-U 4, ITER 2), and what the cap does to the kept q and beta_e
exact for these datasets
MAST-U 0.490 kept (220936 drawn), ITER 0.425 (258597 drawn); kept mean beta_e 23-25% below the box mean on both; kept median q 1.90 (MAST-U) and 1.73 (ITER, sampled log-uniform over 1.02-11.1) measured dataset metadata (sampling) and inputs of C-071, C-072 887245e
C-074 Cost of generating each 10^5-case TGLF dataset on one 256-core CPU node
two jobs
91.6 core-h (MAST-U) and 92.4 core-h (ITER); 3.3 s per case mean; 35 min wall per job measured per-case wall times stored in C-071, C-072; jobs 2300218, 2300314 887245e
C-075 Fraction of dataset cases whose total heat flux Q_e + Q_i exceeds 10^4 gyro-Bohm units (TGLF's normalisation)
exact for these datasets; not yet explained (K-019)
MAST-U 0.283 above 104 and 0.122 above 105; ITER 0.097 above 104 and 0.0065 above 105 preliminary outputs of C-071, C-072 887245e
C-076 Fraction of each dataset's points whose geometry input lies inside the 1st-99th percentile envelope of the same input measured on the equilibria's flux surfaces, per input
exact for these datasets; per-input table in tglf_domain.csv
MAST-U 0.72 (triangularity) to 0.94 (q); ITER 0.63 (q) to 0.94 (triangularity shear) measured blog/figures/make_tglf_domain.py on C-071, C-072
python blog/figures/make_tglf_domain.py
887245e
C-077 Held-out median relative error of Q_e and Q_i (cases with |Q| > 1 gyro-Bohm unit), baseline deep ensemble of 10 MLP members (4 hidden layers of 256, GELU), 17 sampled TGLF inputs to six fluxes in signed-log space, trained on 80000 cases of each M2 dataset and tested on 10000 held-out cases
single training run; the 95% bootstrap interval of such a median over the 10000 test cases is about ±0.015 (measured for C-079); spread over training seeds not measured
MAST-U 0.77 (Q_e) and 0.80 (Q_i); ITER 0.61 and 0.62 measured GPU job 2318567; meta.json of tglf-mastu-ens-v1 and tglf-iter-ens-v1 (provenance records commit 50d9e38 with a dirty tree); blog/figures/m3_metrics.csv
python -m tkit.surrogates.train mastu; python -m tkit.surrogates.train iter
50d9e38
C-078 Held-out median relative error of Q_e and Q_i, the recreated TGLF-NN member network (GA, TurbulentTransport.jl) with GA's linear standardisation of the outputs, same data and split as C-077; and the coefficient of determination of Q_e in signed-log space
single training run
MAST-U 9.1 (Q_e) and 17.7 (Q_i); ITER 6.8 and 7.0; R² of Q_e in signed-log space -0.30 (MAST-U) and -0.35 (ITER) measured GPU job 2319237; meta.json of tglf-<machine>-tglfnn-v1; blog/figures/m3_metrics.csv
python -m tkit.surrogates.train mastu --variant tglfnn
f4da0c0
C-079 Held-out median relative error of Q_e and Q_i, the recreated TGLF-NN member network (20 members) trained on the signed-log targets, same data and split as C-077
single training run; 95% paired-bootstrap interval over the 10000 test cases (1000 resamples): Q_e 0.73-0.76 (MAST-U) and 0.59-0.62 (ITER)
MAST-U 0.75 (Q_e) and 0.77 (Q_i); ITER 0.60 and 0.58 measured GPU job 2319237; meta.json of tglf-<machine>-tglfnn_symlog-v1; bootstrap in blog/figures/m3_metrics.csv
python -m tkit.surrogates.train mastu --variant tglfnn_symlog; python blog/figures/make_m3_surrogates.py
f4da0c0
C-080 Trainable parameters per ensemble member; the TGLF-NN network with 18 inputs and 3 outputs (20 members), and the baseline MLP with 17 inputs and 6 outputs (10 members)
exact, counted on the saved models
21 827 per member (TGLF-NN network) against 203 526 (MLP) measured array leaves of model.eqx in tglf-mastu-tglfnn_symlog-v1 and tglf-mastu-ens-v1; layer sizes in configs/surrogates/m3_tglf.yaml f4da0c0
C-081 Fraction of held-out cases whose TGLF Q_e lies within the ensemble mean ± 2 member standard deviations, in signed-log space (Q_i in the tolerance)
single runs; Q_i 0.66 and 0.72 (TGLF-NN), 0.58 and 0.63 (MLP). A calibrated Gaussian spread would give 0.95; no calibration is applied yet (M4)
TGLF-NN network 0.63 (MAST-U) and 0.66 (ITER); MLP ensemble 0.54 and 0.57 measured jobs 2318567 and 2319237; coverage_2std in blog/figures/m3_metrics.csv f4da0c0
C-082 Fraction of held-out cases on which the ensemble and TGLF agree whether a case is stable, defined as Q_e + Q_i < 1 gyro-Bohm unit (15% of MAST-U and 17% of ITER test cases are stable)
single runs
TGLF-NN, signed-log 0.91 (MAST-U) and 0.92 (ITER); MLP 0.91 and 0.92; TGLF-NN, linear outputs 0.79 and 0.77 measured jobs 2318567 and 2319237; stable_agreement in blog/figures/m3_metrics.csv f4da0c0
C-083 Slope of the learning curve, log of the held-out median relative error of Q_e against log of the number of training cases, least-squares fit over 20000, 40000 and 80000 cases (fractions of the same training split; validation and test splits fixed)
three points over a factor 4 in training-set size, one run each
-0.10 (MAST-U) and -0.19 (ITER) for the TGLF-NN network; -0.07 and -0.14 for the MLP measured job 2319237 (fractions 0.25 and 0.5) and the full models; blog/figures/m3_learning_curves.csv
python -m tkit.surrogates.train iter --variant tglfnn_symlog --train-frac 0.25; python blog/figures/make_m3_surrogates.py
f4da0c0
C-084 Training-set size at which the fitted learning curves of C-083 (TGLF-NN network) reach a median relative error of 0.30 on Q_e, with points drawn as in the M2 datasets
an extrapolation of a power law fitted over a factor 4 in N to a factor 40 (ITER) and 10^4 (MAST-U) beyond its range; it gives the scale, not a prediction
about 3 × 106 cases (ITER) and about 109 (MAST-U) preliminary n_for_target_extrapolated in blog/figures/m3_learning_curves.csv
python blog/figures/make_m3_surrogates.py
f4da0c0
C-085 Standard deviation of Q_e over each machine's training split, the scale a linear output standardisation divides by, and the median |Q_e| expressed in that scale
exact for these training splits
2.5 × 105 gB (MAST-U) and 1.1 × 104 gB (ITER); the median |Q_e|, 473 and 29 gB, is 0.0019 and 0.0027 standard deviations measured train_Qe_std, train_Qe_median_abs in blog/figures/m3_datasets.csv, from tglf-<machine>-v1 and the saved split
python blog/figures/make_m3_surrogates.py
f4da0c0
C-086 Range of Q_e in the training data of GA's MAST-U TGLF-NN model, as recorded in its model file, against the range in the tglf-mastu-v1 dataset
GA's range as read from the model file for the M3 report; dataset range exact
GA's MAST-U model -1.5 × 104 to 5.2 × 104 gB; tglf-mastu-v1 -2.4 × 106 to 2.8 × 107 gB measured model file sat2_em_mastu_azf+-1, github.com/ProjectTorreyPines/TurbulentTransport.jl at 212a9a7 (M3 report, commit 2cbbe9f); Qe_min, Qe_max in blog/figures/m3_datasets.csv 2cbbe9f
C-087 Epoch at which the members' mean validation loss is lowest (counted from 0); training stops when no member has improved for 60 epochs, and each member keeps its own best-validation parameters
80000-case models, one run each; the validation loss rises afterwards while the training loss falls
epochs 16-25 for the MLP and the TGLF-NN network with linear outputs; 161-224 for the TGLF-NN network on signed-log targets measured training histories in meta.json (jobs 2318567, 2319237); best_mean_val_epoch in blog/figures/m3_metrics.csv f4da0c0
C-088 Training time of one ensemble on one NVIDIA H100 GPU, as recorded by the training loop
one run each; job wall times 1 min 21 s (two ensembles, job 2318567), 3 min 33 s (12 runs on 4 GPUs, job 2319237), 3 min 44 s (4 runs, job 2321323)
13 s (MLP, 10 members, 80000 cases); 39-53 s (TGLF-NN, 20 members, 80000 cases); 70-109 s (TGLF-NN, 170000 cases) measured train_seconds in meta.json; job logs 2318567, 2319237, 2321323 352f879
C-089 Rank correlation (Spearman) between the members' standard deviation and the absolute error of the ensemble mean, both in signed-log space, on the 10000-case v1 test split, over Q_e and Q_i and both machines
Pearson correlation 0.42-0.49 (MLP) and 0.50-0.57 (TGLF-NN)
0.39-0.51 for the MLP ensemble and 0.53-0.62 for the TGLF-NN network measured re-evaluation of the saved v1 models; spearman_std_vs_abs_err in blog/figures/m3_metrics.csv
python blog/figures/make_m3_surrogates.py
f4da0c0
C-090 TGLF labelling of active-learning round 1, a selected batch and a uniform batch of 10^5 points each per machine, one 256-core CPU node per machine
exact count
4 × 105 cases, all completed with finite fluxes; 1 h 16 min (MAST-U) and 1 h 15 min (ITER) measured cluster jobs 2319519 (MAST-U) and 2319520 (ITER); datasets tglf-<machine>-v2-al and -v2-random, sha256 in blog/figures/m3_datasets.csv
python -m tkit.datasets.tglf_active mastu --workers 256
352f879
C-091 Fraction of cases by TGLF's Q_e + Q_i, below 1 gB / 1-100 gB / above 10^4 gB, in dataset v1 and in the batch selected by active learning (v2-al)
exact for these datasets. The uniform batch is drawn from the pool minus the selected batch, so it has fewer low-flux cases than v1: 13% (MAST-U) and 16% (ITER) below 1 gB
MAST-U 16% / 18% / 28% in v1 against 45% / 31% / 5% in the selected batch; ITER 17% / 39% / 10% against 35% / 47% / 2% measured tglf_frac_* in blog/figures/m3_datasets.csv (datasets of C-071, C-072, C-090)
python blog/figures/make_m3_surrogates.py
352f879
C-092 For the selected batch, the share the selecting ensemble predicted below 1 gB in Q_e + Q_i at selection time, and the batch's mean member disagreement against the pool's (signed- log space, mean over Q_e and Q_i)
exact for these selections
predicted below 1 gB: 24% (MAST-U) and 19% (ITER), against 45% and 35% from TGLF; mean disagreement 0.58 against 0.69 for the pool (MAST-U), 0.46 against 0.51 (ITER) measured selection-<machine>-v2.npz (q_tot, std); predicted_frac_*, mean_member_std_* in blog/figures/m3_datasets.csv 352f879
C-093 Median relative error of Q_e (|Q_e| > 1 gB), TGLF-NN ensemble trained on v1 only (80000 cases), MAST-U, on the v1 test split / the selected batch's holdout / the uniform batch's holdout (10000 cases each)
95% bootstrap intervals about ±0.015 (m3_metrics.csv)
0.75 / 0.85 / 0.76 measured tglf-mastu-tglfnn_symlog-v1 (job 2319237), scored on the v2 holdouts by tkit.surrogates.evaluate (evals/tglf-mastu-tglfnn_symlog-v1.json)
python -m tkit.surrogates.evaluate data/m3/surrogates/tglf-mastu-tglfnn_symlog-v1
352f879
C-094 As C-093, TGLF-NN ensemble trained on v1 plus the selected batch (170000 cases), MAST-U
95% bootstrap intervals about ±0.015 (m3_metrics.csv)
0.72 / 0.81 / 0.73 measured GPU job 2321323; meta.json of tglf-mastu-tglfnn_symlog_al-v1
python -m tkit.surrogates.train mastu --variant tglfnn_symlog_al
352f879
C-095 As C-093, TGLF-NN ensemble trained on v1 plus the uniform batch (170000 cases), MAST-U
95% bootstrap intervals about ±0.015 (m3_metrics.csv)
0.69 / 0.81 / 0.70 measured GPU job 2321323; meta.json of tglf-mastu-tglfnn_symlog_random-v1
python -m tkit.surrogates.train mastu --variant tglfnn_symlog_random
352f879
C-096 As C-093, TGLF-NN ensemble trained on v1 only (80000 cases), ITER
95% bootstrap intervals about ±0.02 (m3_metrics.csv)
0.60 / 0.69 / 0.59 measured tglf-iter-tglfnn_symlog-v1 (job 2319237), scored on the v2 holdouts by tkit.surrogates.evaluate (evals/tglf-iter-tglfnn_symlog-v1.json)
python -m tkit.surrogates.evaluate data/m3/surrogates/tglf-iter-tglfnn_symlog-v1
352f879
C-097 As C-093, TGLF-NN ensemble trained on v1 plus the selected batch (170000 cases), ITER
95% bootstrap intervals about ±0.02 (m3_metrics.csv)
0.57 / 0.64 / 0.55 measured GPU job 2321323; meta.json of tglf-iter-tglfnn_symlog_al-v1
python -m tkit.surrogates.train iter --variant tglfnn_symlog_al
352f879
C-098 As C-093, TGLF-NN ensemble trained on v1 plus the uniform batch (170000 cases), ITER
95% bootstrap intervals about ±0.02 (m3_metrics.csv)
0.55 / 0.62 / 0.52 measured GPU job 2321323; meta.json of tglf-iter-tglfnn_symlog_random-v1
python -m tkit.surrogates.train iter --variant tglfnn_symlog_random
352f879
C-099 Difference in the median relative error of Q_e, model trained with the uniform batch minus model trained with the selected batch, with its 95% paired-bootstrap interval over the test cases (1000 resamples); negative means the uniform batch did better
the interval covers test-set sampling only; one training run per model
on the selected batch's holdout 0.000 (-0.013 to 0.009) for MAST-U and -0.015 (-0.028 to -0.003) for ITER; on the v1 test split -0.023 (-0.033 to -0.014) and -0.027 (-0.040 to -0.015) measured re-evaluation of the round-1 models; rows 'rel_err_median_all_bootstrap' in blog/figures/m3_metrics.csv
python blog/figures/make_m3_surrogates.py
352f879
C-100 Median relative error near threshold (cases with 1 < |Q| <= 100 gB) on the selected batch's holdout, model trained with the selected batch against model trained with the uniform batch
paired-bootstrap 95% intervals of the difference (uniform minus selected): Q_e -0.009 to 0.029 (MAST-U) and -0.021 to 0.006 (ITER), so no difference resolved; Q_i -0.037 to -0.001 and -0.036 to -0.009, in favour of the uniform batch
MAST-U Q_e 0.77 against 0.78, Q_i 0.74 against 0.73; ITER Q_e 0.58 against 0.57, Q_i 0.54 against 0.52 measured job 2321323; rel_err_median_near and the bootstrap rows in blog/figures/m3_metrics.csv
python blog/figures/make_m3_surrogates.py
352f879
C-101 Median relative error of Q_e on the v1 test split that the fitted learning curve of the TGLF-NN network (C-083) gives at 170000 training cases, against the two round-1 models
the fit is an extrapolation by a factor 2.1 beyond its largest point
fit 0.70 (MAST-U) and 0.52 (ITER); measured 0.72 and 0.57 with the selected batch, 0.69 and 0.55 with the uniform batch measured fit_at_170000 in blog/figures/m3_learning_curves.csv; C-094, C-095, C-097, C-098
python blog/figures/make_m3_surrogates.py
352f879
C-102 Fraction of cases with a negative TGLF flux, over the six M2/M3 TGLF datasets (v1, v2-al and v2-random for MAST-U and ITER)
exact for these datasets
Q_e < 0 in 2.0-6.5% of cases (below -1 gB in 0.5-1.5%; median of the negative values -0.03 to -0.09 gB); Q_i < 0 in 9.4-14.1% (below -1 gB in 2.2-5.1%); particle fluxes negative in 33-54% measured frac_* and median_negative_Qe in blog/figures/m3_datasets.csv
python blog/figures/make_m3_surrogates.py
352f879
C-103 TGLF cases with Q_i < -1 gB in the v1 datasets; share with Q_e > 0, median ratio Q_e / |Q_i|, and the lowest Q_i
exact for these datasets
Q_e > 0 in 97% (MAST-U) and 95% (ITER) of them, with median Q_e / |Q_i| of 69 and 34; lowest Q_i -6.9 × 106 gB (MAST-U) and -6.5 × 104 gB (ITER) measured blog/figures/m3_datasets.csv (v1 rows)
python blog/figures/make_m3_surrogates.py
887245e
C-104 What clipping Q_e and Q_i at zero costs on the v1 test splits (10000 cases per machine), whatever the model; TGLF's share of cases with Q <= 0, the share of cases with |Q| > 1 gB that have Q < -1 gB (a clipped prediction has relative error >= 1 there), and the change of Q_e + Q_i where it is at least 1 gB
exact for these splits. The negative part is 0.14% and 0.04% of the summed |Q_e|, 0.86% and 0.77% of the summed |Q_i| (MAST-U, ITER)
Q <= 0 in 4.6% (MAST-U) and 5.2% (ITER) of cases for Q_e, 11.8% and 13.2% for Q_i; Q < -1 gB in 0.8% and 0.7% (Q_e) and 6.5% and 4.3% (Q_i) of cases with |Q| > 1 gB; Q_e + Q_i changes by more than 10% in 0.9% and 1.0% of cases measured blog/figures/m3_clip_cost.csv, from tglf-<machine>-v1 and the saved test split
python blog/figures/make_m3_structure.py
887245e
C-105 Share of the test cases with TGLF's Q <= 0 that the surrogate predicts as exactly zero, TGLF-NN network trained with linear outputs and clipped at zero afterwards; CPU smoke run (16000 training cases, 5 members, 150 epochs), v1 test split
smoke runs, one each, smaller than the production models; the comparison between rows is the point, not the values
Q_e 0.13 (MAST-U) and 0.17 (ITER); Q_i 0.16 and 0.20 preliminary smoke models tglf-<machine>-smk_linear-v1-f0.2 (session scratch storage, commit 1010da1 with the ReLU code uncommitted, later 9a036a6); blog/figures/m3_relu_variants.csv
python -m tkit.surrogates.train <machine> --variant tglfnn_symlog --train-frac 0.2 (5 members, 150 epochs); python blog/figures/make_m3_structure.py SMOKE_DIR
9a036a6
C-106 As C-105, network trained on max(Q, 0) for Q_e and Q_i and clipped in use
smoke runs, as C-105
Q_e 0.10 (MAST-U) and 0.15 (ITER); Q_i 0.06 and 0.06 preliminary smoke models tglf-<machine>-smk_relu_ct-v1-f0.2; blog/figures/m3_relu_variants.csv 9a036a6
C-107 As C-105, network trained with QLKNN's stability penalty (where TGLF's Q <= 0 only a prediction above -margin costs), margin 0, weight 1, clipped in use
smoke runs, as C-105
Q_e 0.18 (MAST-U) and 0.21 (ITER); Q_i 0.13 and 0.17 preliminary smoke models tglf-<machine>-smk_relu_sp-v1-f0.2; blog/figures/m3_relu_variants.csv 9a036a6
C-108 As C-105, stability penalty with margin 1 in signed-log units (Q = -1.7 gB), weight 1, clipped in use; the setting adopted for the variant tglfnn_symlog_relu
smoke runs, as C-105
Q_e 0.28 (MAST-U) and 0.40 (ITER); Q_i 0.25 and 0.43 preliminary smoke models tglf-<machine>-smk_relu_sp_m1-v1-f0.2; blog/figures/m3_relu_variants.csv 9a036a6
C-109 As C-105, stability penalty with margin 0.5 and weight 10, clipped in use
smoke runs, as C-105
Q_e 0.45 (MAST-U) and 0.62 (ITER); Q_i 0.48 and 0.63 preliminary smoke models tglf-<machine>-smk_relu_sp_w10-v1-f0.2; blog/figures/m3_relu_variants.csv 9a036a6
C-110 What the adopted stability penalty (margin 1, weight 1; C-108) changes against the linear network clipped afterwards (C-105), smoke runs on the v1 test split; and the share of cases with TGLF's Q > 1 gB that it predicts as exactly zero
smoke runs, one each; differences between variants trained on the same data and seeds
Q_i median relative error +0.005 (MAST-U) and +0.009 (ITER), Q_e within ±0.004; stable/unstable agreement +0.009 and +0.016; Q > 1 gB predicted zero in 0.1% (Q_e) and 0.3% (Q_i) of such cases preliminary blog/figures/m3_relu_variants.csv (rows smk_linear+clip and smk_relu_sp_m1)
python blog/figures/make_m3_structure.py SMOKE_DIR
9a036a6
C-111 The cost of the weight-10 penalty (C-109) against the linear network clipped afterwards, smoke runs on the v1 test split
smoke runs, as C-110
Q_i median relative error +0.03 (MAST-U) and +0.05 (ITER); 1.0% and 1.3% of cases with Q_i > 1 gB predicted as zero preliminary blog/figures/m3_relu_variants.csv (rows smk_linear+clip and smk_relu_sp_w10) 9a036a6
C-112 TGLF gradient scans for monotonicity, per machine 35 base points from the v1 test split with Q_e and Q_i above 1 gB, each scanned over a/L_Te and over a/L_Ti at 8 values (base value ± a third of the approved range, cut at the range and the alpha_MHD cap); re-runs of the base points against the dataset's flux
exact; 3 (MAST-U) and 6 (ITER) scans are shortened by the alpha_MHD cap
560 cases per machine, all completed; the 70 re-run base cases per machine reproduce the dataset's fluxes bit for bit measured data/m3/scans/tglf-mono-v1 (summary.json; provenance records commit 476875d with a dirty tree); blog/figures/m3_monotonicity.csv
python -m tkit.surrogates.monotonicity plan; ... run-chunk N; ... finish
476875d
C-113 Share of TGLF scans (C-112) along which the heat flux falls below its running maximum as its own gradient rises (Q_e in a/L_Te, Q_i in a/L_Ti), at all and by more than half
35 scans per entry. The largest drops exceed 100% where Q_i turns negative
falls somewhere in 77% (Q_e) and 80% (Q_i) of MAST-U scans, 51% and 74% of ITER scans; by more than half in 40% and 57% (MAST-U), 34% and 57% (ITER) measured fraction_decreasing_above_noise, fraction_drop_above_50pct in data/m3/scans/tglf-mono-v1/summary.json; blog/figures/m3_monotonicity.csv
python blog/figures/make_m3_structure.py
476875d
C-114 As C-113, for the v1 TGLF-NN ensemble (signed-log targets) evaluated on the same scans
35 scans per entry
falls somewhere in 20% (Q_e) and 49% (Q_i) of MAST-U scans, 23% and 37% of ITER scans; by more than half in 3% and 23% (MAST-U), 9% and 17% (ITER) measured ensemble.scans in data/m3/scans/tglf-mono-v1/summary.json; blog/figures/m3_monotonicity.csv 476875d
C-115 Share of v1 test points (heat flux above 1 gB) at which the v1 TGLF-NN ensemble mean has a negative slope of the heat flux in its own gradient, total derivative with P_PRIME_LOC moving with the gradient
6800-8200 test points per entry; per member 13-14% (Q_e) and 24-27% (Q_i)
Q_e 8% (MAST-U) and 11% (ITER); Q_i 25% and 22% measured ensemble.test_slopes in data/m3/scans/tglf-mono-v1/summary.json; blog/figures/m3_monotonicity.csv 476875d
C-116 Derivatives through the TGLF surrogate inside TORAX, M1 benchmark case (RAPTOR L-mode) with the guarded surrogate; reverse mode against central differences (step 1e-4) and against forward mode, for the summed guarded chi_e + chi_i on the initial state and for core T_e after 3 Newton steps, with respect to a T_e perturbation
the guard's per-face decision is asserted unchanged across the difference stencil
reverse mode within 10−6 (coefficients) and 10−7 (after 3 Newton steps) of central differences, and within 10−9 and 10−12 of forward mode tested tests/diff/test_torax_surrogate_gradients.py::test_guarded_coefficients_gradient_fd_checked, ::test_grad_through_newton_steps_with_the_surrogate_fd_checked 7ec2569
C-117 Cost of one call of the TGLF surrogate (20-member TGLF-NN ensemble, ITER, signed-log) on the 51 faces of a TORAX state, one CPU core, after compilation
mean over repeated calls; 0.31 s for 5100 faces; compilation and first call 0.52 s
3.1 ms measured scripts/m3_surrogate_loop.py percall, login-node run 2026-10-03 (percall.json)
python scripts/m3_surrogate_loop.py percall raptor_surrogate.npz --tglf-cases 20
7ec2569
C-118 Cost of TGLF on the same 51 faces (M2 dataset settings, one CPU core), from 20 faces timed and scaled to 51
20 faces, 1.94-2.57 s each; 3.3 × 10^4^ times the surrogate's call (C-117)
about 103 s (2.0 s per face) measured as C-117 (tglf_wall_s in percall.json) 7ec2569
C-119 The surrogate against TGLF on the same inputs, the final state of the RAPTOR L-mode run with the guarded surrogate, on the first 20 faces inside the surrogate's domain; median absolute relative difference where TGLF's flux exceeds 1 gB
one state, one case; not a held-out statistic
Q_e 0.28 (11 faces) and Q_i 0.44 (12 faces); the surrogate is below TGLF on 10 of the 11 and on all 12 preliminary surrogate_gb and tglf_gb in percall.json (as C-117) 7ec2569
C-120 Wall time of the RAPTOR L-mode case (M1 benchmark, Newton solver, 200 steps of 0.05 s) with the guarded TGLF surrogate as TORAX's transport model, one CPU core, compilation excluded; and the solver's step record
two runs on a shared login node
374 s and 405 s (two runs); no stalled step, 57 steps accepted at the coarse tolerance measured scripts/m3_surrogate_loop.py run --case raptor --transport surrogate, two login-node runs 2026-10-03 (raptor_surrogate.npz meta)
python scripts/m3_surrogate_loop.py run --case raptor --transport surrogate --out s.npz
7ec2569
C-121 As C-120, with TORAX's QLKNN (TORAX's defaults on this case) as the transport model
two runs; QLKNN is not this case's own transport model and its solver record shows it
29 s and 30 s (two runs); 179 of 200 steps stalled, 6 at the coarse tolerance measured scripts/m3_surrogate_loop.py run --case raptor --transport qlknn (raptor_qlknn.npz meta) 7ec2569
C-122 Further wall times, one CPU core, compilation excluded; RAPTOR L-mode with the linear solver, and TORAX's ITER hybrid predictor-corrector case (50 steps of 0.1 s)
one run each
RAPTOR L-mode, linear solver: surrogate 5.2 s, QLKNN 0.57 s; Newton with the published constant transport 0.35 s, with Bohm/gyro-Bohm 1.6 s. ITER hybrid: surrogate 0.56 s, QLKNN 0.066 s, Bohm/gyro-Bohm 0.030 s measured scripts/m3_surrogate_loop.py run outputs (login-node runs 2026-10-03) 7ec2569
C-123 Fraction of (face, step) points at which the guard rejected the surrogate and served Bohm/gyro-Bohm
one run each; the domain is the box of the v1 training inputs (K-023)
0.51 on the RAPTOR L-mode case and 0.27 on the ITER hybrid case measured rejected_fraction in the run outputs of C-120 and C-122 7ec2569
C-124 TORAX runs of the dataset v3 scenario families; MAST-U, 8 FreeGSNKE MAST-U-like equilibria x 2 Bohm/gyro-Bohm multipliers x 2 heating powers x 2 densities x with and without a pedestal; ITER, TORAX's RAPTOR L-mode, ITER hybrid flat-top and ITER current ramp-up examples with scaled heating power and density
exact. The MAST-U test runs are all runs on 2 of the 8 equilibria, shapes not seen in training
128 MAST-U runs and 39 ITER runs, all completed; 32 and 8 of them held out for the test split measured record of data/m3/v3/<machine>/points.npz (provenance: commit dfdf677 MAST-U, 648bab0 ITER, clean trees)
python -m tkit.datasets.tglf_trajectory trajectories <machine>; python -m tkit.datasets.tglf_trajectory assemble <machine>
648bab0
C-125 Faces of the dataset v3 TORAX states inside the radial window r/a 0.1-0.9, and the share inside the approved M2 region (kinetic ranges with the ITER collisionality widened by OQ-20, alpha_MHD cap), which become v3 states
exact
MAST-U 115722 of 124032 faces (93%); ITER 68978 of 79344 (87%) measured faces_in_window, states_in_region in the record of data/m3/v3/<machine>/points.npz 648bab0
C-126 Share of the v3 faces in the radial window whose input lies outside the M2 range of that input; geometry inputs counted against the measured M2 ranges but not excluded, kinetic inputs excluded
exact; per-input table in the record
MAST-U: triangularity shear 41%, triangularity 12.5%, q 6.5%, magnetic shear 5.6%, collisionality 5%, beta_e 2%; ITER: a/L_Te 11%, a/L_Ti 10%, triangularity shear 5%, magnetic shear 3%, T_i/T_e 2%, collisionality 1%; every other input below 2% measured fraction_outside in the record of data/m3/v3/<machine>/points.npz 648bab0
C-127 Dataset v3 points per machine; training points are unperturbed states and copies of states with their kinetic inputs perturbed (copies outside the region redrawn); test points are unperturbed states of the held-out runs
exact
90000 training points (22500 unperturbed) and 10000 test points per machine; more than 99.99% of perturbed copies fell inside the region at the first draw measured n_train, n_test, n_train_unperturbed, perturbed_acceptance in the record of data/m3/v3/<machine>/points.npz 648bab0
C-128 Finished TGLF v3 labels, per machine; input rows match the trajectory points and artifact digests validate
exact; trajectory assembly replayed from recorded plans and saved run files
90000 training cases and 10000 held-out test cases per machine, all completed with finite fluxes measured spec/reviews/m3-v3-validation.json (audit 2026-10-07, working tree at 522f028; artifact hashes in the sidecar)
python scripts/m3_validate_v3.py <machine> --out data/m3/validation/<machine>-mono.json
522f028
C-129 Final monotone v3 ensembles: median absolute relative heat-flux error on the entire v3-test dataset, where |Q| > 1 gB
10000 test cases per machine; scores reproduced within relative tolerance 1e-8; test runs withheld from training
MAST-U: Q_e 17.8%, Q_i 25.2%; ITER: Q_e 7.2%, Q_i 10.8%; all meet the 30% target measured spec/reviews/m3-v3-validation.json (audit 2026-10-07, working tree at 522f028; artifact hashes in the sidecar)
python scripts/m3_validate_v3.py <machine> --out data/m3/validation/<machine>-mono.json
522f028
C-130 Empirical monotonicity of the final v3 ensembles, every member: heat flux in its own temperature gradient
sampled points only, not a formal proof over the input domain; each scan-grid pair has 4900 member neighbour comparisons
no negative member slopes on the tested v1/v3 points or scan grids, and no negative neighbour differences on the scan grids tested spec/reviews/m3-v3-validation.json (audit 2026-10-07, working tree at 522f028; artifact hashes in the sidecar)
python -m tkit.surrogates.monotonicity check data/m3/surrogates/tglf-<machine>-tglfnn_symlog_relu_mono_v3-v1
522f028
C-131 Departure of the final monotone v3 ensembles from TGLF on broad v1 scan families where TGLF decreases: median of maximum per-scan signed-log difference
signed-log scale 1 gB; this includes approximation error as well as the imposed monotonicity; broad scans differ from the v3 acceptance distribution
MAST-U: Q_e 3.14, Q_i 3.36; ITER: Q_e 2.51, Q_i 2.11 signed-log units preliminary spec/reviews/m3-v3-validation.json (audit 2026-10-07, working tree at 522f028; artifact hashes in the sidecar)
python -m tkit.surrogates.monotonicity check data/m3/surrogates/tglf-<machine>-tglfnn_symlog_relu_mono_v3-v1
522f028
C-132 Historical matched end-to-end TGLF/v1-surrogate timing on RAPTOR L-mode: linear solver, host driver, 40 fixed steps of 0.05 s
job 2354632, one CPU node, compilation excluded; zero stalled or coarse-tolerance steps; surrogate and QLKNN each use one core, TGLF uses 51 workers; this is v1 evidence, not v3 speed-up
TGLF 540.38 s, v1 surrogate 0.780 s, QLKNN 0.126 s; v1 is about 693 times faster than TGLF measured spec/reviews/m3-v3-validation.json (audit 2026-10-07, working tree at 522f028; artifact hashes in the sidecar)
python scripts/m3_surrogate_loop.py run --case raptor --solver linear --driver host --steps 40 --transport surrogate --surrogate-variant tglfnn_symlog --out v1.npz
522f028
C-133 Final v1-surrogate profiles against TGLF in the historical matched comparison (job 2354632), at 2 s
one scenario, linear solver; TORAX-paper NRMSD (eq. 41); no M4 closed-loop tolerance or certification is implied
T_e 18.52%, T_i 22.09%, n_e 10.25%, psi 0.44% preliminary spec/reviews/m3-v3-validation.json (audit 2026-10-07, working tree at 522f028; artifact hashes in the sidecar)
python scripts/m3_surrogate_loop.py compare tglf.npz surrogate.npz
522f028
C-134 Final monotone v3 profiles from the local scan-driver run against the saved TGLF reference (job 2354632), at 2 s
same RAPTOR case, grid, linear solver, dt and 40 steps; local scan driver vs historical host driver; profile comparison only, no matched v3 timing claim
T_e 7.72%, T_i 9.23%, n_e 11.36%, psi 0.32% preliminary spec/reviews/m3-v3-validation.json (audit 2026-10-07, working tree at 522f028; artifact hashes in the sidecar)
python scripts/m3_surrogate_loop.py compare tglf.npz data/m3/validation/loop/raptor-v3-scan.npz --out comparison.json
522f028
C-135 Local monotone v3 RAPTOR run: finite profiles and accepted-state guard diagnostics on 40 linear-solver steps
one local CPU run; guard re-evaluated at each accepted end-of-step state, not the actual per-iterate usage; runtime cannot be divided into historical TGLF timing to claim matched speed-up
all profiles finite; no stalled or coarse-tolerance step; post-step guard rejection 33.1%; execution 1.62 s after compilation measured spec/reviews/m3-v3-validation.json (audit 2026-10-07, working tree at 522f028; artifact hashes in the sidecar)
python scripts/m3_surrogate_loop.py run --case raptor --transport surrogate --solver linear --driver scan --steps 40 --out data/m3/validation/loop/raptor-v3-scan.npz
522f028
C-136 Sum of recorded wall time over TGLF v3 cases, not elapsed cluster job time
sum of per-case wall_s stored in the validated datasets; parallel workers mean these are not elapsed job durations
MAST-U: 58.03 case-hours (train), 5.45 (test); ITER: 63.43 (train), 5.62 (test) measured spec/reviews/m3-v3-validation.json (audit 2026-10-07, working tree at 522f028; artifact hashes in the sidecar) 522f028
C-137 Final monotone v3 models: uncalibrated ensemble spread coverage and exact-zero behavior on v3-test
coverage is measured in signed-log space, uncalibrated; nonnegative outputs do not identify every TGLF-stable point; M4 calibration remains required
mean ±2 standard deviations covers Q_e/Q_i at 75.3%/74.4% (MAST-U), 85.6%/80.8% (ITER); exact-zero predictions where TGLF is nonpositive: 44.0%/47.0% (MAST-U), 52.3%/21.1% (ITER) measured spec/reviews/m3-v3-validation.json (audit 2026-10-07, working tree at 522f028; artifact hashes in the sidecar) 522f028
C-140 At TORAX default Newton residual tolerance, implicit derivatives and discrete balance do not attain the stricter validation limits for guarded transport surrogates
three RAPTOR Newton steps at residual_tol=1e-5; guard masks unchanged over the difference sweep, forward and reverse agree; the v3 difference persists from h=1e-4 to h=1e-8
v3 derivative discrepancy about 1.8e-5 relative; peak discrete energy residual 1.11e-5 (v1) and 1.36e-6 (v3) tested spec/reviews/m3-v3-validation.json numerical_convergence; default-gradient diagnostic and initial conservation test reports 522f028
C-138 Guarded ITER v1 and final monotone v3 transport derivatives pass the strict finite-difference and forward/reverse checks in the RAPTOR loop
three RAPTOR Newton steps with residual_tol=1e-10; initial guarded-coefficient checks also pass; four tests executed, none skipped
v1 and v3 pass: three-step derivative FD tolerance 1e-7, forward/reverse tolerance 1e-12; guard masks unchanged over the stencil tested data/m3/validation/suites/full/tests/diff/test_torax_surrogate_gradients.xml; bound in spec/reviews/m3-v3-validation.json.provenance.json
python -m pytest tests/diff/test_torax_surrogate_gradients.py tests/diff/test_torax_surrogate_v3_gradients.py; run one file per process on CPU-limited hosts
0522ee6
C-139 Guarded ITER v1 and final monotone v3 surrogates pass the existing discrete energy and particle balance limits in the RAPTOR loop
three RAPTOR Newton steps at residual_tol=1e-10; six loop, fallback and conservation tests executed, none skipped; this is local validation, not M4 certification
v1 and v3 pass: energy residual below 1e-6 and particle residual below 1e-10, with fine solver convergence tested data/m3/validation/suites/full/tests/physics/test_torax_surrogate_loop.xml; bound in spec/reviews/m3-v3-validation.json.provenance.json
python -m pytest tests/physics/test_torax_surrogate_loop.py
0522ee6
C-141 Local final monotone ITER v3 Newton loop execution and isolated ensemble inference cost on one CPU core
RAPTOR case, residual_tol=1e-10, all four profiles finite, no stalled or coarse-tolerance steps; isolated inference is not a full transport/Jacobian call; local timings are not matched TGLF speed-up evidence
40 Newton steps in 60.58 s, median 1.47 s per step; isolated prediction on 51 faces takes 4.36 ms per call measured data/m3/validation/loop/v3-performance.json; inputs bound in spec/reviews/m3-v3-validation.json.provenance.json
python scripts/m3_surrogate_loop.py run --case raptor --transport surrogate --driver host --steps 40 --out newton.npz
522f028
C-142 The final monotone v3 surrogate completes the ITER hybrid predictor-corrector scenario with finite profiles
local CPU scan driver, case linear solver, fixed dt 0.1 s; guard checked on accepted states; no TGLF profile-error or speed-up bound
50 steps to 5 s, all four profiles finite, no stalled or coarse-tolerance steps; accepted-state guard rejection 26.9% measured data/m3/validation/loop/iterhybrid-v3-scan.npz; bound in spec/reviews/m3-v3-validation.json.provenance.json
python scripts/m3_surrogate_loop.py run --case iterhybrid --transport surrogate --driver scan --out iterhybrid-v3.npz
0522ee6
C-143 Synthetic RF source and boundary-vector guard contracts and grouped reference dataset contracts pass in both test modes
no failures or skips; JIT/vmap, rejected singular gradients, source control derivatives, whole-profile fallback and power rejection, core-loop finite-difference gradient at rtol 1e-6, hash tampering and group splits; no RF/pedestal prediction accuracy established
25 synthetic contract tests pass in full and Tier-A-only modes tested spec/reviews/m3-rf-pedestal-validation.json; response_guards and response_datasets JUnit reports bound in its sidecar
python -m pytest tests/unit/test_response_guards.py tests/unit/test_response_datasets.py
599c12a
C-144 Gaussian RF construction rejects NaN and positive or negative infinity in each of its four parameters
ValueError before source evaluation; finite-parameter deposition behaviour remains covered by the existing RF tests
12 nonfinite-parameter cases pass in each mode tested tests/physics/test_rf_deposition.py::test_nonfinite_source_parameters_are_rejected; JUnit reports bound in spec/reviews/m3-rf-pedestal-validation.json.provenance.json
python -m pytest tests/physics/test_rf_deposition.py
599c12a
C-145 Model-independent case/profile response baseline training, saved inference and guard compatibility pass on synthetic numerical fixtures in both modes
no failures or skips; saved group splits, failed-case filtering, training-only normalisation and bounds, per-member validation checkpoint selection, unit-preserving metrics, seed replay, hash tampering, CLI, reference-independent reload, guard selection and gradients (FD rtol 1e-6, forward/reverse rtol 1e-10); synthetic fits improve over a constant baseline, not a physics accuracy target
26 synthetic baseline-pipeline tests pass in full and Tier-A-only modes tested spec/reviews/m3-response-training-validation.json; response_training JUnit reports bound in its sidecar
python -m pytest tests/unit/test_response_training.py
deb866b
C-146 Local guarded ITER transport-surrogate validation covers RAPTOR L-mode with v1 and final monotone v3, and ITER hybrid with final monotone v3 and a Newton override
no failures or skips; three steps at dt 0.05 s; residual_tol=1e-10 for loop derivatives and balance; coefficient FD rtol 1e-6, loop FD rtol 1e-7, forward/reverse rtol 1e-9 and 1e-12 respectively; unchanged stencil masks; energy below 1e-6 and particles below 1e-10 relative; local short checks, not matched timing or M4 certification
15 gradient, JIT, fallback and discrete-balance checks pass across RAPTOR and ITER hybrid in each mode tested spec/reviews/m3-extended-loop-validation.json; full and Tier-A JUnit reports and tested source snapshots bound in its provenance sidecar
python -m pytest tests/diff/test_torax_surrogate_gradients.py tests/diff/test_torax_surrogate_v3_gradients.py tests/diff/test_torax_surrogate_iterhybrid_gradients.py tests/physics/test_torax_surrogate_loop.py; run one file per process on CPU-limited hosts, then repeat with TKIT_TIER_A_ONLY=1
7971903
C-147 Performance evidence rejects unsuccessful solves and handles overlapping trace events in both test modes
no failures or skips; stalled, coarse-tolerance and nonfinite rejection, nested and concurrent interval unions, gaps, invalid durations, unlabelled events and effective CPU/job records; no new matched timing or physics certificate
11 performance-tool checks pass in full and Tier-A-only modes tested spec/reviews/m3-performance-continuation.json; final focused JUnit reports and tested source hashes bound in its sidecar
python -m pytest tests/unit/test_m3_performance_tools.py; repeat with TKIT_TIER_A_ONLY=1
762fcd5
C-148 The saved three-step Newton trace has fused runtime labels; an interval-union audit does not recover physics component attribution
interval union 5.368648273 s versus inclusive sum 5.398356896 s; all HLO events use one fused module and one runtime source, across two threads; trace overhead included, no component percentage or unprofiled runtime inferred
72059 complete HLO events with about 5.369 s of covered trace time preliminary data/m3/validation/continuation/newton-trace-summary.json; trace digest observed at analysis time and bound in spec/reviews/m3-performance-continuation.json.provenance.json
python scripts/m3_profile_trace.py TRACE.json.gz --out REPORT.json
762fcd5
C-149 The selected EPEDNN pressure/width checkpoint's JAX port reproduces pinned upstream regression values
ITER and two other upstream numerical fixtures; relative maximum difference about 1.6e-15; 54 finite JIT outputs; raw AD/FD checks with unchanged masks; no fresh Julia, full-EPED, experimental or coupled validation
12 upstream scalar regression values agree within relative tolerance 1e-12 measured spec/reviews/m3-epednn-port-validation.json; numeric artifact, upstream model/source/tests and working-tree source hashes bound in its sidecar
python scripts/m3_validate_epednn.py data/references/EPEDNN.jl --out NEW_REPORT.json
working tree at parent 3d28f9f; source hashes bound in evidence; evidence retained at 66cc594
C-150 EPEDNN port contracts and Tier A import/label checks pass in both modes
10 new port checks and 2 existing import/label checks; zero failures or skips; raw FD rtol 1e-6 and atol 1e-9; no new full-suite aggregate or coupled acceptance
12 focused tests pass in full and Tier-A-only modes tested spec/reviews/m3-epednn-port-validation.json; full and Tier-A final JUnit reports and working-tree source hashes bound in its sidecar
python -m pytest tests/unit/test_epednn.py tests/tier_a/test_tier_labels.py tests/tier_a/test_tier_isolation.py; repeat with TKIT_TIER_A_ONLY=1
working tree at parent 3d28f9f; source hashes bound in evidence; evidence retained at 66cc594
C-151 GENRAY native-output reader contracts and Tier A import/label checks pass in both modes
22 reader checks on synthetic classic NetCDF and 2 Tier A import/label checks; zero failures or skips; SI conversions, signs, separate channels, integrals, malformed/missing outputs and optional SciPy isolation; no solver execution or new full-suite aggregate
24 focused tests pass in full and Tier-A-only modes tested spec/reviews/m3-genray-adapter-validation.json; source, tests, metadata, upstream schema and final JUnit reports bound in its sidecar
python -m pytest tests/unit/test_genray.py tests/tier_a/test_tier_labels.py tests/tier_a/test_tier_isolation.py; repeat with TKIT_TIER_A_ONLY=1
working tree at parent 3d28f9f; source hashes bound in evidence; evidence retained at 66cc594
C-152 The GENRAY reader checks the pinned upstream saved ITER EC output's channels and numerical accounting
saved genray_v10.13_200117 file; SI channels preserved; integral rtol 1e-12 and atol 1e-9; maximum absolute power residual about 1.05e-9 W and toroidal-current residual about 3.64e-12 A; no fresh solver run, project baseline selection, new labels or coupled physical acceptance
200 native bins in the saved upstream ITER EC output pass reader and accounting checks measured spec/reviews/m3-genray-pilot-validation.json; saved-output report, raw fixture and paired inputs, script and reader bound by provenance
python scripts/m3_validate_genray.py data/references/genray --out NEW_REPORT.json
working tree at parent 3d28f9f; source hashes bound in evidence; evidence retained at 66cc594
C-153 The bounded GENRAY pilot lifecycle, reader and Tier A contracts pass in both modes
16 new pilot tests with fake executables, 22 reader tests and 2 Tier A checks; zero failures or skips; retained failures and partial outputs, process-group timeout cleanup, input snapshots, provenance, lineage rejection and CLI failure reporting; no new full-suite aggregate
40 focused pilot, reader and Tier A checks pass in full and Tier-A-only modes tested spec/reviews/m3-genray-pilot-validation.json; source, tests, metadata and final executed JUnit reports bound in its sidecar
python -m pytest tests/unit/test_genray_pilot.py tests/unit/test_genray.py tests/tier_a/test_tier_labels.py tests/tier_a/test_tier_isolation.py; repeat with TKIT_TIER_A_ONLY=1
working tree at parent 3d28f9f; source hashes bound in evidence; evidence retained at 66cc594
C-154 The pinned external GENRAY reference builds with Giza's plotting interface and passes artifact/linkage checks
final build uses one CPU and takes 65.94 s within a 300 s deadline; 61 regular artifacts and acyclic snapshot lineage checked; 18 required PG symbols exported and 41 runtime library paths resolved; legacy compiler warnings retained; no solver run or plotting/scientific parity established
one external reference executable builds with verified artifacts and resolved runtime libraries measured spec/reviews/m3-genray-build-validation.json; exact executed builder, source archives, binary, logs, libraries, artifact sidecars and proposed pilot manifest bound by digest
load the documented compiler/NetCDF/Python environment; run scripts/m3_build_genray.py with one-CPU affinity, pinned sources, new output/work directories and --timeout-s 300; inspect recorded build commands; verify proposed manifest with scripts/m3_run_genray_pilot.py --check-only
working tree at parent 3d28f9f; source hashes bound in evidence; evidence retained at 66cc594
C-155 The first EC reference attempt retains a plotting-device failure, and an isolated alias correction passes plotting-only ABI probes
original and patched libraries each check VPS, VCPS, CPS and an invalid device; original VCPS fails and patched VCPS produces portrait colour PostScript; successful plots contain a red line and expected page dimensions; 78 immutable pilot/build artifacts verified; the first solver attempt stopped after 0.316 s with no NetCDF despite returning zero; corrected build takes 88.12 s within a 300 s one-CPU bound; no corrected GENRAY execution or scientific parity claimed
all eight plotting-device checks match their expected outcomes measured spec/reviews/m3-genray-first-execution.json; accounting, retained failure, corrected build, patch, plotting probe commands/outputs and checked retry manifest bound by digest
inspect the retained report and plotting-only probe commands; build using scripts/m3_build_genray.py with the explicit spec/patches/giza/vcps-device.patch; rerunning GENRAY needs a separately approved compute request
working tree; exact source and executed helper hashes bound in evidence; evidence retained at 66cc594
C-156 The corrected original ITER EC numerical pilot completes and produces readable native heating and signed-current profiles
single unchanged upstream numerical case; one CPU and 4 GiB allocation; 90 s job elapsed and 975280 KiB peak batch RSS; 200 native bins and 37 immutable artifacts verified; largest native power/current accounting residuals 5.82e-10 W and 3.64e-12 A; absorbed power 999904.760150 W and toroidal current +25814.194282 A; saved-reference total differences +0.126330 W and -0.320392 A; power weighted-L1 difference 6.386e-5 and current shape differences 6.309e-5 to 6.744e-5; ray stop code 2 is the remaining-power cutoff; PostScript renders to one blank page; no physical acceptance, labels or plotted-content parity claimed
the corrected EC reference completes in 83.16 s with readable native profiles measured spec/reviews/m3-genray-corrected-pilot.json and spec/reviews/m3-genray-corrected-pilot-observations.json; accounting, manifests, unchanged snapshots, raw output, exact audit helpers, render logs and profile comparison figures bound by digest
inspect the retained numerical and observations reports and their sidecars; native output can be reread without executing GENRAY; each fresh solver run requires its own approved compute request
working tree; exact reader, launcher, audit helper and artifact hashes bound in evidence; evidence retained at 66cc594
C-157 Final pedestal, GENRAY, packaging, Tier A and blog-export focused checks pass in both modes
zero failures, errors or skips; 7 files rerun per mode; combined 411 passes per mode include 53 retained unchanged-file reports and are not a fresh full-suite execution; no additional solver runs or physical acceptance
56 focused checks pass in full and Tier-A-only modes tested spec/reviews/m3-blog-commit-validation.json; final source, metadata, fresh and retained JUnit reports bound in its sidecar
run the seven listed test files individually with pytest --junitxml in normal mode and TKIT_TIER_A_ONLY=1; aggregate the complete report tree using blog/tools/stats.py --from-junit
66cc594; fresh execution at parent 3d28f9f with exact final source hashes bound
C-158 Matched end-to-end timing of the final monotone v3 surrogate on RAPTOR L-mode: linear solver, host driver, 40 fixed steps of 0.05 s, compilation and one warm-up step excluded
job 2650336, one CPU node, same host for all three; surrogate and QLKNN each use one core, TGLF uses 51 worker processes; zero stalled or coarse-tolerance steps; single run, no repeat timing
TGLF 539.1 s, final v3 surrogate 1.249 s, QLKNN 0.117 s; the v3 surrogate is about 432 times faster than TGLF and 10.7 times slower than QLKNN measured data/m3/validation/loop/job_2650336/ (tglf.npz, surrogate.npz, qlknn.npz metadata; provenance sidecars bind the runner, script, commit 6fb189c and source diff)
sbatch scripts/m3_surrogate_loop.sbatch (needs an approved compute request)
6fb189c
C-159 Closed-loop profiles at t = 2 s against TGLF, RAPTOR L-mode, job 2650336, normalised root-mean-square deviation
one trajectory, one case; the guarded surrogate uses the Bohm/gyro-Bohm fallback on faces outside its training domain (C-160), so the deviation describes the guarded model
final v3 surrogate: T_e 7.7%, T_i 9.2%, n_e 11.4%, psi 0.32%; QLKNN: T_e 155%, T_i 128%, n_e 86%, psi 2.4% measured data/m3/validation/loop/job_2650336/comparison.json
python scripts/m3_surrogate_loop.py compare tglf.npz surrogate.npz qlknn.npz --out comparison.json
6fb189c
C-160 Faces of the final accepted state outside the guard's domain, final v3 surrogate, RAPTOR L-mode, job 2650336
final accepted state only, not a trajectory average; every rejected face is outside the training input box
17 of 51 faces (rho_tor_norm up to 0.08 and from 0.78) are outside the guard's domain and use the fallback measured data/m3/validation/loop/job_2650336/surrogate.npz (ok_transport_final, final_in_domain)
read the two masks from the saved run file
6fb189c
C-161 Cause of the immediate cancellation of comparison job 2611883
inferred from accounting records (same state, zero elapsed time, two nodes repeat); no statement from the scheduler operators
seven full-node jobs since 2 Oct were cancelled by root at start with no reason; each resubmission landed on another node and ran preliminary sacct records of the project's jobs 2026-10-02 to 2026-10-07; spec/reports/M3.md (2026-10-10)
sacct -X --format=JobID,State,Elapsed,NodeList over the project's jobs
7f0f1b7
C-162 ITER pedestal from the EPEDNN port under the OQ-21 contract (GH solution 0, T_i = T_e, top at psi_norm = 1 - 2 x half-width), upstream ITER example input, Z_eff 1.5 with carbon
one input point; the selected single network has no ensemble spread; not coupled to TORAX yet
pedestal pressure 0.0772 MPa, T_ped 3.59 keV at n_e,ped 7e19 m^-3, top at psi_norm 0.935 measured tests/unit/test_pedestal_contract.py::test_selected_model_on_the_upstream_iter_example
pytest tests/unit/test_pedestal_contract.py
5ec80f4
C-163 Focused checks of the EC dataset pipeline and the pedestal contract pass in both modes
synthetic NetCDF files and fake executables for the pipeline; real EPEDNN weights in one pedestal test; zero failures or skips
19 focused checks (13 EC pipeline, 6 pedestal contract) pass in full and Tier-A-only modes tested tests/unit/test_genray_ec.py, tests/unit/test_pedestal_contract.py
pytest tests/unit/test_genray_ec.py tests/unit/test_pedestal_contract.py (and with TKIT_TIER_A_ONLY=1)
5ec80f4
C-164 GENRAY EC dataset v1 on ITER states (39 TORAX runs x 8 states x 10 launches), job 2650369
one equilibrium for all states (K-028); one central ray per case; labels per MW injected; no physical acceptance threshold
3120 of 3120 cases produce readable output (20 of 20 check cases); median 84.8 s of GENRAY time per case measured data/m3/genray_ec/v1/summary.json and the two response datasets with provenance sidecars; Simvue run genray-ec-dataset-iter-v1
sbatch scripts/m3_genray_ec.sbatch (needs an approved compute request)
7f0f1b7
C-165 Driven current from the momentum-conservation deck (ieffic=4) against the main ieffic=6 labels, 20 check cases
two cases with |I_cd| below 0.3 kA differ in sign or by a factor two
median 4.1% difference in driven current (range -14% to +16%), identical absorbed power measured data/m3/genray_ec/v1/summary.json (check)
python -m tkit.datasets.genray_ec assemble
7f0f1b7
C-166 First held-out baseline on EC dataset v1 (unconstrained 5-member ensemble, 64x2, 640 test cases from 8 held-out TORAX runs)
draft dataset; no accuracy target set (B3); uncalibrated spread covers 0.60-0.90 of errors at two spreads
driven current RMSE 3.30 kA/MW against 13.5 kA/MW for the training mean; pointwise profile model: current-density RMSE 2.20e4 A/m2 against 2.09e4 A/m2 for the mean measured data/m3/genray_ec/v1/baseline-case/meta.json and baseline-profile/meta.json
python -m tkit.surrogates.responses <dataset> <out> --config configs/surrogates/m3_ec_genray_v1_<case|profile>.json --allow-draft
86ea238
C-167 EC states kept under K-028 option (b), prescribed I_p at least 10 MA (two thirds of the equilibrium's 15 MA)
I_p from the TORAX configuration, piecewise linear in time; kept states at 10.5-11.5 MA still use the 15 MA equilibrium
2910 of 3120 cases kept (210 early ramp-up cases dropped); largest driven current 61 kA/MW, was 279 kA/MW measured data/m3/genray_ec/v1/structured-filter.json and ec-genray-iter-v1-structured.npz with provenance; Simvue run genray-ec-structured-iter-v1
python -m tkit.datasets.genray_ec structured
e0f1a09
C-168 Structured EC ensemble (5 members, width 128, depth 3, selected on validation) on the test split of the structured EC dataset: 640 cases from 8 held-out TORAX runs, per MW injected
scored once on test; one equilibrium (K-028); one central ray; absorbed power is near complete in almost every case; ensemble spread not calibrated
all three targets pass: absorbed power 0.01% and driven current 2.7% median relative error (targets 10%), heating centre 0.0036 median absolute error in rho (target 0.05) measured data/m3/genray_ec/v1/structured-w128d3/ (model, metadata, provenance) and structured-w128d3-test.json; targets configs/surrogates/m3_ec_targets.yaml
python -m tkit.surrogates.responses ec-genray-iter-v1-structured.npz out --config configs/surrogates/m3_ec_structured_w128d3.json --allow-draft; python -m tkit.surrogates.ec_structured out --split test
e0f1a09
C-169 Profiles rebuilt from the structured EC ensemble's outputs (cell-integrated Gaussians normalised to the predicted totals) against GENRAY's remapped profiles, test split
diagnostic, not a target; the Gaussian of the true parameters is the shape's floor
heating RMSE 8.6e3 W/m3 (training mean 1.34e4, Gaussian of the true parameters 5.4e3); current RMSE 1.35e4 A/m2 (training mean 2.09e4, Gaussian of the true parameters 5.0e3) measured data/m3/genray_ec/v1/structured-w128d3-test.json (profiles)
python -m tkit.surrogates.ec_structured out --split test --profile-dataset ec-genray-iter-v1-profile.npz --genray-nc <any case>/genray.nc --rho-scale 0.99887
e0f1a09
C-170 Focused checks of the EC pipeline, structured labels and structured evaluation pass in both modes
synthetic NetCDF files and fake executables; zero failures or skips
19 focused checks (15 EC pipeline and structured labels, 4 structured evaluation) pass in full and Tier-A-only modes tested tests/unit/test_genray_ec.py, tests/unit/test_ec_structured.py
pytest tests/unit/test_genray_ec.py tests/unit/test_ec_structured.py (and with TKIT_TIER_A_ONLY=1)
e0f1a09
C-171 EC surrogate as TORAX's ecrh source on ITER hybrid (10 MW of generic heating moved to EC, Newton, 3 steps of 0.05 s): jit for both launchers, heating integral, discrete balance and derivatives through Newton
residual_tol 1e-10 for balance and derivatives; guard decision unchanged over the stencil; three steps only
runs under jit for both launchers with the surrogate serving the source; energy balance within 1e-6 and particles within 1e-10; derivatives through Newton match finite differences to 1e-7 tested tests/physics/test_torax_ec_loop.py, tests/diff/test_torax_ec_gradients.py, tests/unit/test_torax_ec.py
pytest tests/physics/test_torax_ec_loop.py tests/diff/test_torax_ec_gradients.py tests/unit/test_torax_ec.py
433bf5b
C-172 EC surrogate source over the full ITER hybrid trajectory (TORAX's shipped settings, 5 s) against its Gaussian fallback alone, and per-call cost against GENRAY
single timings, four runs side by side on separate cores; GENRAY cannot run inside TORAX's step
surrogate serves 29 of 30 states (upper launcher) and 16 of 27 (equatorial; core T_e leaves the training range); run time 1.6-1.7 times the analytic source; one call 39 microseconds against 85 s for GENRAY measured data/m3/validation/ec_coupled/ (run files and summary); data/m3/genray_ec/v1/summary.json
python scripts/m3_ec_coupled.py run <UL|EL> <surrogate|fallback>; python scripts/m3_ec_coupled.py summarise
433bf5b
C-173 EPEDNN pedestal as a TORAX pedestal model on ITER hybrid (Newton, 3 steps of 0.05 s): jit, fallback on the amu mass, discrete balance and derivatives through Newton
residual_tol 1e-10 for balance and derivatives; EPEDNN decision unchanged over the stencil
runs under jit with EPEDNN setting the pedestal; energy balance within 1e-6 and particles within 1e-10; derivatives through Newton match finite differences to 1e-7 tested tests/physics/test_torax_pedestal_loop.py, tests/diff/test_torax_pedestal_gradients.py, tests/unit/test_pedestal_contract.py
pytest tests/physics/test_torax_pedestal_loop.py tests/diff/test_torax_pedestal_gradients.py
f250ce8
C-174 EPEDNN pedestal over the full ITER hybrid trajectory (TORAX's shipped settings, 5 s) against the scenario's prescribed pedestal (T_ped 4.5 keV, top 0.90)
one scenario; n_e,ped and composition prescribed; single timing
EPEDNN sets the pedestal on 48 of 48 states: T_ped 2.62-2.69 keV, top 0.90-0.92; final stored thermal energy 220 MJ against 303 MJ, beta_N 1.57 against 2.16; about 1.5 times the prescribed model per step measured data/m3/validation/pedestal_coupled/ (run files and summary)
python scripts/m3_pedestal_coupled.py run <epednn|prescribed>; python scripts/m3_pedestal_coupled.py summarise
f250ce8
C-175 Final monotone v3 MAST-U transport surrogate behind the guard on MAST-U states of dataset v3
three steps; density not evolved in these runs; MAST-U end-to-end timing against TGLF not measured
linear solver: every step converges on two equilibria with the fallback serving 31-35% of faces; on a converging Newton case energy balance within 1e-6 and derivatives match finite differences to 1e-7; Newton does not converge at the runs' 5 ms steps from these initial states (K-029) tested tests/physics/test_torax_surrogate_mastu_loop.py, tests/diff/test_torax_surrogate_mastu_gradients.py
pytest tests/physics/test_torax_surrogate_mastu_loop.py tests/diff/test_torax_surrogate_mastu_gradients.py
f250ce8
C-176 Matched end-to-end timing of the final monotone v3 MAST-U surrogate: dataset-v3 MAST-U run (FreeGSNKE equilibrium), linear solver, host driver, 40 fixed steps of 5 ms, compilation and one warm-up step excluded
job 2650876, one node; TGLF on 26 worker processes, the others on one core; one case, single timing; faces with meaningless TGLF inputs (axis) go to the fallback in the TGLF run
TGLF 364.1 s, surrogate 0.492 s, Bohm/gyro-Bohm 0.043 s: the surrogate is about 740 times faster than TGLF; profile deviation from TGLF at 0.2 s, T_e 41.5% and T_i 62.4% (Bohm/gyro-Bohm 47.9% and 84.6%), with half the faces outside the training window and on the fallback measured data/m3/validation/loop_mastu/job_2650876/ (run files, comparison, runner and script as executed, commit da7b7e8)
sbatch scripts/m3_surrogate_loop_mastu.sbatch (needs an approved compute request)
da7b7e8
C-177 M4 owner-selected property contracts and strict schema validation
contracts preserve OQ-20 and OQ-22; no formal proof is claimed by a parsing test
six property contracts load; 14 property-validation tests pass in each mode, including malformed-domain, tolerance and output-schema rejection tested tests/unit/test_verify_properties.py; configs/properties/
pytest tests/unit/test_verify_properties.py; TKIT_TIER_A_ONLY=1 pytest tests/unit/test_verify_properties.py
ca488f2
C-178 M4 V8 final monotone v3 ITER transport compared with TGLF at the final accepted state of the saved matched run
paper eq. 41 normalized by surrogate mean; both cell profiles interpolated onto the guard faces; final-state mask only
served-face T_e 7.42%, T_i 8.18%, both passing the 15% limit; whole profile 7.72/9.23%; 34 of 51 final-state faces served measured reviews/m4-transport-closed-loop.json; saved matched ITER run
python scripts/m4_transport_closed_loop.py
ca488f2
C-179 M4 V8 final monotone v3 MAST-U transport misses the unchanged closed-loop accuracy limit against TGLF
paper eq. 41 normalized by surrogate mean; both cell profiles interpolated onto guard faces; K-030; final mask is not trajectory fallback accounting
served-face T_e 35.33%, T_i 49.15%, both failing 15%; whole profile 41.51/62.39%; cells with both adjacent faces served give 11.86/23.24%, still failing T_i; 13 of 26 final-state faces served measured reviews/m4-transport-closed-loop.json; saved matched MAST-U run
python scripts/m4_transport_closed_loop.py
ca488f2
C-180 Float64 PyTorch exports preserve the selected JAX networks and prediction transforms under owner-approved mixed parity
mixed numerical parity approved in OQ-26; no labelled pedestal holdout exists, so its additional checks use domain boundaries and centre; no formal proof follows from parity
13 export checks pass in each mode: all selected members, random box points, local holdouts, physical transforms and served means, with rtol=1e-12 and atol=1e-12 in each declared output unit tested tests/unit/test_verify_export.py; reviews/m4-export-parity.json
pytest tests/unit/test_verify_export.py; TKIT_TIER_A_ONLY=1 pytest tests/unit/test_verify_export.py
ca488f2
C-181 Matched TGLF probes expose large MAST-U heat-flux errors on the failed surrogate feedback states
one failed trajectory, not a population or closed-loop estimate; full solver inputs, existing SAT2 settings; held-out diagnostic labels never enter training
all 17 in-domain final-state probes succeed; on 12 served faces with reference flux above 1 gB, median relative errors are 41.17% Q_e and 74.27% Q_i; an unconstrained v3 control gives 38.05/71.88% measured reviews/m4-mastu-flux-probe.json; reviews/m4-mastu-assessment.json and bound sidecars
python scripts/m4_mastu_probe.py; python scripts/m4_mastu_assess.py
bc1d0a9
C-182 MAST-U accepted-state diagnostic replay exactly reproduces the failed saved profiles and identifies coefficient-guard rejections
40 accepted states, not solver-intermediate transport-call accounting; no guard settings changed
all saved temperature, density and psi values are reproduced exactly; four final inner faces exceed the existing ion-diffusivity guard bound; 44.81% of accepted-state face diagnostics reject the surrogate measured reviews/m4-mastu-assessment.json; data/m4/validation/mastu-remediation/history.npz and executed runner snapshot
python scripts/m3_surrogate_loop.py run --case mastu --transport surrogate --solver linear --driver host --steps 40 --warmup-step --diagnostic-history --out history.npz
bc1d0a9
C-183 Completed MAST-U feedback label collection passes local artifact integrity checks
collection integrity only; no retraining, held-out accuracy or improved closed-loop result is claimed; remote tracking synchronization is recorded separately in C-184
eight local checks pass for approved allocation/time, hashes and lineage, full-input alignment, case budget, unique coordinates, training-only equilibria, source model and finite successful labels measured reviews/m4-mastu-refresh-result.json and bound sidecar; scripts/m4_mastu_refresh_review.py
python scripts/m4_mastu_refresh_review.py --job 2656846
24fc139
C-184 Approved MAST-U refresh upload retains private visibility and matches downloaded artifact checksums
synchronization integrity only; duplicate provenance sidecars remain separate records; no model training or improved physics accuracy is claimed
all 26 uploaded artifact records covering 18 distinct files match both remote SHA-256 metadata and downloaded bytes; the folder and private visibility match the approved request, and the offline payload queue is empty measured reviews/m4-mastu-simvue-upload-result.json and bound sidecar; approved upload manifest
python data/m4/remediation/mastu/job_2656846/verify_simvue_upload.py (read-only remote downloads; requires the configured private account)
9854782
C-185 MAST-U feedback retraining preparation passes focused regression checks and a bounded training-only smoke
tooling and split isolation only; smoke results are not acceptance metrics; unchanged-file execution reports are retained for aggregate statistics
55 focused checks pass in both normal and Tier A modes; the bounded training-only smoke produces finite predictions and reloads exactly tested reviews/m4-mastu-training-preparation.json and bound sidecar; data/m4/preparation/mastu/suites; smoke-v3/result.json
python -m pytest tests/unit/test_m4_feedback.py tests/unit/test_surrogate_train.py tests/unit/test_surrogate_predict.py tests/unit/test_surrogate_monotone.py tests/unit/test_surrogate_monotonicity.py tests/unit/test_surrogate_positivity.py tests/unit/test_provenance_integrity.py
6e9ef9f
C-186 The approved MAST-U candidate completes within budget and passes its completion integrity audit
completion integrity only; no coupled accuracy, formal certificate, synchronization or replacement is claimed
164 completion checks pass, binding the saved candidate to the reviewed snapshot and frozen data/splits, with finite parameters/history and tested member/served predictions measured reviews/m4-mastu-training-result.json and bound sidecar; native final accounting
python data/m4/preparation/mastu/verify-completion-as-executed.py (preserve and move the existing output report before rerunning; never overwrite the candidate)
655c7cf
C-187 The MAST-U feedback candidate passes all-member and served numerical export parity
rtol=1e-12 and atol=1e-12 in each declared output unit (OQ-26); numerical parity and sampled derivatives do not replace formal M4 proofs
all 168 export comparison records pass the unchanged mixed tolerance, covering all 20 members in training/physical units, the served ensemble and JAX JIT/eager arithmetic measured reviews/m4-mastu-offline-result.json and bound sidecar; source-bound offline review
python data/m4/preparation/mastu/offline-review-as-executed.py (preserve and move the existing output report before rerunning; never overwrite the candidate)
655c7cf
C-188 MAST-U candidate replay preparation passes focused checks and a bounded training-only integration smoke
replay tooling only; the held-out candidate replay has not run, no temperature accuracy or formal certificate is claimed, and original model/guard selection is retained
40 focused checks pass in normal and Tier A modes; the two-step training-only candidate smoke is finite and reconstructs the raw accepted-state guard predicate exactly tested reviews/m4-mastu-replay-preparation.json and bound sidecar; replay-suites; replay-smoke-v3/result.json
python -m pytest tests/unit/test_m4_replay.py tests/unit/test_verify_closed_loop.py tests/unit/test_m3_performance_tools.py tests/unit/test_m4_mastu_refresh.py
0dd614a
C-189 The approved candidate replay completes its solver trajectory but fails saved-reference coverage
formal temperature gate is not evaluable; saved TGLF reference uses fallback at the uncovered candidate face; no face removal or automatic retry
the single approved replay finishes in 65 seconds within its 240-second bound, with 40 finite converged steps and 146 passing integrity checks; comparison exits with a reference-coverage failure at candidate-served face 4, normalized radius 0.16 measured reviews/m4-mastu-replay-result.json and bound sidecar; consumed replay trajectory and logs
Read the bound saved-output audit; do not rerun the consumed OQ-30 solver command
793e61c
C-190 Supplementary candidate temperature diagnostics retain the fixed-mask electron regression and reference-coverage limitation
supplementary diagnostics only, not acceptance metrics; the uncovered reference face invalidates the formal comparison; every actual candidate face is retained
candidate/baseline serve 15/13 faces with 11 overlapping; fixed-baseline-mask candidate T_e/T_i errors are 42.1252%/48.1182%, versus baseline 35.3331%/49.1458%; candidate whole-profile errors are 29.7365%/41.8856%, and own-mask descriptive distances to the hybrid reference are 29.8865%/40.0063% preliminary reviews/m4-mastu-replay-result.json and bound sidecar; actual and fixed-baseline masks retained
Read the bound saved-output audit without invoking any solver
793e61c
C-191 Candidate accepted-state guard diagnostics reproduce the saved raw predicate and retain rejection accounting
accepted-state face diagnostics only, not intermediate solver-call accounting or a fallback acceptance gate; nonexclusive convection count is 25 and overlaps another reason once
candidate rejects 415/1040 accepted-state face records (39.9038%), versus baseline 466/1040 (44.8077%); exclusive candidate reasons are 341 model-box exits, 50 excessive diffusivities and 24 excessive convection values, with exact raw guard reconstruction measured reviews/m4-mastu-replay-result.json and bound sidecar; accepted-state raw features and coefficients
Read the bound saved-output audit and its guard-accounting records
793e61c
C-192 Reference diagnostic preparation checks raw guard evidence without running physical TGLF
synthetic worker responses only; physical TGLF forbidden; no physics labels, formal acceptance metric or new reference job; historical missing dependency evidence remains explicit
32 focused checks pass in each mode; a two-step synthetic training-equilibrium smoke is finite and reconstructs the raw guard exactly; all 77 source modules pass typing, and lint/format plus batch syntax pass measured reviews/m4-mastu-reference-preparation.json and bound sidecar; frozen package and retained synthetic smoke artifacts
Run tests/unit/test_m4_reference.py and tests/unit/test_m4_replay.py in normal and Tier A modes; check the frozen package without running its compute command
f3e08bb
C-193 The single approved reference diagnostic completes and reproduces the saved reference exactly
diagnosis only; historical external dependency bytes remain missing; no retry or formal temperature acceptance
the diagnostic completes in 517 seconds within its 30-minute bound, with 40 finite converged steps, exact historical temperature/density/poloidal-flux-profile and final-mask equality, and 171 passing saved-output integrity checks measured reviews/m4-mastu-reference-result.json and bound sidecar; trajectory, executed package and final native accounting
Run the bound read-only saved-output audit; do not rerun the consumed OQ-31 compute command
8721f24
C-194 Valid-input negative raw heat diffusivity explains the uncovered final reference face
raw guard reconstructed exactly; physical/numerical origin of signed coefficients remains unproven; the reference still cannot establish the formal candidate temperature comparison
final face 4 at normalized radius 0.16 has valid inputs but raw electron heat diffusivity -0.02792124888 m²/s; negative heat diffusivity rejects that face at 8 of 40 accepted states; reference rejection is 323/1040 accepted-state face records (31.0577%) measured reviews/m4-mastu-reference-result.json and bound sidecar; full input/raw coefficient/guard histories
Inspect the bound face-4 history and reconstruct the saved raw guard without calling TGLF
8721f24
C-195 Saved negative heat coefficients imply inward flux without a converter denominator sign reversal
inverse conversion only; not independent direct flux or mode evidence; physical/numerical origin unresolved; no reference remedy or temperature acceptance
the final electron heat flux is inferred as -0.001689376033 gB; all 9 negative channel records at 8 accepted states have outward-decreasing temperature and no denominator-epsilon sign reversal, with maximum epsilon ratio 1.03e-11; all negative magnitudes are below 1 gB measured reviews/m4-mastu-heat-conversion-review.json and bound sidecar; reviews/m4-mastu-reference-physics-review.md
Run scripts/m4_mastu_heat_review.py with a new output path; reads saved trajectory and geometry and forbids TGLF execution
1154e09
C-196 Signed heat review passes native conversion parity and focused synthetic isolation checks
normal and Tier A modes; no physical solver execution; round trips check conversion algebra and units rather than independent physics
33 focused checks pass in each mode, including 14 new sign/units/history tests; all 80 native heat-converter round trips meet the mixed 1e-12 parity criterion (maximum absolute difference 8.88e-16 m²/s), 32 numerical source files match the diagnostic bindings, and all 78 source modules pass typing tested reviews/m4-mastu-heat-review-validation.json and bound sidecar; retained JUnit records and array audit
Run tests/unit/test_signed_heat.py, tests/unit/test_m4_reference.py and tests/unit/test_blog_export.py in both modes; run the saved-output review without TGLF
1154e09
C-197 The richer signed heat diagnostic route passes synthetic preparation checks
synthetic and input/schema validation only; no direct physical flux or mode evidence; no reference remedy or temperature acceptance
55 focused checks pass in each mode, including 22 direct-output and settings checks; all 79 source modules pass typing; the compiled synthetic writer preserves signed species heat and passes total/low-k spectral parity without calling TGLF tested reviews/m4-mastu-rich-diagnostic-preparation.json and bound sidecar; retained JUnit records and compiled synthetic writer fixture
Run tests/unit/test_tglf_diagnostic.py, test_signed_heat.py, test_m4_reference.py and test_blog_export.py in both modes; prepare the native synthetic writer without physical execution
be87dbd
C-198 Diagnostic paired reporting is checked against the wrapper's actual exposed capabilities
synthetic worker responses only; unavailable convergence/status evidence remains unavailable; consumed failed run and all original bindings retained
25 diagnostic checks pass in each mode, including unavailable status, exposed failure status and nonfinite output; 33 unchanged focused checks are retained for 58 focused recorded passes per mode tested reviews/m4-mastu-rich-diagnostic-preparation-v6.json and bound sidecar; retained diagnostic JUnit records
Run tests/unit/test_tglf_diagnostic.py in normal and Tier A modes; physical solver calls are replaced with synthetic responses
6e60d64
C-199 The richer diagnostic retains signed local-state flux and backend discrepancies
integrity and local numerical evidence only; no physical validity, complete reference coverage or formal temperature acceptance
648 integrity checks pass on the complete 15-state collection; all affected signed states agree between backends, but four control states fail the existing parity criterion; original terminal tracking failure is preserved and archive recovery calls no solver measured reviews/m4-mastu-rich-diagnostic-result.json and bound sidecar; reviews/m4-mastu-rich-diagnostic-result.md
Inspect bound saved outputs and archive checksum; do not repeat consumed submissions or recovery
7fb6b47
C-200 Repeatability checks retain separate signed backend replicates and reject incomplete evidence
synthetic fixtures only; no physical solver calls or reference admissibility from these tests
31 synthetic diagnostic tests pass in each mode, including archive identity and repeatability completeness/discrepancy checks; 33 unchanged focused records are retained, giving 64 focused recorded passes per mode tested data/m4/validation/mastu-rich/repeat-v1-report-suites; reviews/m4-mastu-rich-repeat-preparation.json
Run tests/unit/test_tglf_diagnostic.py in normal and Tier A modes
0880d29
C-201 Both numerical reference backends reproduce their own signed outputs exactly
local repeatability and artifact/accounting integrity only; no physical validity, numerical convergence, reference remedy or formal temperature acceptance
521 saved-output checks pass; every within-backend fresh-process repeat is exactly equal and agrees with its consumed output, while all four cross-backend discrepancies persist; native accounting completes within the reviewed bound and the offline archive copy matches its checksum measured reviews/m4-mastu-rich-repeat-result.json and bound sidecar; reviews/m4-mastu-rich-repeat-result.md
Inspect the bound saved-output repeatability report; the consumed diagnostic is not resubmitted
7c6bc46
C-202 The bounded reference refinement protocol preserves signed evidence and validates its reporting
synthetic tests only; no solver convergence, physical validity or temperature acceptance
40 focused synthetic checks pass in each mode after the input-path correction, covering signed channels, refinement identities, baseline drift, incomplete evidence and existing diagnostic output handling tested reviews/m4-mastu-convergence-path-fix.json and bound sidecar; data/m4/validation/mastu-rich/convergence-v2-report-suites
Run tests/unit/test_tglf_convergence.py and tests/unit/test_tglf_diagnostic.py in normal and Tier A modes
f3ceaa3
C-203 The bounded reference refinement completes but does not establish numerical convergence
artifact integrity and observed numerical sensitivity only; no converged-reference uncertainty bound or temperature acceptance
2076 integrity checks pass on the complete bounded study; baseline reproduction, signed species outputs, spectral accounting, native completion and the local archive copy are verified, while electron-flux signs change across refinement levels and finest-level backend differences remain measured reviews/m4-mastu-convergence-result.json and bound sidecar; reviews/m4-mastu-convergence-result.md
Run the saved-output convergence review to a new destination; do not resubmit the consumed diagnostic
f929e2a
C-204 Separated-basis reporting preserves fixed inputs, signed effects and consumed controls
synthetic preparation only; no reference convergence or coupled-temperature acceptance
54 focused synthetic checks pass in each mode, including separated basis effects, interactions, signed channels, incomplete evidence and consumed-control drift; 553 unchanged recorded checks are retained separately tested reviews/m4-mastu-basis-preparation.json and bound sidecar; data/m4/validation/mastu-rich/basis-report-suites
Run test_tglf_basis.py, test_tglf_convergence.py and test_tglf_diagnostic.py in normal and Tier A modes
ec310a2
C-205 The separated-basis diagnostic completes; both basis roles change the flux and convergence is still not established
artifact integrity and observed numerical sensitivity only; no converged-reference uncertainty bound, cause or temperature acceptance
2139 integrity checks pass on the complete 54-pair basis grid and all 36 consumed-control comparisons reproduce the preceding study; electron flux changes sign at every state, steps reach 4.28 gB along the final basis and 4.11 gB along the search basis, and at the largest final basis the flux is a residual of order 1e-3 gB measured reviews/m4-mastu-basis-result.json, reviews/m4-mastu-basis-interpretation.json and bound sidecars; reviews/m4-mastu-basis-result.md
Run the saved-output convergence review and basis interpretation to new destinations; do not resubmit the consumed diagnostic
118d8bd
C-206 Extending the final basis and the width-search range does not converge the MAST-U reference flux
artifact integrity and observed numerical sensitivity only; no converged-reference uncertainty bound, cause or temperature acceptance
3029 integrity checks pass on the complete 78-pair extension and all 36 control comparisons reproduce job 2687308; NBASIS_MAX 16 still moves electron flux by up to 0.48 gB per step, and widening the width search from 1.65 to 3.3 changes it from about 1e-3 gB to as much as 181 gB measured reviews/m4-mastu-extension-result.json and bound sidecar; reviews/m4-mastu-extension-result.md
Run the saved-output convergence review to a new destination; do not resubmit the consumed diagnostic
f2954ba
C-210 JOREK 01a52be3 built from source with an own MUMPS 5.7.3 reproduces three of four upstream regression cases
each case's own upstream tolerance on the stored solution values; build check only, no physics result
3 of 4 upstream regression cases reproduce their public reference data: MAST-U grid and equilibrium (largest difference 2.0e-5, tolerance 1e-4), MAST equilibrium with coils (1.2e-10), and one implicit tearing-mode step (4.1e-13, tolerance 1e-12); the full-MHD kink case was not run because its upstream input is out of date for this code version measured spec/reviews/jorek-j1-build.json
scripts/jorek/build_config.sh and scripts/jorek/run_regcase.sh for each case
1de9a46
C-211 On the target CPU nodes the regression cases pass and one implicit step on the MAST-U X-point grid costs about 6 s at 32 cores
three steps per layout, timing only; first step includes the matrix factorisation
all three regression cases pass on a 256-core AMD node; one implicit step on the MAST-U X-point grid (8050 elements, toroidal modes n = 0 and 1) takes 5.8 s at 2 ranks x 16 threads, 6.7 s at 4 x 32 and 8.1 s at 2 x 64; the whole job used 22.4 core-hours measured spec/reviews/jorek-j2-cost.json
scripts/jorek/j2_cost.sbatch (one CPU node, at most one hour)
c05b9fc
C-212 Threaded JOREK runs intermittently abort in grid set-up and are not bitwise repeatable; single-threaded runs repeat exactly
small samples; cause inside JOREK not identified
an assertion in the element search tree aborts 3 of 8 grid set-up runs at 8 OpenMP threads and 0 of 8 at 1 thread; two 4-thread runs of the same input differ at round-off, while 1-thread runs repeat bit for bit measured spec/reviews/jorek-j2-cost.json; spec/reviews/jorek-j3-adapter.json
part B of scripts/jorek/j2_cost.sbatch; repeat runs of the MAST-U grid case
c05b9fc
C-213 The toolkit's JOREK unit conversion reproduces the time and resistivity units JOREK stores
uses the constants of the pinned JOREK version
time and resistivity units computed by the toolkit match the values JOREK stored in three restart files to 1e-15 relative tested tests/unit/test_jorek_adapter.py::test_normalisation_matches_values_jorek_stored
pytest tests/unit/test_jorek_adapter.py
c05b9fc
C-214 A JOREK input rewritten by the toolkit gives a restart file identical to the original input's
exact (bitwise) at one OpenMP thread
the MAST-U input (356 entries) parsed and rewritten by the toolkit gives, with one thread, a restart file identical in every dataset to a run of the original input measured spec/reviews/jorek-j3-adapter.json
parse and rewrite the input with tkit.adapters.jorek, run jorek_model303 with OMP_NUM_THREADS=1, h5diff the restart files
0a5553c
C-215 JOREK adapter and runner tests pass in normal and Tier-A-only modes
fake executables only for the runner; no JOREK needed
26 tests pass in normal and Tier-A-only modes: unit conversion, profile files, namelists, the energy reader, and the runner with fake executables (snapshots, retry, timeout, provenance) tested tests/unit/test_jorek_adapter.py, tests/unit/test_jorek_run.py, tests/tier_a
pytest tests/unit/test_jorek_adapter.py tests/unit/test_jorek_run.py tests/tier_a (also with TKIT_TIER_A_ONLY=1)
c05b9fc
C-217 The approved projected MAST-U reference stopped at its unchanged heat-flux limit
six significant figures in the exception; triggering face, state and channel unavailable
the projected-reference job failed after 108 s when the log reported 3.93119 gB against the 1 gB stop limit; no completed reference was saved measured reviews/m4-mastu-code-review-20261024.json
read the consumed job log and compare native terminal accounting; do not rerun the solver
None
C-216 JOREK reproduces the ITER hybrid EQDSK safety factor in the core but not yet at the edge
one grid and boundary choice; no acceptance tolerance agreed yet (OQ-39)
Superseded by C-221
JOREK solving the ITER hybrid equilibrium from the TORAX EQDSK matches its safety factor q to 0.4% (median) for normalised flux 0.1-0.5, but is 3.6% high for 0.5-0.9 and 5.8% high for 0.9-0.95 (q 5.12 vs 4.67 at 0.95); plasma current 12.06 vs 11.77 MA superseded spec/reviews/jorek-j3-eqdsk-iter.json
eqdsk2jorek (smth 3e-5) on iterhybrid_cocos02.eqdsk, toolkit-written temperature file, jorek_model303 n_tor=1, nstep 0
c05b9fc
C-220 JOREK ITER hybrid equilibrium on the EQDSK separatrix, 40 x 64 grid
OQ-39 decision 2: q within 2% for psi_N 0.1-0.95, I_p within 1%; fixed boundary at the separatrix
I_p −1.38%, largest q difference 1.1%: fails the current tolerance measured spec/reviews/jorek-j5-iter-equilibrium.json
scripts/jorek/iter_lcfs_input.py, then JOREK model303 equilibrium only (nstep 0) on the EQDSK separatrix, n_flux 40, n_tht 64
2d48956
C-221 JOREK ITER hybrid equilibrium on the EQDSK separatrix, 80 x 128 grid (used for the n-scans)
OQ-39 decision 2: q within 2% for psi_N 0.1-0.95, I_p within 1%; fixed boundary at the separatrix
I_p −0.93%, largest q difference 1.1%, q 4.668 against 4.668 at psi_N 0.95: passes the tolerance of q within 2% and I_p within 1% measured spec/reviews/jorek-j5-iter-equilibrium.json
scripts/jorek/iter_lcfs_input.py, then JOREK model303 equilibrium only (nstep 0) on the EQDSK separatrix, n_flux 80, n_tht 128
2d48956
C-222 JOREK ITER hybrid equilibrium on the EQDSK separatrix, 160 x 256 grid (grid check)
OQ-39 decision 2: q within 2% for psi_N 0.1-0.95, I_p within 1%; fixed boundary at the separatrix
I_p −0.20%, largest q difference 1.1%: passes measured spec/reviews/jorek-j5-iter-equilibrium.json
scripts/jorek/iter_lcfs_input.py, then JOREK model303 equilibrium only (nstep 0) on the EQDSK separatrix, n_flux 160, n_tht 256
2d48956
C-223 JOREK case (a) n = 12 pedestal mode, linear growth rate at dt 1 on 80 x 128
converged in dt (C-227); grid check not run, so not quotable under OQ-39 decision 7: quoted only if halving dt and doubling the grid each change gamma by at most 5%
γ√(μ₀ρ₀) 0.0440 (γ 8.3 × 104 s⁻¹), peak at psi_N 0.975, γ/ω* 0.23 preliminary spec/reviews/jorek-j5-iter-case-a-job2.json
python scripts/jorek/j5_growth.py <case dir> <runs> (energy band 1e-15..1e-7)
1312c27
C-224 JOREK case (a) n = 16 pedestal mode, linear growth rate at dt 1 on 80 x 128
converged in dt (C-227); grid check not run, so not quotable under OQ-39 decision 7: quoted only if halving dt and doubling the grid each change gamma by at most 5%
γ√(μ₀ρ₀) 0.0374 (γ 7.1 × 104 s⁻¹), peak at psi_N 0.975, γ/ω* 0.14 preliminary spec/reviews/jorek-j5-iter-case-a-job2.json
python scripts/jorek/j5_growth.py <case dir> <runs> (energy band 1e-15..1e-7)
1312c27
C-225 JOREK case (a) core modes n = 1, 2, 3, 5 at the q minimum of the reversed-shear EQDSK q profile
not convergence-checked (they do not bear on the pedestal question); case (a) core pressure is overstated (C-239)
γ√(μ₀ρ₀) 0.012–0.028, peak at psi_N 0.12–0.18, where q has its minimum of about 1.11 preliminary spec/reviews/jorek-j5-iter-case-a-job2.json
python scripts/jorek/j5_growth.py <case dir> <runs> (energy band 1e-15..1e-7)
1312c27
C-226 JOREK case (a) axis modes n = 8 and 20
fail the dt check (C-228); probably numerical
γ√(μ₀ρ₀) 0.028 and 0.033, confined to psi_N below 0.02 preliminary spec/reviews/jorek-j5-iter-case-a-job2.json
python scripts/jorek/j5_growth.py <case dir> <runs> (energy band 1e-15..1e-7)
1312c27
C-227 Halving the JOREK time step leaves the case (a) pedestal growth rates within 5%
OQ-39 decision 7: quoted only if halving dt and doubling the grid each change gamma by at most 5%; location class unchanged; grid half of the check not run
n = 12: 0.04397 → 0.04397 (−0.01%); n = 16: 0.03744 → 0.03633 (−2.94%); both within the 5% tolerance measured spec/reviews/jorek-j5-job3-result.json
python scripts/jorek/j5_convergence.py (job 2704714 against job 2688559)
c93d5a2
C-228 Halving the JOREK time step moves the case (a) axis-mode growth rates by more than 5%
OQ-39 decision 7: quoted only if halving dt and doubling the grid each change gamma by at most 5%
n = 8: 0.02810 → 0.02967 (+5.56%); n = 20: 0.03300 → 0.03473 (+5.27%); both outside the 5% tolerance measured spec/reviews/jorek-j5-job3-result.json
python scripts/jorek/j5_convergence.py (job 2704714 against job 2688559)
c93d5a2
C-229 Cost of the JOREK axisymmetric start on the doubled 160 x 256 grid
one job; the linear-run cost on this grid is an estimate scaled from it, not measured
about 126 s per step against 9.7 s on 80 x 128 (13x); timed out after 43 of 50 steps, so no doubled-grid linear run started measured spec/reviews/jorek-j5-job3-result.json
branch B of scripts/jorek/j5_iter_a_job3.sbatch
c93d5a2
C-230 JOREK's GMRES abort exits with code 0; every case (a) linear run ended on it after its linear phase
the abort follows the linear phase in every run
8 of 8 case (a) runs ended on the GMRES abort with exit code 0; a test now checks that such a run is recorded as solver_aborted and not retried tested spec/reviews/jorek-j5-iter-case-a-job2.json; tests/unit/test_jorek_run.py::test_gmres_abort_with_exit_zero_is_not_completed
pytest tests/unit/test_jorek_run.py
1312c27
C-231 Consistency of the JOREK case (a) growth-rate fits
energy band 1e-15..1e-7 chosen after inspecting the traces
half-window and magnetic/kinetic fits agree within 1.1% (tolerance 2%) in all 8 runs; moving the energy band one decade either way changes γ by at most 0.6% measured spec/reviews/jorek-j5-iter-case-a-job2.json
python scripts/jorek/j5_growth.py <case dir> <runs> (energy band 1e-15..1e-7)
1312c27
C-232 Idle core-hours in JOREK job 2704714 from a batch-script wait bug
from scheduler accounting and the run end times
about 290 of 1046 core-h: after the last run ended the script waited on its watchdog (an empty wait list became a bare wait); fixed in both job scripts measured spec/reviews/jorek-j5-job3-result.json
sacct for job 2704714
c93d5a2
C-233 JOREK case (b) equilibrium from the TORAX state, FF' x 0.947 with under-relaxation 0.5
OQ-40 (a) acceptance: I_p within 1%, p(psi_N) as TORAX by construction
I_p 10.501 MA against TORAX's 10.5 MA (+0.01%), converged in 43 iterations; on 160 x 256 −0.07% with q equal to about 1e-5 measured spec/reviews/jorek-j5-iter-case-b-ip.json
python scripts/jorek/j5_case_b_ip.py 0.947 <out> 0.5
a3713dd
C-234 Without under-relaxation the JOREK case (b) Grad-Shafranov iteration does not converge
case (a) converges to 7e-7 in 15 iterations with the same settings
the iteration cycles between two states for all 200 iterations (axis moves about 5 mm, residual about 7e-3); I_p +3.7% at FF' x 1, −0.0002% at x 0.952, neither converged measured spec/reviews/jorek-j5-iter-case-b-ip.json
python scripts/jorek/j5_case_b_ip.py <k> <out>
5c58ecb
C-235 Safety factor of the accepted JOREK case (b) equilibrium against TORAX
reported as a known inconsistency of the fixed-geometry TORAX state (OQ-40 (a)), not an acceptance test
median q difference +10.7% (psi_N 0.1–0.5), +3.2% (0.5–0.9), −4.9% (0.9–0.95); q95 4.64 against 4.89, q_min 1.84 against 1.64 measured spec/reviews/jorek-j5-iter-case-b-ip.json
python scripts/jorek/j5_case_b_ip.py 0.947 <out> 0.5
5c58ecb
C-236 JOREK case (b) n-scan, first job: how the runs ended
dt 1, 80 x 128, 32 cores per n
no GMRES abort: all 8 runs reached the job time limit at t ≈ 4790 (about 4770 steps); final energies 1e-24 to 1e-20, below the 1e-15..1e-7 fit band, so no γ is fitted measured spec/reviews/jorek-j5-case-b-job1.json
scripts/jorek/j5_iter_b_job1.sbatch; python scripts/jorek/j5_growth.py
acd794b
C-237 JOREK case (b) n = 20: late local growth rate
local rate from 0.5 ln E, not a band fit; no convergence check yet
γ√(μ₀ρ₀) ≈ 0.0029, steady over t 4000–4771; flow perturbation peaks at psi_N 0.95–1 preliminary spec/reviews/jorek-j5-case-b-job1.json
python scripts/jorek/j5_growth.py <case dir> lin_n20
acd794b
C-238 JOREK case (b) n <= 16: late local growth rates
local rates over windows of 370 time units; still changing at the end of the job
at t ≈ 4400: n = 1–8 −0.0003 to −0.0001 (decaying), n = 12 +0.00029, n = 16 +0.00173 (rising) preliminary spec/reviews/jorek-j5-case-b-job1.json
python scripts/jorek/j5_growth.py <case dir> <runs>
acd794b
C-239 Total axis temperature T_e + T_i of the two JOREK cases
case (a) is a higher-pressure state than TORAX at 80 s
66.6 keV in case (a) (EQDSK pressure split by TORAX density) against 14.4 keV in case (b) (TORAX at 80 s) measured spec/reviews/jorek-j5-iter-case-a.json; spec/reviews/jorek-j5-iter-case-b-equilibrium.json
scripts/jorek/j5_iter_case.py a / b
1312c27
C-240 Read-only screen of the OQ-38 projection rule over the 40 saved MAST-U reference states
fluxes inferred by inverting TORAX's conversion, not direct TGLF outputs; a projected run diverges from the saved trajectory after its first served projection
150 negative raw heat diffusivities at 19 faces; 46 would reach the 1 gB stop, at 31 of 40 states, the first at state 1 measured reviews/m4-mastu-projection-screen.json
python -m scripts.m4_mastu_projection_screen (saved outputs only, no solver)
a25e88d
C-241 Projections reaching the 1 gB stop on faces the projected reference would serve
same limits as C-240
26 would be served, the first at state 4 (faces 11 and 12, ion, −8.0 and −33.8 gB); near the axis the projected magnitude reaches 6020 gB measured reviews/m4-mastu-projection-screen.json
python -m scripts.m4_mastu_projection_screen (saved outputs only, no solver)
a25e88d
C-242 Descriptive distance between the retrained MAST-U candidate and the guarded historical reference
descriptive only: the reference is the guarded TGLF/fallback hybrid, so this is not an R6 gate result
T_e 32.0%, T_i 41.5% on the 14 faces where both serve TGLF, against the 15% limit measured reviews/m4-mastu-projection-screen.json
python -m scripts.m4_mastu_projection_screen (saved outputs only, no solver)
a25e88d
C-243 Case (b) n-scan, second job (continuation to t ~ 9600); no growth below n = 12
"no measurable growth by t" is not a stability statement; pre-registered window rule (rule b)
the continuation job ran all eight n to its time limit (t ≈ 9470–9670) with no solver abort; n = 1, 2, 3, 5 and 8 show no measurable growth by t ≈ 9671 (under 6 decades above their minimum energy) measured spec/reviews/jorek-j5-case-b-job2.json
python scripts/jorek/j5_growth.py --rule b <case_b_dir> <job_2705885>/lin_n*
fda0aea
C-244 Case (b) growth rates of the three pedestal modes at 80 x 128, dt = 1
not converged under decision 7: time-step check running (job 2706556), grid check open (OQ-43); fixed boundary at the separatrix
Superseded by C-251
γ√(μ₀ρ₀) = 0.00218 (n = 12), 0.00192 (n = 16) and 0.00288 (n = 20), all with the flow perturbation peaked at ψ_N 0.925–0.975; fits over 2400–3400 points, half-window and magnetic/kinetic fits agreeing within 0.6%, and shifting the fit band by a decade changes γ by under 1e-4 preliminary spec/reviews/jorek-j5-case-b-job2.json
python scripts/jorek/j5_growth.py --rule b <case_b_dir> <job_2705885>/lin_n*
fda0aea
C-245 Case (b) pedestal modes are far below the EPED-like diamagnetic threshold
same as C-244; ω*ᵢ from p_i = p/2 and a cylindrical formula
γ/ω*ᵢ = 0.054 (n = 12), 0.036 (n = 16), 0.043 (n = 20), against the EPED-like threshold 0.25; ω*ᵢ is an estimate from the profiles, not a JOREK output preliminary spec/reviews/jorek-j5-case-b-job2.json
as C-244
fda0aea
C-246 Cost of a case (b) grid check from round-off on the doubled grid
estimate: the 160 × 256 linear step cost is not yet measured (case (a) axisymmetric step 126 s)
repeating the slow emergence (4 decades only by t ≈ 4700–6900) plus a fit window on 160 × 256 means about 7000–9000 steps per mode, about 60–190 h at an estimated 30–75 s per step, so 10–32 chained jobs for the three modes run together preliminary spec/OPEN_QUESTIONS.md OQ-43; spec/reviews/jorek-j5-case-b-job2.json
arithmetic from the job-2705885 energy traces and the measured step costs
c84b4cc
C-247 V4 monotonicity proofs for the baseline ITER and MAST-U transport ensembles
structural checks plus auto_LiRPA IBP on independent activation slopes in [0,1]; float64 real-network sign property, not physical validation or IEEE rounding verification
all 20 members of each ensemble pass both heat-flux monotonicity properties, with derivative lower bound zero over the full training box measured reviews/m4-monotonicity-v1/audit.json
PYTHONPATH=src python scripts/m4_transport_monotonicity.py --out-dir NEW_DIRECTORY
7e5b550 plus V4 working-tree source hashes in the certificate provenance
C-248 Time-step check of the three case (b) pedestal modes
pre-registered comparison (fit windows of about 2100–2350 time units, from 100 after the snapshot); grid check open (OQ-43)
restarting n = 12, 16 and 20 from the same saved state at Δt = 1 and Δt = 0.5 changes γ by 1.3e-5, 9.6e-5 and 7.9e-5, against the 5% tolerance of decision 7; the location stays at the pedestal in both runs measured spec/reviews/jorek-j5-case-b-job3-result.json
python scripts/jorek/j5_dt_check.py spec/reviews/jorek-j5-case-b-job3-inputs.json <job_2706556>
2239696
C-249 Repeatability of a case (b) linear run restarted from a saved state
control only; OpenMP runs are not bitwise repeatable
the Δt = 1 restarts reproduce the original job's growth rate over the shared window to 9e-10–3e-8 measured spec/reviews/jorek-j5-case-b-job3-result.json
as C-248
2239696
C-250 Axisymmetric start of case (b) on the doubled grid
axisymmetric (n = 0) steps only; the linear step cost on this grid is not yet measured
50 axisymmetric steps on the 160 × 256 grid in 40 min on 64 cores; the state passed its health check and is kept as the start for a grid check measured spec/reviews/jorek-j5-case-b-job3-result.json
part B of scripts/jorek/j5_iter_b_job3.sbatch
aca9988
C-251 Case (b) growth rates of the three pedestal modes, converged in time step
grid check open (OQ-43); 80 × 128 grid; fixed boundary at the separatrix stabilises peeling modes
γ√(μ₀ρ₀) = 0.00218 (n = 12), 0.00192 (n = 16) and 0.00288 (n = 20), flow perturbation peaked at ψ_N 0.925–0.975; converged in time step (C-248) preliminary spec/reviews/jorek-j5-case-b-job2.json; spec/reviews/jorek-j5-case-b-job3-result.json
as C-244 and C-248
2239696
C-256 V7 split-conformal coverage of the transport surrogates on test data drawn like the calibration split
marginal coverage; absolute score in signed-log space, so coverage is lower where |flux| > 1 gB (0.86–0.90 on v1 test); points inside the training box only
90% intervals calibrated on the v1 validation split cover 0.887–0.907 on the v1 test and v2-random splits (6 outputs, ITER and MAST-U); 9 of 12 lie in the 0.893–0.907 range expected for exchangeable data, the other three miss it by at most 0.006 measured reviews/m4-conformal-v1/transport-iter.json; reviews/m4-conformal-v1/transport-mastu.json
PYTHONPATH=src python scripts/m4_conformal.py --out-dir NEW_DIRECTORY
c19dc7d
C-257 V7 transport intervals on held-out TORAX trajectory states (v3 test)
valid but conservative on loop states; a loop-state calibration awaits OQ-44
the same intervals cover 0.996–1.000 of the v3 test states; there the half-width that would give 90% is 3.3–5.5 times smaller in signed-log units (ITER Q_e 0.48 against 2.21) measured reviews/m4-conformal-v1/transport-iter.json; reviews/m4-conformal-v1/transport-mastu.json
as C-256
c19dc7d
C-258 V7 split-conformal coverage of the EC surrogate on its eight held-out runs
marginal coverage; states within a run are correlated, so the effective calibration sample is smaller than 190; per MW injected
90% intervals calibrated on 190 guard-accepted validation states (4 runs) cover 0.876–0.978 of 548 served test states (8 runs); all six outputs lie within or above the 0.856–0.938 range expected for exchangeable data; per-run coverage 0.78–1.00 measured reviews/m4-conformal-v1/ec.json
as C-256
c19dc7d
C-259 OQ-44 (b) loop-state transport half-widths against the V7 box-wide ones
signed-log training space; split rule fixed in 57f82c7 before any loop-state residual was computed
calibrated on half of the held-out v3 trajectory runs, the 90% half-widths are 0.21–0.32 of the V7 values; the intervals span a factor 1.8–3.3 on 1 + abs(flux) instead of 9–60 measured reviews/m4-conformal-loop-v1/transport-iter.json; reviews/m4-conformal-loop-v1/transport-mastu.json
PYTHONPATH=src python scripts/m4_conformal.py --out-dir NEW_DIRECTORY --loop-from reviews/m4-conformal-v1
57f82c7
C-260 MAST-U loop-state transport coverage, both directions
marginal; states within a run are correlated, so the exchangeable range (0.890–0.910) understates the spread
calibrated on 16 held-out runs and tested on the other 16, coverage is 0.870–0.894; the reverse direction gives 0.905–0.924; single runs 0.75–0.97 measured reviews/m4-conformal-loop-v1/transport-mastu.json
as C-259
57f82c7
C-261 ITER loop-state transport coverage depends on which runs calibrate it
8 held-out ITER runs only; run-to-run differences break exchangeability
calibrated on 4 held-out runs, the intervals cover 0.936–0.966 of the other 4; calibrated the other way they cover 0.711–0.818; not reliable for a new ITER run measured reviews/m4-conformal-loop-v1/transport-iter.json
as C-259
57f82c7
C-262 V5 EC member output bounds over each full launcher-family input box
four-leaf input budget; fresh JAX parity; physical clamps included; sampled extrema enclosed; float64, not directed rounding or physical validation
all five EC members have finite CROWN bounds for both launcher families; current and width bounds remain very loose measured reviews/m4-output-bounds-v1/audit.json
PYTHONPATH=src python scripts/m4_output_bounds.py ec --out NEW_FILE --max-leaves 4 --seconds 30
2f9a2a9; exact frozen proof source hashes in the certificate provenance
C-263 V5 pedestal bounds over the widened ITER diagnostic trajectory box
48 saved output states; margin 1% of each upstream range, upper margins of a and m clipped; four-leaf budget; float64 real-network calculation, not physical validation
all nine pedestal pressure and half-width pairs have finite bounds over the recorded ITER trajectory box, with the widening and domain clipping stated measured reviews/m4-output-bounds-v1/pedestal-iter.json
PYTHONPATH=src python scripts/m4_output_bounds.py pedestal-iter --out NEW_FILE --max-leaves 4 --seconds 30 --trajectory reviews/m4-output-bounds-v1/trajectory/epednn.json
2f9a2a9; exact frozen proof source hashes in the certificate provenance
C-264 V5 transport physical bounds remain unresolved within the initial splitting budget
full stored input boxes; four-leaf budget per member; original model and guard unchanged; numerical proof failure does not establish a physical counterexample
all twenty members of each transport ensemble have finite training-space bounds that overflow the inverse signed-log transform; no finite physical guard domain is certified measured reviews/m4-output-bounds-v1/audit.json
PYTHONPATH=src python scripts/m4_output_bounds.py transport-iter --out NEW_FILE --max-leaves 4 --seconds 30; repeat with transport-mastu
2f9a2a9; exact frozen proof source hashes in the certificate provenance
C-265 Optimized ITER transport training-space bound widths relative to the initial CROWN run
same complete box and weights; alpha-CROWN with one leaf versus earlier CROWN with four; inverse signed-log still overflows; no isolated optimizer speed or accuracy claim
median width 0.164 of the earlier bound, range 0.082–0.605 across member outputs; all twenty physical member results remain unknown measured reviews/m4-output-bounds-alpha-v1/audit.json
PYTHONPATH=src python scripts/m4_output_bounds.py transport-iter --out NEW_FILE --method alpha-CROWN --iterations 3 --optimization-seconds 5 --max-leaves 1 --seconds 30
58cee24 base plus frozen experiment source; exact source hashes in request.json and certificate provenance
C-266 Optimized MAST-U transport training-space bound widths relative to the initial CROWN run
same complete box and weights; alpha-CROWN with one leaf versus earlier CROWN with four; inverse signed-log still overflows; no finite physical guard domain
median width 0.114 of the earlier bound, range 0.060–0.220 across member outputs; all twenty physical member results remain unknown measured reviews/m4-output-bounds-alpha-v1/audit.json
PYTHONPATH=src python scripts/m4_output_bounds.py transport-mastu --out NEW_FILE --method alpha-CROWN --iterations 3 --optimization-seconds 5 --max-leaves 1 --seconds 30
58cee24 base plus frozen experiment source; exact source hashes in request.json and certificate provenance
C-267 Retained alpha-CROWN transport experiment budgets and completion
optimizer and member budgets checked between operations; setup and an in-progress iteration can exceed the soft limits; completion is not a successful physical certificate
three optimizer iterations, a five-second soft budget per bound side and one leaf per member; both twenty-member runs finished within the nine-minute hard process limit measured reviews/m4-output-bounds-alpha-v1/request.json; reviews/m4-output-bounds-alpha-v1/transport-iter-execution.json; reviews/m4-output-bounds-alpha-v1/transport-mastu-execution.json
as C-265 and C-266, using the frozen source snapshot
58cee24 base plus frozen experiment source; exact source hashes in request.json and certificate provenance
C-268 Direct-ELU transport output-bound pilot remains unresolved
same full boxes, model weights and property; one leaf; unoptimized direct-ELU CROWN intersect IBP versus earlier optimized alpha-CROWN; not a controlled graph comparison; other 38 members not attempted
member 0 of each ensemble remains unknown; both processes complete in about 23 seconds, with physical inverse-transform overflow and looser intervals than the earlier optimized run measured reviews/m4-output-bounds-native-elu-v1/audit.json
PYTHONPATH=src python scripts/m4_native_transport_bounds.py transport-iter --out NEW_FILE --members 0 --max-leaves 1 --seconds 30; repeat with transport-mastu using frozen source
exact frozen source and model hashes in request.json and certificate provenance
C-269 Focused direct-ELU relaxation, export parity and bound-helper validation
twelve new analytic-relaxation/native-export checks plus twenty-eight bound-helper checks; no fresh full-suite execution claimed; parity rtol=atol=1e-12
40 focused checks pass in both normal and Tier A modes; lint, formatting and typing pass measured reviews/m4-output-bounds-native-elu-v1/validation.json
pytest tests/unit/test_verify_native_elu.py tests/unit/test_verify_bounds.py; repeat with TKIT_TIER_A_ONLY=1
final implementation and validation hashes in validation.json
C-270 Memory of one linear JOREK run on the doubled grid
measured as the drop in the node's available memory until each run's first step completes; steady level about 222 GB
one linear run on the 160 × 256 grid peaks at 234–238 GB during its first step (270 GB with 4 processes × 32 threads), about four times the 80 × 128 run; two runs fit on one node measured spec/reviews/jorek-j5-case-b-grid-cost.json
link.log of jobs 2711025 and 2711184 (scripts/jorek/j5_iter_b_grid.sbatch)
1ff9d6a
C-271 Step cost of a linear JOREK run on the doubled grid by process layout
median of steps 20–200 per run; the first step, which factorises the preconditioner, takes 4–6 min; one node type
a linear step on the 160 × 256 grid takes 6.1 s with 4 processes × 32 threads, 11.2 s with 2 × 64 and 16 s with 2 × 32 (two runs per node); on 80 × 128 it takes 4.2 s with 2 × 16 measured spec/reviews/jorek-j5-case-b-grid-cost.json
per-step 'Elapsed time ITERATION' in each run's stdout.log, jobs 2711025, 2711184 and 2706556
47527df
C-272 Optimized direct-ELU transport pilot tightens intervals but physical bounds remain unknown
member 0 of each unchanged baseline ensemble; complete stored boxes; one leaf; twelve optimizer iterations with ten soft seconds per bound side; original parity rtol=atol=1e-12; other 38 members not attempted
both selected members remain unknown despite interval-width reductions of about 30–275 times against the same-graph fixed-tangent baseline; physical inverse-transform overflow persists measured reviews/m4-output-bounds-native-elu-alpha-v1/audit.json
use archived source and request.json with scripts/m4_native_transport_bounds.py --method alpha-CROWN --members 0 --max-leaves 1 --seconds 60 --iterations 12 --optimization-seconds 10 and a new output path, for each transport ensemble
exact frozen source and model hashes in request.json and output provenance
C-273 Optimizable ELU relaxation and bound-helper validation
analytic global tangents including zero slope, finite gradients, both objective signs, exact intervals, failure evidence retention, graph parity and bound helpers; focused execution, not a fresh full-suite run
50 focused checks pass normally and with Tier B disabled; repository lint, formatting and typing of all 91 source modules pass measured reviews/m4-output-bounds-native-elu-alpha-v1/audit.json
pytest tests/unit/test_verify_native_elu.py tests/unit/test_verify_bounds.py; repeat with TKIT_TIER_A_ONLY=1
frozen source and retained validation hashes in request.json and audit.json
C-274 Intermediate propagation does not resolve the transport output pilot
same member 0, full boxes, models and properties; one leaf; at most twelve iterations and ten soft seconds per side; different early stopping counts prevent a controlled final-optimizer comparison; no ensemble expansion
both selected transport members remain physically unknown; largest baseline activation widths fall to 0.246 and 0.449 of the preceding pilot, but inverse signed-log overflow persists measured reviews/m4-next-steps-v2/audit.json
use frozen request and source; scripts/m4_native_transport_bounds.py with --tighten-intermediate --method alpha-CROWN --members 0 --max-leaves 1 --seconds 60 --iterations 12 --optimization-seconds 10 and fresh output paths
source/model hashes in the v1 archive and corrected v2 request
C-275 Exact EC loop-state features retained for robustness and reference preparation
existing surrogate scenarios run once per launcher; independent feature reconstruction and inference parity at rtol=atol=1e-12; no GENRAY comparison or new transport acceptance result
30 upper-launcher states (29 served) and 27 equatorial-launcher states (16 served) retain exact features, profiles, outputs, model identity, configurations and guard decisions measured reviews/m4-next-steps-v2/audit.json
scripts/m4_ec_states.py for each launcher with new output paths using the frozen source and model; do not repeat consumed recordings for an audit
frozen v1 request and trace provenance; independent v2 audit
C-276 Every prescribed EC local robustness box leaves the training domain
complete symmetric boxes with one-percent training-range half-width; launcher flag fixed; no clipping; unchanged 0.05 centre-change tolerance; Z_eff and launcher R/Z boundary crossings retained
all 57 complete EC local boxes are out of domain, including all 45 served states; zero robustness proofs or model counterexamples are claimed measured reviews/m4-next-steps-v2/audit.json
reconstruct local boxes from the recorded traces and stored verified/ec/v1/box.json using scripts/m4_ec_robustness.py; no TORAX rerun needed
v2 frozen source, property and trace bindings; K-034 and OQ-45
C-277 Next-step verifier and EC robustness tooling checks
intermediate activation enclosures, existing bound helpers, complete local boxes, trace binding, real counterexample semantics, raw ensemble averaging and collision refusal; not a fresh full-suite execution
70 focused checks pass normally and with Tier B disabled; lint, formatting and typing of all 92 source modules pass measured reviews/m4-next-steps-v2/validation.json
pytest tests/unit/test_verify_native_elu.py tests/unit/test_verify_bounds.py tests/unit/test_verify_local_robustness.py; repeat with TKIT_TIER_A_ONLY=1
frozen implementation and retained validation source hashes
C-278 Deterministic EC closed-loop reference state selection prepared
selection independent of errors and guard decisions; trace hashes, state indices, times and launch settings retained; complete solver input/resource package remains to be frozen
twenty output states per launcher are selected at evenly spaced indices for the later GENRAY comparison; no reference solver execution or accuracy result measured reviews/m4-next-steps-v2/v9-state-manifest.json
select_states in tkit.verify.local_robustness on each retained trace state count; verify against the bound manifest
v2 independent audit and manifest provenance
C-279 Complete EC loop-state GENRAY reference package frozen
unchanged 10% per-case absorbed-power and signed-current errors; all references required; served and rejected predictions reported separately; fixed-equilibrium K-028 limitation retained
forty decks bound to the unchanged selection, exact model and traces, frozen source, equilibrium, executable and runtime; eight workers with a thirty-minute hard limit measured reviews/m4-ec-reference-v1/request.json
tkit.verify.ec_reference prepare on the retained V9 selection with a new package path; preflight using its frozen source before any solver execution
exact executed source and input hashes in the immutable request and source snapshot
C-280 EC reference packaging and comparison validation
focused V9 and existing GENRAY plumbing tests; synthetic references and fake executables; not a fresh full-suite execution or physical accuracy result
40 affected tests pass normally and with Tier B disabled; repository lint, formatting, typing of 93 modules and batch syntax pass measured reviews/m4-ec-reference-v1/normal.xml and tier-a.xml
pytest tests/unit/test_verify_ec_reference.py tests/unit/test_genray_ec.py; repeat with TKIT_TIER_A_ONLY=1
source snapshot plus final test/source hashes in the validation record
C-281 EC loop-state power and current pass the fixed-equilibrium reference criterion
twenty preselected states per launcher; all references complete; nine rejected predictions diagnostic only; existing fixed-equilibrium K-028 scope, not an equilibrium-matched reference trajectory, blind generalization test or certification
40/40 cases pass the unchanged 10% power and signed-current limits, including 31/31 served states; maximum current error 9.606% EL and 7.393% UL, maximum power error 0.07483% EL and 0.02599% UL measured reviews/m4-ec-reference-v1/comparison.json and audit.json
audit the retained native outputs with reviews/m4-ec-reference-v1/audit.py using the frozen source; do not repeat consumed job 2717996
exact request, executed source and model hashes plus independent audit and terminal accounting
C-282 ITER loop-state transport coverage with 24 new held-out runs (OQ-44 (c))
method and reading rule fixed in request.json before job 2719575 ran; pooled states are mostly L-mode (8554 of 9997)
calibrated on 24 new held-out ITER runs, the 90% intervals cover 0.850, 0.900 and 0.877 of the v3 test states (GAMMA_e, Q_e, Q_i); the reverse direction gives 0.932, 0.899 and 0.919; the frozen bar of 0.85 is missed by 0.00005 on GAMMA_e measured reviews/m5-iter-loop-calibration-v1/result/transport-iter.json
python scripts/m5_iter_loop_calibration.py --out-dir NEW_DIRECTORY (after job 2719575's outputs in $WORK/vgopakum/m5_iter_loop_calibration_v1)
32e6c44
C-283 ITER loop-state transport coverage on the hybrid flat-top family
1266 hybrid test states from four v3 runs; run-level spread is large
on the hybrid flat-top states the pooled intervals cover 0.838, 0.799 and 0.788 (GAMMA_e, Q_e, Q_i); one v3 hybrid run reaches only 0.547 on Q_i; left out one at a time, the 11 new hybrid runs average 0.76–0.81, against 0.95–0.98 for L-mode measured reviews/m5-iter-loop-calibration-v1/result/transport-iter.json
as C-282
32e6c44
C-284 Verified guard boxes and exact proof-domain audit
no numerical guard margin extends a proof box; transport output bounds remain unresolved; unchanged ordinary EC decisions do not establish certification
all four verified input boxes match the previous loaders; 48 of 48 retained pedestal states keep identical predictions and decisions; none of the 57 EC states is inside the exact proof boxes, so no EC certificate-based output check applies there measured reviews/m4-fallback-rates-v2/final/fallback-rates.json
python scripts/m4_fallback_rates.py --out-dir NEW_DIRECTORY
retained source hashes in the audit provenance
C-285 Hybrid-only ITER conformal coverage in both directions
3405 new calibration states, 1266 older report states; marginal state-weighted coverage only; some leave-one-run-out coverages remain below 0.85
hybrid calibration covers 0.914/0.915/0.904 of the older hybrid test states; the reverse audit covers 0.887/0.869/0.900; all exceed the fixed 0.85 pooled bar measured reviews/m5-hybrid-calibration-v1/transport-iter.json and audit/result.json
frozen family request and separately frozen reverse audit; do not overwrite existing records
source and input digests in the two frozen requests
C-286 Actual ITER hybrid Monte Carlo and sensitivity propagation completes
declared independent sensitivity priors and coherent transport-discrepancy law; fixed geometry; these are prior distributions, not validated prediction-error bounds
Superseded by C-292
256 of 256 Monte Carlo trajectories are finite and fine-converged; 2048 sensitivity evaluations drop no rows; fusion-power mean 165.8 MW with standard deviation 102.4 MW, thermal-energy mean 189.5 MJ with standard deviation 44.3 MJ superseded reviews/m5-iter-uq-v1/result/result.json and audit.json
independently recompute moments from result/samples.npz; frozen request identifies the executed source; do not repeat consumed job 2719682
frozen source snapshot and request digests
C-287 ITER linearised uncertainty disagrees with Monte Carlo under the declared priors
256-sample Monte Carlo; member-averaged forward Jacobians with total variance; retain the nonlinear flags and use Monte Carlo
all four outputs fail the fixed 10% standard-deviation cross-check; disagreements are 46.2%, 43.4%, 43.1% and 59.7% for fusion power, thermal energy, central electron temperature and central ion temperature measured reviews/m5-iter-uq-v1/result/result.json
crosscheck field in the frozen propagation result; driver derivative independently finite-difference checked
frozen source snapshot and request digests
C-288 Conditional reference-label Bayesian discrepancy calibration matches the exact posterior
11 hybrid run-mean TGLF residual vectors; empirical covariance treated as fixed; independent-run Gaussian working likelihood; no experimental inference or feedback into the prior study
four Metropolis chains give transport-error factor mean -0.01978, standard deviation 0.01992 and split R-hat 1.00266; exact conditional moments are -0.02033 and 0.01984 measured reviews/m5-hybrid-calibration-v1/audit/result.json
scripts/m5_hybrid_calibration_audit.py and its frozen request
script and input digests in the frozen audit request
C-289 Installed guards retain exact proof resources for external verified models
exact existing certificate bytes and sidecars; no model, input box, tolerance or physical proof is changed; the integrated study still uses its tracked source-checkout model bundle
installed-wheel EC and pedestal loaders retain their output certificates with externally copied verified directories; unresolved transport bounds remain explicitly K-033 measured reviews/pipeline-closeout/integration/contracts-normal.xml and contracts-tier-a.xml
pytest tests/unit/test_verified_guard_packaging.py
pipeline close-out source and evidence bindings
C-290 Two-direction interval gate preserves the completed ITER discrepancy widths
missing or tampered evidence is an error; a scientific coverage failure selects unchanged V7 under OQ-48; no new trajectory result or calibration fit
all three selected hybrid half-widths are unchanged; both-direction coverage and exact model/manifest/evidence bindings are rechecked before a future run measured reviews/pipeline-closeout/m5/interval-selection.json
tkit.uq.interval_selection.load_selection and the retained selector tests
selector source hash recorded in the immutable selection artifact
C-291 Independent replay retains incomplete fine-grid stability checks and invokes the existing resource projection stop
unchanged rule b and frozen decade targets; recent energy slopes are cost diagnostics, not accepted growth rates or guaranteed completion bounds
all three selected fine-grid checks remain incomplete; the measured-cost projection exceeds the existing compute envelope and further submissions stop preliminary reviews/autonomous-closeout/j5/audit-v2/audit.json and independent-review/j5-lead-review.json
python reviews/autonomous-closeout/j5/audit.py FRESH_AUDIT_DIRECTORY
inherited source baseline plus auditor and native-input hashes in the canonical audit
C-292 Retained ITER prior propagation has finite outputs and zero native linear-step error codes
historical dt = 0.1 s prior propagation; the selected linear predictor-corrector assigns zero error unconditionally; all physical uncertainty and discretization limitations remain
all 256 retained Monte Carlo outputs are finite with zero native linear-step error codes, and 2048 sensitivity evaluations drop no rows; those codes do not establish nonlinear-residual or temporal convergence measured reviews/m5-iter-uq-v1/result/result.json and reviews/autonomous-closeout/independent-review/solver-diagnostic-limitation.json
independently read retained raw quality arrays and inspect the source-bound scenario/solver selection; no trajectory rerun
historical frozen inputs plus independent upstream solver-source hashes
C-293 Complete input partitioning leaves both transport pilot physical enclosures unresolved
unchanged full stored boxes, models and transforms; fresh export/JAX and held-out physical parity; sampling cannot prove finite bounds; no directed IEEE rounding guarantee
both member-zero pilots retain overflowing physical enclosures despite complete input-box coverage; no sampled overflow witness was found, and all forty transport V5 results remain unresolved preliminary reviews/autonomous-closeout/independent-review/r1-result-v3/audit.json
python reviews/autonomous-closeout/independent-review/transport_result_audit.py reviews/autonomous-closeout/transport/partition-v2/request.json FRESH_DIRECTORY
frozen partition-v2 source snapshot and independent audit manifest
C-294 Full integrated test suites pass with independently checked source and native JUnit bindings
all 127 test files represented in each mode; all 251 manifest entries unchanged at independent review; expensive V5/V6 proofs are excluded from quick verification
1095 tests pass with two intentional heavy-proof skips in each full normal and Tier-A-only suite; lint, typing and quick verification also pass measured reviews/autonomous-closeout/integration/validation-v2/summary.json and reviews/autonomous-closeout/independent-review/source-binding-audit-v1.json
inspect native per-file JUnit and source-manifest hashes; rerun make test and make test-tier-a only when source changes require it
integrated validation-v2 source-manifest SHA-256 835b90762f28e34ceb162e169eabbd8cfc82971e53296395158455b594d5a4da
C-295 Finer paired ITER time steps remain outside the unchanged temporal convergence criterion
paired 0.025 to 0.0125 and 0.0125 to 0.00625 second steps; unchanged 33 cases, priors, members, physics and endpoint; native zero codes do not certify nonlinear residual convergence
maximum paired changes remain 19.2654% and 1.9773% across the two refinements, exceeding the fixed 1% limit; all 99 retained rows are finite with zero native linear-step error codes and no exclusions preliminary reviews/autonomous-closeout/independent-review/r2-result-v1/audit.json
python reviews/autonomous-closeout/independent-review/temporal_result_audit.py reviews/autonomous-closeout/temporal/pilot-v1/request.json FRESH_DIRECTORY
frozen temporal pilot-v1 source snapshot and independent raw-result manifest
C-296 The additional finer ITER ladder still fails both fixed temporal comparisons
paired 0.00625 to 0.003125 and 0.003125 to 0.0015625 second steps; one exact audited parent array reused and two new arrays; no excluded cases or altered physics
the additional finer ladder has maximum paired changes of 1.7092% and 1.8560%, above the unchanged 1% criterion; all 99 assessed rows remain valid and no supported replacement step is established preliminary reviews/autonomous-closeout/independent-review/r2-refinement-result-v1/audit.json
python reviews/autonomous-closeout/independent-review/temporal_result_audit.py reviews/autonomous-closeout/temporal/refinement-v1/request.json FRESH_DIRECTORY
frozen refinement-v1 request, ancestor bindings and independent raw-result manifest
C-297 Reserving final LP objectives does not establish finite transport physical bounds
finite-box stationarity corrections, exact signed objective identity and fresh original/JAX/export parity; no primal objective accepted as a bound, no directed IEEE rounding guarantee or claim of infinite real network outputs
both full-box pilots retain nonfinite physical enclosures after all final objectives run; independent graph, constraint and corrected-dual replay passes, with no finite physical candidate preliminary reviews/autonomous-closeout/independent-review/r1-reserved-result-v1/audit.json
python reviews/autonomous-closeout/independent-review/reserved_lp_result_audit.py reviews/autonomous-closeout/transport/reserved-lp-v1/request.json FRESH_DIRECTORY
frozen reserved-lp-v1 source snapshot and independent recursive raw-audit manifest
C-298 A passing first pair does not support a replacement ITER step after the finer pair fails
paired 0.0015625 to 0.00078125 and 0.00078125 to 0.000390625 second steps; both adjacent comparisons must pass for every retained case and quantity; no exclusions or changed physics
the first pair stays below 1%, but the finer pair changes fusion power by up to 4.1372% and fails three quantities; all 99 assessed rows remain valid, so no replacement step is supported preliminary reviews/autonomous-closeout/independent-review/r2-refinement-result-v2/audit.json
python reviews/autonomous-closeout/independent-review/temporal_result_audit.py reviews/autonomous-closeout/temporal/refinement-v2/request.json FRESH_DIRECTORY
frozen refinement-v2 request, exact ancestor bindings and independent raw-result manifest
C-299 The three-case ITER diagnostic identifies sustained fallback occupancy and late global balance residuals
unchanged three cases and two finest steps; all 57600 case-step observations retained; independent parent-parity and balance/domain reconstruction; global balance normalization is not a local nonlinear residual norm or causal error budget
the failing case rejects face seven on 24.766% of coarse and 82.539% of fine accepted states over (3,5] seconds; its median normalized global electron balance residual rises from 0.031813% to 0.962581% measured reviews/m5-finest-diagnosis-v1/execution-v1/RESULT.md and reviews/m5-finest-diagnosis-v1/result-audit-v1/researcher-crosscheck.json
replay the independent raw audit and analyse_run.py using the RESULT.md commands and manifest-bound retained local arrays
frozen diagnosis request-v1 and independently audited immutable executed sources
C-300 Internal coefficient guesses and accepted ITER states select different transport branches despite trajectory parity
unchanged cases 0, 20 and 29 at 0.00078125 and 0.000390625 seconds; exact cellwise canonical replay; all 57600 case-step observations retained; branch alternation does not prove persistent cycling or endpoint causation
the failing case has different last-guess and accepted-state branches on 39.453% of coarse and 73.145% of fine steps over (3,5] seconds; during (3.5,4.5] seconds all fine accepted states fall back while 84.961% of last guesses select the surrogate measured reviews/m5-internal-diagnostic-v1/independent-review/audit.json and reviews/m5-internal-diagnostic-v1/independent-review/researcher-crosscheck.json
independently replay the retained-array audit and execution-v1/analyze.py; restore the manifest-bound local arrays first
frozen internal diagnostic request-v1 plus immutable executed source copies and independent input hashes
C-301 The fixed-state face-seven branch term is substantial locally but cancels in the signed global residual
fixed-state identity over (3,5] seconds using guarded fallback shadows; norm ratios are not additive causal percentages; no alternate trajectory, established remedy or supported time step
the fine failing case has branch-term norm ratios of 0.723 for electron temperature and 0.982 for ion temperature; the signed global branch term cancels and the remaining coefficient lag carries the net defect measured reviews/m5-internal-diagnostic-v1/execution-v1/attribution.json and independent-review/researcher-crosscheck.json
python reviews/m5-internal-diagnostic-v1/execution-v1/analyze.py --result reviews/m5-internal-diagnostic-v1/request-v1/result --out FRESH_JSON
frozen internal diagnostic request-v1 and independently recomputed attribution groups
C-302 A checkpoint-only physical-residual damping prototype passes focused numerical and short real-code integration controls
three exact cases, two canonical steps at one finest step size, unchanged 1e-10 canonical trace and x0/x1/x2 parity; no full late-checkpoint or time-convergence claim
focused numerical, data-separation and short TORAX checks pass; early-time full-step labels validate plumbing, not learned benefit or a numerical remedy tested reviews/m5-damping-controller-v1/validation/summary.json
run the focused baseline/controller/TORAX tests with TKIT_RUN_DAMPING_SMOKE=1 in normal and Tier-A-only modes
implementation source snapshot bound by the focused validation manifest
C-303 Half damping further reduces a compensated physical residual at a passing coarse cycling checkpoint
case 20 at 3.75 seconds, dt 0.00078125 seconds, eight fixed-context updates; local physical three-term normalization; no trajectory or temporal-convergence claim; finer-stage original parity failure remains failed
at the matched passing coarse cycling checkpoint, the electron residual is 9.148% originally, 6.885% after compensation and 2.228% with half damping; nominal states can converge more slowly with damping preliminary reviews/m5-rhs-defect-compensation-v1/result-evaluation-v1/FINDINGS.md
run result-evaluation-v1/evaluate.py against retained request-v1 split arrays, then inspect the matched coarse case-20 checkpoint
consumed request-v1 bytes plus artifact-bound offline evaluation and focused controls; formal report review pending
C-304 The opt-in ITER research integration combines a continuous guarded transport closure, strict Newton acceptance and complete rejected-step rollback
guard domain and model weights retained; coefficient blending and particle diffusion/convection switching change the old hard-switch closure; final cellwise acceptance is enforced by the frozen research adapters, not by unchanged production defaults
the new research baseline uses a continuous guarded closure, Newton trials accepted only after residual decrease, and adaptive rollback of the complete state and auxiliary data measured reviews/m5-full-ensemble-v1/blog-review-v1.json and reviews/m5-full-ensemble-v1/request-v1/request.json
inspect the bound native executed sources, request-v1/runner.py and request-v1/advance.py; compare the complete frozen configuration with the historical hard-switch requests
full-ensemble frozen request and immutable executed-source hashes
C-305 The complete original ITER ensemble passes its five-second numerical convergence protocol under the continuous closure
nominal case and every original ensemble member retained; maximum steps 0.003125, 0.0015625 and 0.00078125 seconds; both adjacent pairs for fusion power, thermal energy and axis electron/ion temperature; 90 new trajectories plus 9 re-audited sentinels; no case exclusions
all 33 original cases reach five seconds at all three maximum-step settings: 99 of 99 valid trajectories and 264 of 264 passing endpoint comparisons measured reviews/m5-full-ensemble-v1/execution-v2/terminal-audit.json and execution-v2/result-summary.json
python reviews/m5-full-ensemble-v1/execution-v2/audit.py FROZEN_REQUEST FRESH_AUDIT --runs SHARD_0 SHARD_1 --scheduler SCHEDULER_0 SCHEDULER_1
source-bound full-ensemble request, raw audit and final result hashes
C-306 Both adjacent adaptive maximum-step comparisons stay below the declared one-percent threshold for every ensemble case and quantity
abs(coarse-finer)/max(abs(finer), float64 tiny); maximum over every retained case and all four quantities; global worst is case 32 fusion power; adaptive maximum-step sensitivity, not fixed-step convergence order or an exact-solution error bound
the largest changes are 0.219% for coarse-to-middle and 0.0423% for middle-to-fine, both below the 1% acceptance limit measured reviews/m5-full-ensemble-v1/execution-v2/terminal-audit.json
reconstruct both adjacent comparison arrays from the raw-bound endpoint QoIs; regenerate blog/figures/make_m5_convergence.py
hash-bound final full-ensemble audit and figure inputs
C-307 Every accepted ensemble step passes the declared physical and native residual gates with finite profiles, positive temperatures and density and no crash event
independent reconstruction of raw cell storage, transport and source terms, global balance gate 1e-6, exact native residual, finite profiles and positive temperatures and density and solver flags; a reset event ends this validation rather than receiving a PDE-balance exemption
maximum accepted physical-channel L1 is 1.76 × 10−9 against a 10−8 gate, and native mean L1 is 1.01 × 10−14 against 10−10; no crash occurs measured reviews/m5-full-ensemble-v1/execution-v2/terminal-audit.json
replay the raw trajectory auditor and all reporting endpoints using the bound frozen kernels
full-ensemble raw reconstruction and immutable kernel hashes
C-308 The final ensemble audit retains accepted and rejected proposals and independently checks adaptive schedules and profile rollback
complete auxiliary-state rollback is enforced by the source-bound retry kernel and synthetic controls; raw profiles independently verify cross-step continuity, with only the documented floating-point density representation allowance after accepted steps
372,141 accepted proposals and 2,659 rejected proposals are retained in 23,100 raw chunks; rejected-step rollback and retry schedules pass reconstruction measured reviews/m5-full-ensemble-v1/execution-v2/terminal-audit.json and execution-v2/terminal-raw-manifest.json
replay per-trajectory raw audits; inspect the complete retained state/post checkpoints and retry-kernel controls
full-ensemble raw audit, retained-file manifest and executed retry source
C-309 The successful research baseline freezes strict native Newton parameters separately from scientific acceptance tolerances
opt-in native TORAX integration; ghost boundary convection; the line search allows 100 steps and uses a minimum step norm of 1e-14, while 2^-40 limits continuation after an accepted step rather than imposing a line-search factor floor; scientific acceptance remains independently checked by the final frozen research adapters
backward Euler starts from the old state, disables Pereverzev stabilization, allows 40 Newton iterations and uses an internal native stop of 10−14; Armijo decrease uses 10−4, step halving and an outer-iteration continuation threshold of 2−40 measured reviews/m5-full-ensemble-v1/request-v1/request.json and reviews/m5-native-repair-v1/request-v2/executed-sources/torax_strict_newton.py full-ensemble bound solver configuration and exact executed native solver source
C-310 The full ensemble holds the continuous transport transition parameters fixed across every maximum-step comparison
identical declared transition family for all cases and caps; native radial coefficient smoothing remains fixed; no width sweep or direct particle-flux formulation is included in this result
input and wrapper transitions span 10−4 of their stored ranges, the low heat-coefficient fade spans 0.01 m²/s, upper-cap fades use 1% of the cap, and the particle switch spans 10% of its existing threshold measured reviews/m5-full-ensemble-v1/request-v1/request.json and reviews/m5-native-repair-v1/request-v2/executed-sources/torax_repair.py frozen full-ensemble transition configuration and continuous-closure source
C-311 The successful full ensemble uses bounded adaptive retries and shared raw-bound reporting endpoints
strict complete state/post rollback; stop on floor, attempt exhaustion or explicit crash; reporting summaries must exactly match retained raw endpoint quantities
each macro step allows 64 proposals down to one 4096th of its maximum step, rejects by halving and recovers by at most doubling; common reporting times are 0.1, 0.4, 1, 3, 4.25 and 5 seconds measured reviews/m5-full-ensemble-v1/request-v1/request.json and request-v1/advance.py frozen full-ensemble retry source and reporting contract
C-312 Identical-state radial controls show a nonmonotone particle-flux departure across the tested nonzero smoothing widths
original negative-side state at face 21; all six retained side states share the ordering; fixed transitions and admission/fallback, clipping, floors, patches and profiles; local operator differences, not trajectory errors or a selected physical width
the selected particle rate is 0%, 6.76754%, 9.05578% and 5.76626% less inward than the raw target at radial HWHM 0, 0.025, 0.05 and 0.1 respectively measured reviews/m5-radial-smoothing-v1/audit-recovery-v2/particle-audit.json
replay corrected radial and original flux auditors on particle request-v1
frozen radial request and audited raw-state/width controls
C-313 Radial smoothing reverses a selected particle density-direction derivative while the narrow nonzero control remains unresolved
negative-side particle state at face 21; strict branch-preserving AD/FD checks pass at widths 0, 0.05 and 0.1; no full residual Jacobian, through-switch derivative or reliable sign-restoration claim at 0.025
the target derivative is +39.9009; native values are +39.9009, +0.4076, −43.8378 and −38.8539 across the same widths; the +0.4076 value lacks strict finite-difference corroboration measured reviews/m5-radial-smoothing-v1/audit-recovery-v2/particle-audit.json
inspect selected direction and strict adjacent-stencil checks in particle-audit-flux.json
frozen radial producer AD and independent finite-difference algebra
C-314 The selected cap context already departs from its raw target before radial processing and cannot be repaired by simply removing smoothing
same-state served closure retained; raw-target departure is not an independently validated physical error or solely radial-smoothing bias; all guards and deliberate regularization remain fixed
the selected cap rate is already 96.87350% less inward than the raw target without radial smoothing, compared with 81.44208%, 63.19414% and 65.09036% at the three nonzero widths measured reviews/m5-radial-smoothing-v1/audit-recovery-v2/cap-audit.json
compare served and native rates on cap request-v2 with target magnitude as normalization
cap-only recovery with identical numerical observer AST and unchanged hard limits
C-315 Both radial-control contexts pass saved-array algebra and baseline parity with explicit incomplete strict derivative coverage
twelve components remain unresolved, eight at particle width 0.025 and four at cap width 0.1; inherited off-target nonfinite derivative masks retained; no full-face certificate, new trajectory or physics sign-off
696 observations pass algebra/invariant reconstruction and 174 baseline observations reproduce the parent evidence; 996 of 1008 derivative components and 45 of 48 complete direction sets meet the strict rule measured reviews/m5-radial-smoothing-v1/summary.json
replay both corrected radial auditors and the unchanged original strict flux auditor
request-bound raw arrays, versioned audit correction and baseline preservation
C-316 The first constrained pre-radial flux-preserving shadow improves a selected particle face while worsening complete-grid total-operator differences
selected face divides by absolute local reference; complete-grid differences divide by corresponding full reference L1 floored at 1; all six particle side states show the same ordering; operator comparisons, not experimental or trajectory errors
the selected particle-face difference falls from 5.76626% to 4.92144%, but complete-grid total rate L1 difference rises from 15.86765% to 16.23066% and divergence difference from 47.64620% to 49.04301% measured reviews/m5-flux-shadow-v1/particle-audit.json
reconstruct native/reference/shadow face rates and matrix divergence from the request-v1 arrays
frozen bounded shadow construction and separate NumPy full-operator reconstruction
C-317 A binary remap-eligibility switch creates persistent paired cap-side rate differences after native smoothing
three retained negative/positive cap pairs; only face 19 changes remap eligibility; pre-radial diffusion representation changes from near 0.366978 to 15.8269 m²/s with compensating velocity; finite-offset evidence, not a rigorous limit, global continuity proof or physical error bound
the shadow paired total-rate difference stays near 5.10177% across a hundredfold reduction in cap offset, while the baseline difference shrinks by approximately the same hundredfold factor measured reviews/m5-flux-shadow-v1/paired-boundary-check.json
reconstruct paired complete-rate L1 changes from the hash-bound cap arrays using the same negative-side reference denominator
retained native shadow arrays and explicit paired-state algebra
C-318 The bounded shadow passes local identity, constraints and new derivative checks while retaining inherited unresolved controls
unchanged strict adjacent branch-preserving AD/FD rule; pre-radial flux identity below the 1e-10 algebra gate; branch-local derivative success does not establish continuity across the remap switch or useful postprocessed behavior
174 observations pass bounds, algebra and baseline parity; all 48 new shadow derivative components pass strict corroboration; 368 of 372 combined components pass, with four inherited cap controls unresolved measured reviews/m5-flux-shadow-v1/summary.json
replay particle and cap auditors against the frozen request and retain all unresolved original components
request-bound native arrays, NumPy invariant reconstruction and baseline-preservation check
C-319 The OQ-51 baseline interval selector rederives the selected half-widths from the CP design 1 evidence and fails closed on any mismatch
primary split S1 coverage 0.898, 0.893 and 0.893 against a minimum of 0.85; S2 hits 18, 16 and 18 of 19 against a minimum of 15; reverse split also passes; marginal state-level intervals on the adopted M5 baseline only
selected half-widths 0.258, 0.401 and 0.464 for GAMMA_e, Q_e and Q_i, against 0.551, 1.041 and 1.013 for the conservative OQ-48 alternative tested tests/uq/test_baseline_selection.py (10 tests) and reviews/pipeline-closeout/m5/interval-selection-oq51.json
pytest tests/uq/test_baseline_selection.py
2f3f764
C-320 Round 1 of the OQ-46 (b) transport retraining (4 variants on each of 2 machines) has no candidate that passes both accuracy and operating-box verifiability
pre-registered targets and frozen evaluator (reviews/m4-transport-retrain-v1/README.md); split budget 300 s per box and member
none of 8 retrained candidates passes; with Jacobian penalty 1e-2 every in-domain V6 box is bounded, and without it the first V6 box fails measured cluster jobs 2769725 (training) and 2769975 (evaluation); reviews/m4-transport-retrain-v1/result/README.md
python reviews/m4-transport-retrain-v1/evaluate.py MODEL_DIR MACHINE EVAL_MODE
ed0f4b3
C-321 Round 2 (longer split budget; MAST-U penalties 2e-3 and 5e-3) has no candidate that passes
every failing split stopped at the 4096-leaf limit; uniform splitting lowered failing bounds by about 1 percent
12 of 20 ITER members bound every operating face; MAST-U Q_i error 0.345 and 0.370 against a 0.30 target measured cluster jobs 2770038 and 2770039; reviews/m4-transport-retrain-v1/round2/result/README.md
python reviews/m4-transport-retrain-v1/round2/evaluate2.py MODEL_DIR MACHINE EVAL_MODE
c22b45f
C-322 On the failing round-2 boxes, sampled network outputs are about 100 times narrower than the CROWN bounds
100000 uniform points and 100000 random vertices; post-hoc diagnostic; samples are a lower bound on the true range and prove nothing
sampled outputs from -4.2 to 8.1 against CROWN bounds from -665 to 733 measured reviews/m4-transport-retrain-v1/round2/diagnostic/
python reviews/m4-transport-retrain-v1/round2/diagnostic/sample_range.py MODEL iter 7 16
c22b45f
C-323 With alpha-CROWN and targeted splitting, the ITER candidate bounds every operating face for every member
method declared before any failing pair was bounded (round3/README.md, afbdfa8); verdict job 2770386
all 20 members on all 38 operating faces: 727 bounded directly, 17 by alpha-CROWN, 16 by targeted splitting of 3 to 161 leaves measured cluster job 2770386; reviews/m4-transport-retrain-v1/round3/result/README.md
python reviews/m4-transport-retrain-v1/round3/evaluate3.py MODEL_DIR iter operating K-K
5ab5f44
C-324 The ITER candidate's operating-box bounds are finite but carry no useful physical range
over 760 (face, member) results; targeted splits stop once every leaf is finite
median largest bound 148 and maximum 709.6 in signed-log units, against an overflow limit of 709.78 measured as C-323 5ab5f44
C-325 The ITER candidate is less accurate than transport v1 on the v3 test split
target 0.30; measured once (round 1)
median error 0.178 and 0.169 for Q_e and Q_i, against 0.072 and 0.108 for v1 measured meta.json metrics test_v3-test of tglf-iter-tglfnn_symlog_relu_mono_w128_jac_v3-v1 and verified/transport-iter/v1 ed0f4b3
C-326 Fresh ITER v2 package verification proves the actual local-robustness tolerance for only part of the selected state set
at most 10 percent of the certified served-output range for 1 percent raw-input-range perturbations; no falsifying witness; finite bounds alone do not prove robustness
12 states proved, three unknown and five outside domain under the actual local-robustness tolerance measured reviews/m4-iter-v2/fresh/local.json and fresh-summary.json; tests/verify/test_iter_v2_fresh.py e2cc523
C-327 The current-baseline uncertainty pilot completes its selected trajectories but not its derivative comparison
no completed central pair or AD/FD verdict; finite nominal Jacobian; selected rows do not establish sampling convergence
three selected five-second trajectories pass the raw audit; only one of ten finite-difference controls survives the derivative timeout measured reviews/m5-baseline-uq-v1/pilot-v1/independent-pilot-audit.json and INDEPENDENT_REVIEW.md e2cc523
C-328 The measured pilot layout makes the complete trajectory design expensive before derivative work and recovery
conditional scenarios from three selected rows, not production bounds or an approved resource budget
the 18,432-trajectory design projects roughly 1,710–1,877 node-hours in the measured worker layout, before derivatives and recovery preliminary reviews/m5-baseline-uq-v1/pilot-v1/FEASIBILITY.md and feasibility.json e2cc523

© Copyright 2026 Vignesh Gopakumar

 
 
Code and first draft by Claude (Anthropic) and Codex, working to a brief by Vignesh Gopakumar, who reviewed and approved this page. How this is built · Tokamak Toolkit home