Physics Traceability and Bounded Claims¶
This report is generated from validation/physics_traceability.json.
It blocks full-fidelity public claims for entries whose evidence status is still open or bounded.
Summary¶
- Status: pass
- Registry entries: 54
- Open fidelity gaps: 53
- Full-fidelity public claims blocked: 53
- Resolved module paths: 54
- Resolved evidence paths: 354
- External validation trackers: 8
- Source marker coverage: 33/33
External Validation Collaboration Trackers¶
- External validation artefacts needed for full-fidelity SCPN-CONTROL claims: #46 — 0 open claim(s) — Parent tracker for external code, reference data, facility replay, benchmark, and hardware evidence requests.
- External gyrokinetic validation artefacts: #47 — 9 open claim(s) — TGLF, GENE, GS2, CGYRO, QuaLiKiz, nonlinear CBC, Miller geometry, species, JAX parity, OOD, and online-learning artefacts.
- Equilibrium and reconstruction reference artefacts: #48 — 5 open claim(s) — DIII-D or equivalent shots, EFIT, P-EFIT, GEQDSK, VMEC, and stellarator replay artefacts.
- Transport, edge, MHD, and scenario benchmark artefacts: #49 — 15 open claim(s) — Integrated transport, momentum, pedestal, ELM, MARFE, NTM, current drive, stability, tearing, SOL, orbit, UQ, and scenario benchmarks.
- Neural surrogate validation artefacts: #50 — 3 open claim(s) — QLKNN, QuaLiKiz, gyrokinetic, transport, turbulence, and equilibrium surrogate reference datasets and weight provenance.
- Plasma-control and facility replay artefacts: #51 — 12 open claim(s) — RZIP, RWM, free-boundary, density, digital twin, SOC learning, burn, volt-second, mu-synthesis, and reduced-plant replay evidence.
- Disruption, halo-current, and mitigation benchmark artefacts: #52 — 4 open claim(s) — Measured disruption databases, labelled disruption windows, halo/runaway envelopes, wall contact, impurity radiation, and mitigation metadata.
- Hardware, HDL, CODAC/EPICS, and runtime deployment evidence: #53 — 5 open claim(s) — Vivado, Quartus, Yosys, timing closure, simulator evidence, CODAC/EPICS timing, interlocks, backpressure, HIL replay, and runtime parity.
Module Traceability Table¶
| Module | Equation or contract | References | Unit contract | Validation evidence | Status | Tracker |
|---|---|---|---|---|---|---|
validation/reference_data/diiid |
Replay claims require measured signal arrays, physical units, shot identifiers, retrieval timestamp, licence policy, immutable checksums, and source URI provenance. | DIII-D MDSplus facility data access contract; Repository real-data manifest schema 1.0 | Signal-specific SI or dimensionless units; arbitrary units are rejected for real-shot evidence. | validation/validate_data_manifests.py; src/scpn_control/core/real_data_manifest.py; tests/test_real_diiid_shots.py; tests/test_validate_data_manifests.py; strict acquisition-readiness gate via --require-real-acquisition | reference_validated | |
src/scpn_control/control/burn_controller.py |
Burn-control claims must declare Bosch-Hale DT reactivity, alpha-energy partition, Lawson triple product, burn-fraction approximation, alpha-heating integration volume, tokamak major/minor-radius ordering, strictly ordered normalised alpha-heating profile grids, reactivity-exponent stability boundary, and PI auxiliary-heating limits. | Bosch and Hale 1992 DT reactivity; Lawson 1957 ignition criterion; Mitarai and Muraoka 1999 delayed alpha-heating feedback; Repository fail-closed burn-control claim-admission contract | SI joules, m^-3, seconds, keV, MW, m^3/s, metres, normalised profile radius, dimensionless Q, and Lawson triple product units m^-3 s keV. | tests/test_burn_controller.py alpha-heating, Lawson, burn-fraction, profile-domain, control, and claim-admission checks; validation/validate_burn_reference.py strict burn-control reference artifact gate; validation/benchmark_burn_control_claims.py bounded claim-admission benchmark | bounded_model | #51 |
src/scpn_control/core/elm_model.py |
ELM model claims must declare pedestal crash trigger, crash depth, recovery timescale, peeling-ballooning boundary, ELM cycle state, RMP suppression threshold, and energy-particle-loss accounting. | peeling-ballooning ELM trigger references; resonant magnetic perturbation ELM suppression references | Time in seconds, energy in joules, density in m^-3, temperature in eV or keV, pressure in pascals, magnetic perturbation amplitude dimensionless or tesla with explicit convention. | tests/test_elm_model.py; tests/test_integrated_scenario.py; tests/test_elm_reference_validation.py strict reference-artifact admission checks; validation/validate_elm_reference.py strict digest-bound ELM/RMP reference gate | validation_gap | #49 |
src/scpn_control/core/eped_pedestal.py |
EPED claims must declare the pedestal-width scaling, collisionless width versus collisionality-narrowed effective-width ordering, peeling-ballooning pressure limit, bootstrap-current coupling, H-mode entry assumptions, global beta limits, and compatibility boundary to the transport solver. | Snyder et al. EPED pedestal model; Troyon beta-limit reference; Sauter bootstrap-current fit | Pedestal width in normalised flux or metres with convention metadata; pressure in pascals, temperature in eV or keV, density in m^-3, current in amperes, and beta dimensionless. | tests/test_eped_pedestal.py; tests/test_eped_reference_validation.py strict reference-artifact admission checks; validation/validate_eped_reference.py strict digest-bound EPED pedestal reference gate; tests/test_cross_module_physics.py; tests/test_transport_hmode_edge.py | validation_gap | #49 |
src/scpn_control/core/fusion_kernel.py |
Fusion-kernel claims must declare the Grad-Shafranov residual, finite-difference grid, coil Green functions, source-profile parameterisation, boundary conditions, nonlinear iteration controls, convergence criteria, and Rust/Python parity boundary. | Grad-Shafranov equilibrium equation; Green-function tokamak coil-response references; repository Rust/Python fusion-kernel parity contract | SI metres, webers per radian, tesla, amperes, pascals, source derivatives, grid spacings, and dimensionless convergence tolerances. | tests/test_fusion_kernel.py; tests/test_geqdsk_regression.py; tests/test_rust_python_parity.py | validation_gap | #48 |
src/scpn_control/core/jax_gk_solver.py |
JAX linear gyrokinetic claims must preserve the native local-dispersion eigenvalue formulation, expose identical physical input contracts, document numerical-precision or backend divergence, and keep the stiffness-to-transport closure bounded as a controller-tuning surrogate. | Repository native linear GK local-dispersion contract; JAX numerical backend reproducibility guidance | Same growth-rate, frequency, geometry, and species units as native linear GK; backend dtype, tolerance, and normalisation must be explicit in validation artefacts. | tests/test_jax_gk_solver.py local-dispersion parity, stiffness, fail-closed, and bounded chi_i-profile closure checks; tests/test_jax_gk_parity_validation.py schema-versioned artifact digest, case-parameter digest, mode-spectrum, and required case/backend admission checks; validation/benchmark_jax_gk_parity.py strict persisted multi-case backend parity artifact producer; validation/validate_jax_gk_parity.py strict persisted backend parity artifact gate with named case and backend coverage requirements; source-level native local-dispersion parity contract; validation/reports/jax_gk_parity/cyclone_base_case_cpu_cpu.json CPU parity artifact with canonical payload digest; validation/reports/jax_gk_parity/tem_kinetic_electron_cpu_cpu.json CPU parity artifact with kinetic-electron TEM mode-spectrum contract; validation/reports/jax_gk_parity/stable_mode_cpu_cpu.json CPU parity artifact with low-drive bounded-growth contract; validation/reports/jax_gk_parity/cyclone_base_case_gpu_nvidia_geforce_gtx_1060_6gb.json GPU parity artifact with canonical payload digest; validation/reports/jax_gk_parity/tem_kinetic_electron_gpu_nvidia_geforce_gtx_1060_6gb.json GPU parity artifact with kinetic-electron TEM mode-spectrum contract; validation/reports/jax_gk_parity/stable_mode_gpu_nvidia_geforce_gtx_1060_6gb.json GPU parity artifact with low-drive bounded-growth contract; validation/reports/jax_gk_parity/jax_gk_parity.md CPU/GPU parity evidence summary | validation_gap | #47 |
src/scpn_control/phase/kuramoto.py |
Phase-runtime claims must declare the Kuramoto-Sakaguchi mean-field coupling, order-parameter calculation, exogenous global-driver injection, phase wrapping convention, Euler step, and optional Rust fast-path parity boundary. | Kuramoto and Sakaguchi phase oscillator model; Repository phase synchronisation runtime contract | Phases in radians, angular frequencies in radians per second, timestep in seconds, coupling gains dimensionless or radians per second by declared convention, order parameter dimensionless. | tests/test_phase_kuramoto.py; tests/test_phase_properties.py; tests/test_phase_properties_extended.py; validation/benchmark_kuramoto_runtime_evidence.py schema-versioned runtime parity and timestep-refinement evidence producer | bounded_model | #53 |
src/scpn_control/core/marfe.py |
MARFE claims must declare impurity radiation loss, temperature scan, condensation criterion, Greenwald comparison, power-balance inputs, bounded impurity fraction, edge parallel connection-length scaling through q95 and R0, validated front-temperature state, and detection thresholds for detached high-radiation states. | Stangeby 2000 scrape-off-layer and divertor references; Greenwald 2002 density-limit reference; radiation-condensation MARFE onset references | Temperature in eV, density in m^-3, power in MW or W with explicit conversion, plasma current in MA or A with convention metadata, impurity fraction dimensionless on (0, 1], connection length in metres. | tests/test_marfe.py; tests/test_marfe_reference_validation.py strict reference-artifact admission checks; validation/validate_marfe_reference.py strict digest-bound MARFE reference gate; tests/test_cross_module_physics.py | validation_gap | #49 |
src/scpn_control/core/gk_geometry.py |
Geometry claims must declare Miller-shape coordinates, derivative-resolved ballooning-angle grids, Jacobian, toroidal-field convention, safety-factor field-pitch relation, poloidal-field construction, b-dot-grad-theta metric, metric coefficients, contravariant metric determinant identity, and local-equilibrium validity bounds. | Miller et al. 1998 local equilibrium; Cyclone Base Case local Miller geometry benchmark | Major radius, minor radius, local radius, and gradient lengths in metres; angles in radians; magnetic-field strength in tesla; q, shear, elongation, triangularity, and shaping derivatives dimensionless. | tests/test_gk_geometry.py field-pitch, metric, contravariant metric-determinant identity, curvature, shaping, and interface checks; validation/validate_gk_geometry_reference.py schema-versioned immutable Miller reference cases with b-dot-grad-theta samples, per-case digests, unit contracts, tolerance metadata, and canonical payload SHA-256; source-level local Miller geometry contract | validation_gap | #47 |
src/scpn_control/core/ntm_dynamics.py |
NTM dynamics claims must declare rational-surface search, rational-surface containment inside the minor radius, tokamak major/minor-radius ordering, modified Rutherford equation terms, bootstrap drive, polarisation and curvature terms, ECCD control coupling, seed-island assumptions, and controller-validity limits. | modified Rutherford equation NTM references; ECCD NTM control references; repository rational-surface and island-dynamics contract | Island width in metres, time in seconds, current in amperes, q dimensionless, rho dimensionless, ECCD power in MW or W with conversion metadata. | tests/test_ntm_dynamics.py; tests/test_ntm_reference_validation.py strict reference-artifact admission checks; validation/validate_ntm_reference.py strict digest-bound NTM reference gate; tests/test_cross_module_physics.py | validation_gap | #49 |
src/scpn_control/control/rzip_model.py |
Rigid-plasma vertical stability claims must declare the linearised state vector [Z, dZ/dt, circuit currents], mutual-inductance derivative, vertical field index, tokamak major/minor-radius ordering, declared vertical inertia, wall-normalised feedback-gain threshold, wall or active-coil circuit model, calibration source, growth-rate comparison tolerance, tamper-evident calibration payload digest, and facility-claim admission status. | Lazarus et al. 1990 rigid plasma vertical stability model; Wesson 2011 tokamak vertical stability and field-index references; Repository vessel circuit model contract | SI metres, seconds, amperes, henries, ohms, tesla, and dimensionless vertical field index; growth time is reported in milliseconds; calibration evidence digests are SHA-256 hex strings. | tests/test_rzip_model.py vertical growth, field-index, declared-inertia, feedback-gain, physical-parameter, and controller-measurement checks; tests/test_rzip_model.py RZIP fallback and singular-circuit checks; validation/validate_rzip_reference.py strict RZIP reference artifact gate; tests/test_rzip_model.py calibration evidence, facility-claim admission, and persisted evidence checks; validation/benchmark_rzip_calibration.py bounded local RZIP calibration benchmark; validation/reports/rzip_calibration.json bounded local calibration report with evidence payload digest | bounded_model | #51 |
src/scpn_control/scpn/fpga_export.py |
FPGA-export claims must declare LIF fixed-point quantisation, leak right-shift approximation, threshold scaling, signed weight saturation, generated HDL boundary, target family assumptions, and synthesis-tool responsibility. | Repository SCPN compiler and fixed-point export contract; Leaky integrate-and-fire digital implementation contract | Fixed-point values use declared bit width and fractional-bit scale; clock in MHz, timestep in seconds, FIFO depth and neuron counts dimensionless, weights and thresholds quantised by explicit integer scale. | tests/test_fpga_export.py; tests/test_scpn_compiler.py | bounded_model | #53 |
src/scpn_control/scpn/formal_verification.py |
Formal verification claims must declare the compiled Petri-net transition relation, exact bounded reachability depth, rational marking arithmetic, marking-bound safety obligations, algebraic place-invariant weights, transition liveness obligations, bounded temporal response and recurrence specifications, inhibitor-arc semantics, and counterexample path reporting. | Petri-net reachability and P-invariant analysis; bounded temporal logic over finite transition systems; repository SCPN compiler transition-relation contract | Markings are dimensionless token densities; arc weights and invariant weights are rationalised from finite decimal inputs; max_depth is a non-negative integer firing bound; temporal response windows count transition firings. | tests/test_scpn_formal_verification.py exact reachability, marking bounds, transition liveness, algebraic place invariants, all-path bounded response, recurrence, counterexample, and invalid-domain checks; src/scpn_control/scpn/formal_verification.py exact explicit-state finite transition relation over rational markings; validation/reports/scpn_z3_formal.json schema-versioned bounded SMT evidence with canonical payload SHA-256; tests/test_controller_safety_case.py target-hardware readiness artifact digest and E2E latency admission checks | bounded_model | #53 |
src/scpn_control/core/vmec_lite.py |
VMEC-lite claims must declare flux-surface parameterisation, rotational-transform profile, Fourier mode truncation, field-period count, positive R00 and sampled major-radius boundary state, pressure/current assumptions, residual metric, geometry/profile/current provenance, reference-comparison tolerances for R_mn, Z_mn, and iota, convergence status, and explicit exclusion from full VMEC-grade 3D MHD equilibrium claims unless matched references pass the fail-closed admission gate. | VMEC 3D equilibrium references; stellarator flux-surface Fourier parameterisation references | SI metres, tesla, pascals, amperes, webers, dimensionless rotational transform, and Fourier coefficients with declared length units. | tests/test_vmec_lite.py verifies finite spectral reconstruction, bounded force residuals, physical domains, and fail-closed VMEC-lite claim evidence admission; validation/benchmark_vmec_lite_claims.py publishes deterministic bounded synthetic claim evidence with explicit full-VMEC exclusion; validation/reports/vmec_lite_claims.json records bounded Fourier, field-period, profile, residual, q-domain, and positive-major-radius evidence; validation/validate_vmec_reference.py strict VMEC reference artefact gate | validation_gap | #48 |
src/scpn_control/control/advanced_soc_fusion_learning.py |
SOC turbulence-learning claims must declare the sandpile lattice, critical-gradient threshold, predator-prey zonal-flow coupling, shear-suppression term, bounded substep relaxation, Q-learning state discretisation, action set, and random policy assumptions. | Diamond and Hahm 1995 SOC turbulence reference; Kim and Diamond 2003 zonal-flow predator-prey coupling; Biglari, Diamond and Terry 1990 shear-suppression reference | Dimensionless lattice gradients, flow amplitudes, shear, toppling counts, Q-table values, reward, and RNG-seeded action choices. | tests/test_advanced_soc.py SOC physics and learning checks; tests/test_advanced_soc_verbose_plot.py verbose and plotting-path checks; tests/test_visualization_paths.py SOC visualisation checks; validation/validate_soc_reference.py strict reference-artifact gate | bounded_model | #51 |
src/scpn_control/core/current_drive.py |
Current-drive claims must declare ECCD, LHCD, and NBI source powers, radial deposition centres and widths, grid-normalised deposition conservation, density and temperature normalisation, Fisch-Boozer or Fisch efficiency coefficients, Prater launch-angle factor, Stix slowing-down time and critical energy for NBI, and the absence of ray-tracing or Fokker-Planck facility validation. | Fisch and Boozer 1980 electron-cyclotron current-drive efficiency; Prater 2004 ECCD launch-angle efficiency scaling; Fisch 1978 lower-hybrid current-drive efficiency; Stix 1972 neutral-beam slowing-down and critical-energy formulae; Ehst and Karney 1991 neutral-beam current-drive model; Repository fail-closed current-drive claim-admission contract | Power in MW or W with explicit conversion, rho dimensionless, density in 10^19 m^-3, temperatures and beam energy in keV, current density in A/m^2, total current in amperes, efficiency coefficients in declared normalised A/W form. | tests/test_current_drive.py ECCD, LHCD, and NBI deposition, scaling, source superposition, total-current integration, and claim-admission checks; validation/validate_current_drive_reference.py strict current-drive reference artifact gate; validation/benchmark_current_drive_claims.py bounded claim-admission benchmark | bounded_model | #49 |
src/scpn_control/core/blob_transport.py |
Blob transport claims must declare interchange drive, sheath closure, radial velocity scaling, filament size, density and temperature perturbation assumptions, non-empty strictly ordered separatrix-to-wall scrape-off-layer profile coordinates, positive ordered detector-event domains, and scrape-off-layer validity bounds. | Stangeby 2000 scrape-off-layer transport references; blob-filament interchange transport scaling references | SI metres, seconds, m/s, density in m^-3, temperature in eV, magnetic field in tesla, and dimensionless normalised perturbations. | tests/test_blob_transport.py velocity-regime, size-scaling, ensemble, flux, strict-profile-grid, wall-flux, and detector-domain checks; tests/test_blob_transport_reference_validation.py strict reference-artifact admission checks; validation/validate_blob_transport_reference.py strict digest-bound SOL blob reference gate | validation_gap | #49 |
src/scpn_control/core |
Analytical approximations must state their source equation, retained terms, omitted terms, unit contract, and allowed parameter domain. | Cordey 1981 orbit-width estimate; Sauter et al. 1999 neoclassical fits; Stangeby 2000 SOL two-point model | Per-module SI or declared normalised units with explicit conversion boundaries. | docs/physics_methods.md simplification declarations; source grep for simplification and approximation markers | bounded_model | #49 |
src/scpn_control/control |
Control approximations must declare reduced-state dynamics, actuator assumptions, estimator assumptions, and facility-exclusion boundaries before any controller-readiness claim. | Tokamak control reduced-plant literature; Repository control safety and disruption contracts | Per-controller declared SI plasma, actuator, magnetic, force, and timing units. | src/scpn_control/control/gym_tokamak_env.py; src/scpn_control/control/free_boundary_tracking.py | bounded_model | #51 |
src/scpn_control |
Runtime approximations must state phase wrapping, fixed-point shift approximations, replay fixture provenance, and hardware export limits. | Kuramoto phase oscillator reference model; Repository fixed-point spiking export contract | Declared phase radians, tick timing, fixed-point scale factors, and replay geometry units. | src/scpn_control/phase/kuramoto.py; src/scpn_control/scpn/fpga_export.py; src/scpn_control/scpn/geometry_neutral_replay.py | bounded_model | #53 |
src/scpn_control/control/mu_synthesis.py |
Mu-analysis claims must declare the structured uncertainty blocks, positive block bounds, Riccati state-feedback K-step, bound-scaled static closed-loop DC robust-performance map, D-scaling upper-bound fit, finite controller state/timestep domains, and the exclusion of full frequency-dependent H-infinity D-K synthesis unless an external validated backend is wired. | Doyle 1982 structured singular value definition; Balas et al. 1993 mu-analysis and synthesis toolbox; Skogestad and Postlethwaite 2005 multivariable feedback control; Repository fail-closed static mu-analysis claim-admission contract | State, control, output, and uncertainty units inherit the supplied state-space plant contract; mu, uncertainty bounds, and D-scalings are dimensionless. | tests/test_mu_synthesis.py D-scaled upper-bound behaviour, uncertainty-bound scaling, finite-domain rejection, closed-loop plant dependence, claim-admission, persisted digest, tamper, and duplicate-key checks; validation/validate_mu_synthesis_reference.py strict mu-analysis reference artefact gate; validation/benchmark_mu_synthesis_claims.py bounded claim-admission benchmark; docs/learning/control_theory_primer.md states the bounded static analysis domain | bounded_model | #51 |
src/scpn_control/core/checkpoint.py |
Checkpoint claims must declare serialised solver state, non-negative episode counter, object-valued metrics schema, finite-value policy, schema-version boundary, and fail-closed handling for corrupt or missing checkpoint artefacts. | repository restart and replay provenance contract | Units are inherited from stored state and metrics; checkpoint metadata must preserve schema version, episode index, and provenance boundaries. | tests/test_checkpoint.py round-trip, resume, finite-payload, schema-version, and corrupt-payload checks | bounded_model | #53 |
src/scpn_control/control/density_controller.py |
Density-control claims must declare the Greenwald limit, ITER operating margin, radial particle transport grid, gas-puff source, pellet source, NBI source, cryopump sink, recycling source, controller gains, CFL-limited explicit transport step, geometry/transport/actuator/diagnostic provenance, source integral, particle-inventory change, and matched Greenwald-fraction and inventory reference tolerances before facility-calibrated density-control claims. | Greenwald 2002 density limit; ITER Physics Basis 1999 density operating margin; Parks and Turnbull 1978 neutral gas shielding pellet-ablation model; Milora 1995 neutral gas shielding pellet-ablation model | SI particles per second, metres, seconds, m^-3, m^2/s, m/s, pellet millimetres, beam keV, megawatts, and dimensionless Greenwald fraction. | tests/test_density_controller.py Greenwald, NGS pellet trajectory deposition, sink, controller, geometry, transport-profile, source-input, timestep guard, and fail-closed density-control claim evidence checks; tests/test_pellet_injection.py Parks-Turnbull NGS ablation and pellet trajectory checks; validation/benchmark_density_control_claims.py publishes deterministic bounded synthetic claim evidence with explicit facility-calibrated claim exclusion; validation/reports/density_control_claims.json records bounded geometry, transport, actuator, diagnostic, CFL, Greenwald, source-integral, and inventory evidence; validation/validate_density_reference.py strict density reference artefact gate | bounded_model | #51 |
src/scpn_control/core/differentiable_transport.py |
Differentiable transport claims must declare the four-channel profile order, cylindrical Crank-Nicolson diffusion step, uniform normalised radial grid, source-term convention, core zero-gradient boundary, edge Dirichlet boundary, transport-coefficient gradients, one-step and multi-step source-schedule gradient targets, sampled finite-difference gradient audit, audited one-step and rollout gradient-admission latency metadata, runtime provenance for CPU/GPU comparison campaigns, bounded Z3 controller-formal evidence binding, neural and reduced-gyrokinetic closure coefficient mapping, campaign provenance metadata, schema-versioned replay metadata, traced JAX rollout-gradient loss construction, JAX x64 precision enablement before jax.numpy import, finite non-negative audit losses and errors, tolerance agreement with campaign metadata, unique in-domain sampled audit indices, pass/fail consistency with maximum audit error, ordered latency percentiles, and optional one-step and rollout Grad-Shafranov flux-map radial weighting contract. |
repository JAX transport primitive contract; repository integrated transport solver contract | Profiles inherit channel units for electron temperature, ion temperature, electron density, and impurity density; chi uses m^2/s or the declared normalised diffusivity convention; sources use profile units per second; rho is dimensionless and uniformly spaced; audit loss, audit errors, and latency percentiles are finite non-negative scalar evidence. | tests/test_differentiable_transport.py diffusion, boundary, fallback, optional JAX coefficient-gradient, one-step and multi-step source-schedule-gradient, sampled finite-difference gradient audit, neural and reduced-GK closure coefficient mapping, campaign metadata provenance, schema-versioned replay metadata, replay-drift guard, audit-evidence admission semantics, latency-report runtime-provenance persistence guards, controller-formal readiness digest binding, and one-step plus rollout equilibrium-weighted GS-flux checks; tests/test_nmpc_controller.py NMPC neural-closure, one-step source-schedule, and multi-step source-rollout tuning fail closed without JAX and preserve gradient-audit admission results; tests/test_nmpc_controller.py NMPC coefficient, one-step source-schedule, and multi-step source-rollout tuning results carry campaign metadata, closure provenance, finite source bounds, and fail-closed gradient-audit evidence; validation/benchmark_differentiable_transport_latency.py audited one-step and rollout gradient-admission latency benchmarks or fail-closed JAX-unavailable reports; validation/reports/differentiable_transport_latency.json and validation/reports/differentiable_transport_rollout_latency.json bounded latency reports or blocked-backend status | bounded_model | #49 |
src/scpn_control/control/digital_twin_online_update.py |
Online model-update claims must declare tunable bounded parameters, external TRANSP/TSC simulator artifact provenance, target summary metrics, tolerances, deterministic random seed, Gaussian-process acquisition settings, finite non-negative loss history, source-bound Bayesian results, parameter-domain admission, observation-unit coverage, and fail-closed behavior when external artifacts are absent or malformed. | TRANSP integrated modelling evidence contract; TSC time-dependent simulation evidence contract; Bayesian optimisation for bounded model calibration; Repository digital-twin runtime contract | Tunable density in m^-3, effective charge dimensionless, actuator lag in steps, actuator rate limit dimensionless per step, target metrics in declared digital-twin summary units, non-negative loss values, and simulator time base in seconds. | tests/test_digital_twin_online_update.py external artifact, loss, Bayesian-update, and deterministic benchmark checks; tests/test_digital_twin_reference_validation.py strict digital-twin artifact gate including TRANSP and TSC; validation/benchmark_digital_twin_online_update.py deterministic bounded online-update benchmark | bounded_model | #51 |
src/scpn_control/control/free_boundary_tracking.py |
Free-boundary tracking claims must declare direct kernel-in-the-loop coil-response identification, bounded least-squares correction, actuator lag, slew limits, supervisor rejection, measurement bias, drift, latency, and observer compensation assumptions. | Grad-Shafranov free-boundary control references; Repository FusionKernel free-boundary objective contract; Repository deterministic free-boundary acceptance campaign; Repository fail-closed free-boundary claim-admission contract | SI coil currents, metres, webers per radian, seconds, amperes per second, objective-space residuals, and dimensionless supervisor gains. | tests/test_free_boundary_tracking.py controller, disturbance-observer, and claim-admission checks; tests/test_free_boundary_tracking_variants.py actuator, observer, latency, and supervisor edge-path checks; tests/test_free_boundary_tracking_acceptance.py deterministic acceptance campaign; validation/validate_free_boundary_reference.py strict free-boundary reference artifact gate; validation/benchmark_free_boundary_tracking_claims.py bounded claim-admission benchmark | bounded_model | #51 |
src/scpn_control/control/disruption_contracts.py |
Disruption-contract claims must declare synthetic disruption signal generation, toroidal-mode amplitudes, mitigation-cocktail coupling, impurity transport response, halo/runaway post-disruption response, TBR equivalence scaling, and RL action bias assumptions. | Pautasso et al. 2017 disruption current-quench constraints; Riccardo et al. 2010 halo-current rise-time references; Abdou et al. 2015 blanket neutronics calibration references | SI seconds, milliseconds, mega-amperes, megajoules, moles, megawatts, dimensionless risk, toroidal mode amplitudes, and tritium breeding ratio. | tests/test_disruption_contracts.py contract smoke checks; tests/test_disruption_contracts_pure.py pure physics-path checks; tests/test_disruption_edge_cases.py edge-case disruption checks; validation/validate_disruption_reference.py strict disruption reference artifact gate | bounded_model | #52 |
src/scpn_control/core/disruption_sequence.py |
Disruption-sequence claims must declare phase ordering, finite positive configuration domains, Rechester-Rosenbluth thermal-quench transport, post-quench radiative-cooling exposure, current-quench timing, mitigation action coupling, runaway-electron beam phase, stochastic event boundaries, halo-force convention, and replay provenance. | ITER disruption mitigation sequence references; repository disruption phase-state contract | Time in seconds or milliseconds with explicit convention, current in amperes or mega-amperes, energy in joules or megajoules, magnetic field in tesla, geometry in metres, density in 10^20 m^-3, and dimensionless phase labels. | tests/test_disruption_sequence.py post-quench cooling, phase ordering, current quench, runaway, and halo-force checks; tests/test_disruption_safe_api.py | validation_gap | #52 |
src/scpn_control/core/gk_interface.py |
Generated input decks and parsed outputs must round-trip through real TGLF, GENE, GS2, CGYRO, or QuaLiKiz executables. | TGLF Staebler et al. 2007; GENE Jenko et al. 2000; GS2 Kotschenreuther et al. 1995; CGYRO Candy et al. 2016; QuaLiKiz Bourdelle et al. 2007 | Code-specific flux, growth-rate, frequency, and geometry units converted into repository normalisation with explicit metadata. | docs/joss_paper.md external GK limitation; validation/validate_gk_interface_artifacts.py strict digest-bound external interface artefact gate with report schema, payload digest, artefact file digest, portable paths, duplicate code/run rejection, and blocked public-claim state | external_dependency_blocked | #47 |
src/scpn_control/control/federated_disruption.py |
FedAvg/FedProx disruption classifiers must federate per-facility client updates without centralising raw arrays, validate the shared eight-feature disruption contract, clip and noise facility model deltas under a declared Gaussian differential-privacy budget, and preserve a serialisable privacy ledger. | McMahan et al. 2017 Communication-Efficient Learning of Deep Networks from Decentralized Data; Li et al. 2020 FedProx; Dwork and Roth 2014 Algorithmic Foundations of Differential Privacy; Abadi et al. 2016 Deep Learning with Differential Privacy | Eight disruption features use declared tokamak control variables: Ip, beta_N, q95, n/n_GW, li, dBp/dt, locked-mode amplitude, and n=1 RMS; labels are binary disruption indicators. | tests/test_federated_disruption.py module-specific federation, array-ingestion, DP-ledger, and benchmark contract tests; validation/benchmark_federated_disruption.py deterministic synthetic multi-facility benchmark; validation/reports/federated_disruption_benchmark.json synthetic report with explicit claim boundary | bounded_model | #52 |
src/scpn_control/core/uncertainty.py |
Uncertainty claims must declare sampled variables, distributions, correlations, random seed, sample count, propagation chain, convergence and percentile-ordering criteria, finite-value rejection policy, D-T fuel dilution handling, sensitivity outputs, scenario/prior/sensitivity provenance, and matched central-value and sigma reference tolerances before calibrated predictive-UQ claims. | Monte Carlo uncertainty propagation references; repository fusion-performance uncertainty contract | Units inherit each propagated physical quantity; distribution parameters must preserve SI or declared normalised units and dimensionless uncertainty fractions. | tests/test_uncertainty.py verifies IPB98 monotonicity, Bosch-Hale domains, D-T fuel dilution, full-chain sampling, percentile ordering, finite-output checks, and fail-closed UQ claim evidence admission; tests/test_full_chain_uq.py full-chain UQ behavioural coverage; tests/test_uncertainty_sigma_guard.py sigma guard coverage; validation/benchmark_uq_claims.py publishes deterministic bounded synthetic claim evidence with explicit calibrated-UQ exclusion; validation/reports/uq_claims.json records bounded scenario, prior, seed, sample-count, percentile, finite-output, sensitivity, and claim-admission evidence; validation/validate_uncertainty_reference.py strict UQ reference artefact gate | validation_gap | #49 |
src/scpn_control/scpn/geometry_neutral_replay.py |
Geometry-neutral replay claims must declare synthetic W7-X-like fixture provenance, field-line spread metric, actuator current bounds, latency model, stuck-actuator fault schedule, controller feature mapping, replay acceptance thresholds, tamper-evident manifest digests, and fail-closed scenario admission for initial-frame alignment, objective metric availability, current-envelope constraints, and actuator-supported fault modes. | Repository geometry-neutral control contract; W7-X-like reduced-order stellarator replay fixture | Field-line spread in radians, currents in amperes, timestep in seconds, latency in microseconds, effective ripple dimensionless, controller objectives and thresholds declared per replay manifest, manifest digests encoded as SHA-256 hex. | tests/test_geometry_neutral_replay.py; tests/test_geometry_neutral_contracts.py; tests/test_geometry_neutral_replay.py replay evidence admission, digest, bounded-claim, device-claim, tamper, and duplicate-key checks | bounded_model | #48 |
src/scpn_control/core/gk_ood_detector.py |
OOD detector claims must declare the feature vector, training distribution, distance metric, symmetric positive-definite inverse-covariance calibration, threshold calibration, uncertainty handling, non-negative transport ensemble predictions, and behavior outside the calibrated gyrokinetic operating envelope. | Repository gyrokinetic scheduler OOD contract; statistical process monitoring distribution-shift controls | Feature units inherit declared GK inputs and outputs; detector scores are dimensionless with explicit calibration metadata, Mahalanobis metric provenance, threshold provenance, and transport prediction channels in non-negative diffusivity units. | tests/test_gk_ood_detector.py; tests/test_gk_hybrid_integration.py; validation/validate_gk_ood_calibration.py strict persisted campaign calibration gate with report and artefact digests, Mahalanobis-metric provenance, duplicate-campaign rejection, and acceptance-bound checks | validation_gap | #47 |
src/scpn_control/core/gk_online_learner.py |
Online learner claims must declare training-window selection, non-empty train/validation split domains, nonnegative transport-coefficient targets, validation loss, rollback policy, OOD-score sample admission, optimiser settings, persisted retraining decisions, and compatibility boundary with gyrokinetic scheduler inputs. | online learning stability and rollback control references; repository gyrokinetic hybrid learner contract | Inputs inherit GK feature units; transport targets are nonnegative chi_e, chi_i, and D_e; losses and OOD scores are dimensionless with explicit scaling, learning rate, epoch count, generation limit, and threshold metadata. | tests/test_gk_online_learner.py OOD admission, holdout retraining, rollback, decision persistence, and invalid-domain checks; tests/test_gk_hybrid_integration.py scheduler integration checks; validation/benchmark_gk_online_learner.py deterministic bounded online-retraining benchmark | validation_gap | #47 |
src/scpn_control/core/gk_species.py |
Species and collision claims must declare charge, mass, density, temperature, thermal speed, Larmor radius, gyroaverage Bessel evaluation, diamagnetic frequency, pitch-angle deflection coefficient, thermal energy-relaxation coefficient, electron-ion mass-ratio scaling, field-temperature dependence, valid species parameter bounds, valid velocity quadrature sizes, and strictly ordered finite lambda grids bounded by the local trapped-passing boundary. | Sugama et al. 2006 collision operator; gyrokinetic normalisation and species parameter contracts | Mass in kilograms, charge in coulombs, density in m^-3, temperature in electronvolts, velocity in m/s, gyrofrequency in rad/s, Larmor radius in metres, collision rates in s^-1, lambda on [0, 1] with lambda times B/B0 no greater than one, and positive magnetic-field ratio. | tests/test_gk_species.py thermal-speed, Larmor-radius, Bessel gyroaverage, diamagnetic-frequency sign, collision-frequency scaling, velocity-grid, and pitch-angle-domain checks; tests/test_gk_electromagnetic.py; validation/validate_gk_species_reference.py immutable species and collision reference cases with distinct deflection and energy-relaxation channels | validation_gap | #47 |
src/scpn_control/control/halo_re_physics.py |
Post-disruption claims must declare the halo L/R circuit, contact fraction, toroidal peaking factor, current-quench waveform, Connor-Hastie primary generation, Rosenbluth-Putvinski avalanche generation, ensemble uncertainty assumptions, ITER-limit summaries, strict disruption-reference admission, and claim status. | Fitzpatrick 2002 halo current and error-field interaction; Connor and Hastie 1975 runaway electron generation; Rosenbluth and Putvinski 1997 avalanche generation | SI amperes, mega-amperes, seconds, milliseconds, ohms, henries, metres, volts per metre, rates per second, and meganewtons per metre. | tests/test_halo_re_physics.py halo-current, runaway-electron, ensemble, fail-closed claim evidence, and strict reference-admission regression checks; tests/test_halo_nonfinite_guards.py non-finite guard checks; tests/test_halo_validation_paths.py validation-path guard checks; validation/benchmark_disruption_mitigation_claims.py deterministic bounded halo/runaway claim-admission benchmark; validation/validate_disruption_reference.py strict disruption reference artifact gate | bounded_model | #52 |
src/scpn_control/core/stability_mhd.py |
MHD stability claims must declare q-profile interpolation, magnetic shear, interior-point radial grids for profile-resolved criteria, Mercier and Troyon criteria, beta-limit inputs, first-unstable-radius search, bounded bootstrap-current fraction, and the exclusion boundary for full ideal-MHD or resistive-MHD eigenmode claims. | Troyon beta-limit reference; Mercier ideal-MHD stability criterion; tokamak q-profile and magnetic-shear references | q and beta dimensionless, plasma current in MA or A with explicit convention, minor radius and major radius in metres, magnetic field in tesla, rho dimensionless, and local bootstrap-current fraction within [0, 1]. | tests/test_stability_mhd.py; tests/test_ballooning_solver.py; tests/test_cross_module_physics.py | validation_gap | #49 |
src/scpn_control/core/integrated_scenario.py |
Integrated scenario claims must declare coupling order, current diffusion, transport, pedestal, ELM, NTM, sawtooth, burn, and control interactions, timestep policy, state exchange units, and failure isolation boundaries. | integrated tokamak scenario modelling references; repository scenario-coupling contract | All coupled states must preserve declared SI or normalised units for current, density, temperature, pressure, q, beta, power, flux, and timing. | tests/test_integrated_scenario.py; tests/test_cross_module_physics.py; validation/benchmark_integrated_scenario_coupling.py; validation/reports/integrated_scenario_coupling.json; validation/reports/integrated_scenario_coupling.md | validation_gap | #49 |
src/scpn_control/core/kinetic_efit.py |
Kinetic-EFIT coupling claims must declare Thomson or profile-derived electron density and temperature points, ion-temperature points, fast-ion pressure fraction, anisotropy sigma, MSE pitch-angle constraints when used, radial interpolation geometry, pressure-consistency residual, diagnostic/profile/fast-ion/MSE source provenance, matched pressure, q-profile, and anisotropy reference tolerances, and exclusion from facility-grade P-EFIT unless matched reference equilibria pass the fail-closed admission gate. | Lao et al. 1985 EFIT equilibrium reconstruction; MSE-constrained kinetic EFIT workflow; Repository fixed-boundary realtime-EFIT contract | R and Z in metres, temperatures in keV, density in 10^19 m^-3, MSE pitch angle in degrees, pressure in pascals, beta dimensionless, and q-profile dimensionless. | tests/test_kinetic_efit.py requires measured profile channels, radial interpolation, measured Ti use, anisotropy residuals, MSE q-profile response, fast-ion pressure checks, and fail-closed kinetic-EFIT claim evidence admission; validation/benchmark_kinetic_efit_claims.py publishes deterministic bounded synthetic claim evidence with explicit facility-claim exclusion; validation/reports/kinetic_efit_claims.json records bounded provenance, interpolation geometry, pressure consistency, fast-ion beta, and q-profile endpoints | bounded_model | #48 |
src/scpn_control/core/gk_eigenvalue.py |
Native linear GK eigenvalue solve must match external TGLF, GENE, GS2, CGYRO, or QuaLiKiz growth rates and real frequencies for the same Miller geometry and species inputs. | Miller et al. 1998 local equilibrium; GENE and GACODE published input-output contracts | Growth rate and frequency normalised consistently to c_s/a or declared external-code convention. | ROADMAP.md local-dispersion overprediction note; docs/competitive_analysis.md linear GK quantitative accuracy status; validation/validate_gk_crosscode.py strict real-binary schema-versioned and digest-bound evidence gate | external_dependency_blocked | #47 |
src/scpn_control/core/momentum_transport.py |
Momentum transport claims must declare NBI torque, collisional damping, viscous momentum diffusion, rotation-profile boundary conditions, angular-momentum units, and the coupling boundary to the integrated transport solver. | tokamak toroidal momentum transport references; repository NBI torque and rotation-profile contract | SI newton metres, kg m^2/s^2, rad/s, metres, seconds, density in m^-3, and momentum diffusivity in m^2/s. | tests/test_momentum_transport.py; tests/test_momentum_integration.py | validation_gap | #49 |
src/scpn_control/core/neural_equilibrium.py |
Neural equilibrium pretraining may use bounded synthetic Solovev-like equilibria, but fine-tuning and public predictive claims require fail-closed claim evidence tied to the same weight checksum and comparison against identical P-EFIT or documented public reference equilibria for psi, pressure, q-profile, LCFS boundary, and magnetic-axis position. | EFIT/P-EFIT equilibrium reconstruction workflow; Repository neural equilibrium model contract; Bounded Solovev-like synthetic equilibrium pretraining contract | SI magnetic flux, pressure, metre-scale geometry, and dimensionless q-profile arrays on declared grids. | tests/test_neural_equilibrium.py synthetic pretraining, reproducibility, JAX-compatible weight, fail-closed claim evidence, checksum matching, and real-EFIT admission tests; tests/test_jax_neural_equilibrium.py synthetic-pretrained weight loading through JAX inference; validation/benchmark_neural_equilibrium_pretraining.py deterministic synthetic pretraining and claim-admission benchmark; validation/validate_neural_equilibrium_reference.py strict digest-bound P-EFIT/reference artefact gate with report schema, payload digest, artefact file digest, portable paths, duplicate reference-set rejection, and blocked public-claim state; validation/convert_mast_efm_neural_equilibrium_reference.py converts public MAST EFM measured-shot Zarr campaigns into checksum-bound reference-candidate arrays while preserving strict predictive-claim blockage pending exact-model predictions and metric admission; validation/evaluate_mast_efm_neural_equilibrium.py evaluates current neural-equilibrium weights against converted public MAST EFM reference-candidate arrays with exact profile_r/profile_z grids, writes prediction artefacts, reports flux masked RMSE plus derived magnetic-axis and LCFS residuals, and preserves fail-closed predictive-claim blockage | external_dependency_blocked | #50 |
src/scpn_control/core/neural_transport.py |
Neural transport claims must declare input feature normalisation, QLKNN weight provenance, prediction targets, fallback critical-gradient thresholds, bounded density-channel particle diffusivity, bounded profile closure provenance, local benchmark errors, strict reference-artifact admission, weight checksum matching, uncertainty output, out-of-domain handling, and cross-validation against reference transport cases. | QuaLiKiz neural network transport surrogate references; repository QLKNN weight and metric contract | Inputs and outputs use declared transport feature units, diffusivity in m^2/s or declared normalisation, fluxes in SI or gyro-Bohm units with conversion metadata. | tests/test_neural_transport.py density-gradient and shear-dependent fallback particle diffusivity; tests/test_neural_transport_core.py profile fallback particle-channel checks, bounded closure provenance, fallback gating, fail-closed claim evidence, and checksum-matched reference admission checks; tests/test_qlknn_transport.py; validation/benchmark_neural_transport_claims.py deterministic local claim-admission benchmark; validation/validate_neural_transport_reference.py strict digest-bound QuaLiKiz/reference artifact gate | external_dependency_blocked | #50 |
src/scpn_control/core/neural_turbulence.py |
Neural turbulence claims must declare QLKNNSurrogate inputs, finite strictly ordered physical profile grids, feature scaling, banana-regime electron collisionality, bounded analytic quasilinear target variables, fallback behaviour, uncertainty handling, local analytic-target benchmark errors, strict reference-artifact admission, exact weight checksum matching, and cross-validation boundary against gyrokinetic or quasilinear turbulence references. | QLKNN turbulence surrogate references; repository neural turbulence surrogate contract | Feature and target units follow the declared turbulence surrogate schema; diffusivities, growth rates, and fluxes require explicit SI or normalised-unit metadata. | tests/test_neural_turbulence.py collisionality scaling, analytic target, training, save-load, denormalisation, fail-closed claim evidence, and checksum-matched reference admission checks; validation/benchmark_neural_turbulence_claims.py deterministic local claim-admission benchmark; validation/validate_neural_turbulence_reference.py strict GK-campaign/reference artifact gate | validation_gap | #50 |
src/scpn_control/core/gk_nonlinear.py |
Five-dimensional delta-f flux-tube Vlasov evolution with E cross B bracket, ballooning connection, kinetic electrons, and Sugama collision terms. | Dimits et al. 2000 Cyclone Base Case; Sugama et al. 2006 collision operator | Gyro-Bohm-normalised heat flux and chi_i with explicit R/L_Ti, rho_s, c_s, and reference gradient normalisation. | ROADMAP.md v0.18.0 open revalidation item; docs/joss_paper.md nonlinear GK validation limitation; validation/gk_nonlinear_cyclone.py saturation-evidence assessor | validation_gap | #47 |
src/scpn_control/core/orbit_following.py |
Orbit-following claims must declare guiding-centre equations, magnetic moment handling, finite pitch-angle bounds, banana-orbit width scaling, collision or loss assumptions, ensemble sampling, valid magnetic-geometry bounds, geometry/particle/collision/loss-boundary provenance, and matched banana-width and loss-fraction reference tolerances before external orbit-code or measured fast-ion claims. | Cordey 1981 orbit-width estimate; tokamak guiding-centre orbit references | SI metres, seconds, tesla, electronvolts, kg, coulombs, pitch angle in radians on [0, pi], and ensemble probabilities dimensionless. | tests/test_orbit_following.py verifies guiding-centre domain checks, classifier boundaries, Stix slowing-down, banana-width scaling, first-orbit-loss scaling, ensemble counts, and fail-closed orbit-following claim evidence admission; validation/benchmark_orbit_following_claims.py publishes deterministic bounded synthetic claim evidence with explicit external-code claim exclusion; validation/reports/orbit_following_claims.json records bounded geometry, particle, collision, loss-boundary, banana-width, first-orbit-loss, and ensemble-count evidence; validation/validate_orbit_reference.py strict orbit reference artefact gate | validation_gap | #49 |
src/scpn_control/control/realtime_efit.py |
Real-time equilibrium reconstruction claims must declare the fixed-boundary Grad-Shafranov solve, polynomial p-prime and FF-prime source profiles, diagnostic response interpolation, Rogowski current reconstruction, macroscopic-shape extraction assumptions, diagnostic provenance, matched-reference source, psi/Ip/q95/beta_pol/li tolerances, and facility-claim admission status. | Lao et al. 1985 EFIT equilibrium reconstruction; Strait et al. 2019 real-time EFIT workflow references; Repository GEQDSK and magnetic-diagnostic validation contracts | SI metres, webers per radian, tesla, amperes, pascals per weber, FF-prime units, and dimensionless q95, beta_pol, li, elongation, and triangularity. | tests/test_realtime_efit.py fixed-boundary solve and diagnostic reconstruction checks; tests/test_kinetic_efit.py kinetic EFIT integration checks; tests/test_validate_real_shots_equilibrium.py GEQDSK source residual checks; tests/test_realtime_efit.py claim-evidence provenance, matched-reference admission, and invalid-reference checks; validation/benchmark_efit_lite_claims.py bounded synthetic EFIT-lite claim-admission benchmark; validation/reports/efit_lite_claims.json bounded synthetic EFIT-lite claim report | bounded_model | #48 |
src/scpn_control/core/gyrokinetic_transport.py |
Reduced gyrokinetic transport claims must declare the dispersion relation, instability branch classification, quasilinear heat-flux closure, critical-gradient threshold, saturation rule, positive integer mode-count domain, tokamak geometry ordering, and mapping from local GK outputs to transport coefficients. | Cyclone Base Case gyrokinetic benchmark; quasilinear gyrokinetic transport closure references | Growth rates and frequencies in declared normalised units, gradients dimensionless or m^-1 with explicit convention, rho and epsilon dimensionless, geometry in metres, heat flux in gyro-Bohm or SI units with conversion metadata. | tests/test_gyrokinetic_transport.py dispersion branches, quasilinear fluxes, saturation monotonicity and boundedness, profile evaluation, and invalid-domain checks; tests/test_gk_benchmark_linear.py | validation_gap | #47 |
src/scpn_control/control/gym_tokamak_env.py |
0D/1D control plants must declare reduced-state equations, conservation assumptions, and controller-validity bounds before being used for hardware or facility claims. | Wesson 2011 tokamak transport references; Repository Gymnasium plant and digital-twin contracts | Declared plasma current, temperature, density, confinement, and actuator units per state vector field. | README.md validation limitation; docs/use_cases.md synthetic disruption prediction status; tests/test_gym_tokamak_env.py reduced-order plant bounds and action-contract checks | bounded_model | #51 |
src/scpn_control/control/rwm_feedback.py |
RWM feedback claims must declare the no-wall and ideal-wall beta limits, resistive-wall L/R time, optional wall-plasma gap correction, rotation-stabilisation term, active proportional or derivative feedback coupling, controller latency, coil coupling, sensor/coil topology, ideal-kink exclusion boundary, reference source, closed-loop growth-rate tolerance, and facility-claim admission status. | Bondeson and Ward 1994 resistive-wall-mode growth-rate model; Fitzpatrick 2001 rotation-stabilisation contribution; Strait et al. 2003 wall-plasma gap correction; Garofalo et al. 2002 active feedback experiments | Normalised beta dimensionless, wall time in seconds, toroidal rotation in rad/s, wall and plasma radii in metres, feedback gain dimensionless per declared coil coupling, growth rate in s^-1. | tests/test_rwm_feedback.py growth-rate, rotation, wall-geometry, feedback, ideal-kink, and required-gain checks; tests/test_rwm_feedback.py claim-evidence provenance, external tolerance admission, and invalid-domain checks; validation/benchmark_rwm_claims.py bounded local RWM claim-admission benchmark; validation/reports/rwm_claims.json bounded local RWM claim report | bounded_model | #51 |
src/scpn_control/core/tearing_mode_coupling.py |
Sawtooth-to-NTM seeding claims must declare sawtooth crash trigger, seed-island generation, rational-surface coupling, phase and amplitude assumptions, bounded bootstrap-current fraction, NTM coupling path, and exclusion of full nonlinear MHD crash dynamics. | sawtooth crash and NTM seeding references; repository tearing-mode coupling contract | Time in seconds, island width in metres, q dimensionless, rho dimensionless, phase in radians, local bootstrap-current fraction within [0, 1], and amplitude units declared per coupling signal. | tests/test_tearing_mode_coupling.py; tests/test_integrated_scenario.py | validation_gap | #49 |
src/scpn_control/control/tokamak_digital_twin.py |
Digital-twin claims must declare the 2D poloidal grid, q-profile topology update, rational-surface island mask, finite-difference diffusion, radiation-loss scaling with density and effective charge, actuator latency, RNG seed, IDS export assumptions, external simulator artifact provenance, and bounded online model-update parameters. | Repository digital-twin runtime contract; Wesson 2011 radiation-loss reference; TRANSP integrated modelling evidence contract; TSC time-dependent simulation evidence contract; Bayesian optimisation for bounded model calibration | Declared normalised grid indices, keV, m^-3, dimensionless q-profile values, actuator-lag summary units, RNG seed metadata, and IDS-compatible pulse history fields. | tests/test_tokamak_digital_twin.py deterministic twin checks; tests/test_digital_twin_physics.py physics-path checks; tests/test_digital_twin_online_update.py external artifact, loss, Bayesian-update, and deterministic benchmark checks; tests/test_digital_twin_reference_validation.py strict digital-twin artifact gate including TRANSP and TSC; validation/benchmark_digital_twin_online_update.py deterministic bounded online-update benchmark; validation/validate_digital_twin_reference.py strict reference-artifact gate | bounded_model | #51 |
src/scpn_control/core/integrated_transport_solver.py |
Integrated transport claims must declare the axis-to-edge radial grid, heat and particle diffusion equations, neoclassical closure, bootstrap-current fit, source deposition terms, boundary conditions, timestep limits, and coupling contracts to pedestal and gyrokinetic closures. | Chang-Hinton neoclassical transport model; Sauter et al. 1999 bootstrap-current fits; repository integrated transport solver contract | SI metres, seconds, m^-3, eV, W/m^3, m^2/s, amperes per square metre, and dimensionless profile coordinates with explicit axis-to-edge normalisation metadata. | tests/test_integrated_transport_solver.py; tests/test_transport_energy_conservation.py; tests/test_transport_neoclassical_guards.py | validation_gap | #49 |
src/scpn_control/control/volt_second_manager.py |
Volt-second management claims must declare inductive flux, resistive loop-voltage integration, Ejima startup flux, bootstrap-current correction, flat-top duration estimate, ramp and ramp-down decomposition, flux-budget margin assumptions, finite positive machine constants, nonnegative current and voltage domains, positive timesteps, and strictly ordered bootstrap-profile grids. | Wesson 2011 tokamak loop-voltage and flux-balance equations; Ejima et al. 1982 startup flux coefficient; ITER Physics Basis 1999 flat-top flux-budget references; Repository fail-closed volt-second claim-admission contract | SI webers, volt-seconds, henries, ohms, amperes, mega-amperes, seconds, metres, normalised profile radius, and dimensionless Ejima coefficient. | tests/test_volt_second_manager.py flux budget, scenario analysis, bootstrap-profile, domain-boundary, and claim-admission checks; validation/validate_volt_second_reference.py strict volt-second reference artifact gate; validation/benchmark_volt_second_claims.py bounded claim-admission benchmark | bounded_model | #51 |
Components¶
DIII-D experimental replay¶
- Fidelity status:
reference_validated - Module path:
validation/reference_data/diiid - Full-fidelity public claim: allowed
- External validation tracker: none
- Covered source paths: 0
- Required actions:
- Keep GEQDSK and disruption-shot reference manifests covered by checksum verification
- Use the MDSplus acquisition spec path for new facility artefacts instead of synthetic fixtures
DT burn control and alpha-heating model¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control/burn_controller.py - Full-fidelity public claim: blocked
- External validation tracker: #51 — Plasma-control and facility replay artefacts
- Covered source paths: 1
- Required actions:
- Attach strict documented public, integrated-transport benchmark, or measured burn replay artifacts before reactor-control claims
- Replace the burn-fraction approximation with a calibrated slowing-down and ash-removal model before facility extrapolation
ELM crash and RMP suppression approximation contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/elm_model.py - Full-fidelity public claim: blocked
- External validation tracker: #49 — Transport, edge, MHD, and scenario benchmark artefacts
- Covered source paths: 1
- Required actions:
- Validate ELM frequency, crash depth, pedestal profile drops, RMP suppression windows, and peak heat flux against measured H-mode campaign or published ELM cases
- Persist schema-versioned pre-crash, post-crash, event-catalog, and RMP artifact URIs with SHA-256 digests, pedestal rho grids, event windows, Type-I energy-fraction bounds, metrics, tolerances, and canonical payload digests with every ELM validation artefact
- Keep full-fidelity ELM/RMP claims blocked until measured or documented public reference artifacts pass the strict admission gate
EPED pedestal and peeling-ballooning approximation contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/eped_pedestal.py - Full-fidelity public claim: blocked
- External validation tracker: #49 — Transport, edge, MHD, and scenario benchmark artefacts
- Covered source paths: 1
- Required actions:
- Validate pedestal height and width against published EPED benchmark points or measured pedestal databases
- Record bootstrap-current, beta-limit, and shaping inputs for every pedestal validation artefact
- Keep full-fidelity EPED pedestal claims blocked until measured pedestal-database or documented public reference artifacts pass the strict admission gate
Grad-Shafranov fusion-kernel numerical contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/fusion_kernel.py - Full-fidelity public claim: blocked
- External validation tracker: #48 — Equilibrium and reconstruction reference artefacts
- Covered source paths: 1
- Required actions:
- Validate reconstructed equilibria against EFIT, GEQDSK, or published fixed-boundary benchmark cases
- Preserve residual norms, convergence metadata, and Rust/Python parity evidence for every validation artefact
JAX gyrokinetic numerical parity guard¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/jax_gk_solver.py - Full-fidelity public claim: blocked
- External validation tracker: #47 — External gyrokinetic validation artefacts
- Covered source paths: 1
- Required actions:
- Run backend parity over CBC, kinetic-electron TEM, and stable-mode cases with pinned tolerances
- Keep CPU/GPU backend parity evidence current for every release and continue blocking quantitative GK claims until external-code validation artefacts are supplied
Kuramoto-Sakaguchi phase synchronisation runtime¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/phase/kuramoto.py - Full-fidelity public claim: blocked
- External validation tracker: #53 — Hardware, HDL, CODAC/EPICS, and runtime deployment evidence
- Covered source paths: 1
- Required actions:
- Validate synchronisation and stability metrics against published Kuramoto-Sakaguchi benchmark cases before broader phase-control claims
- Generate current deployment-target Rust/Python parity and timestep-convergence evidence with validation/benchmark_kuramoto_runtime_evidence.py before deployment-target phase claims
MARFE radiation-condensation density-limit contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/marfe.py - Full-fidelity public claim: blocked
- External validation tracker: #49 — Transport, edge, MHD, and scenario benchmark artefacts
- Covered source paths: 1
- Required actions:
- Validate onset temperatures and density limits against measured or published MARFE cases
- Add impurity-specific radiation tables or documented provenance for each supported impurity species
- Keep full-fidelity MARFE density-limit claims blocked until measured MARFE campaign or documented public reference artifacts pass the strict admission gate
Miller local-equilibrium geometry and field-pitch contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/gk_geometry.py - Full-fidelity public claim: blocked
- External validation tracker: #47 — External gyrokinetic validation artefacts
- Covered source paths: 1
- Required actions:
- Compare metric coefficients and field-pitch factors against an independent Miller-geometry reference implementation or external equilibrium-code evidence
- Keep immutable schema-versioned evidence covering circular, shaped, and high-shear local equilibria
NTM island evolution and control approximation contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/ntm_dynamics.py - Full-fidelity public claim: blocked
- External validation tracker: #49 — Transport, edge, MHD, and scenario benchmark artefacts
- Covered source paths: 1
- Required actions:
- Validate island growth and suppression against measured or published NTM benchmark cases
- Persist q-profile, rational-surface, seed-island, and ECCD alignment metadata with each validation case
- Keep full-fidelity NTM forecasting and suppression claims blocked until measured NTM campaign or documented public reference artifacts pass the strict admission gate
RZIP rigid vertical stability model¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control/rzip_model.py - Full-fidelity public claim: blocked
- External validation tracker: #51 — Plasma-control and facility replay artefacts
- Covered source paths: 1
- Required actions:
- Calibrate vertical_inertia_kg against a documented plasma inertia or facility parameter source before facility claims
- Validate vertical growth rates against a reference RZIP, CREATE-L/NL, TSC, or measured vertical-displacement benchmark
SCPN FPGA fixed-point export boundary¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/scpn/fpga_export.py - Full-fidelity public claim: blocked
- External validation tracker: #53 — Hardware, HDL, CODAC/EPICS, and runtime deployment evidence
- Covered source paths: 1
- Required actions:
- Run generated HDL through real Vivado, Quartus, or Yosys synthesis before hardware readiness claims
- Persist resource utilisation, timing closure, and bit-accurate simulator evidence for every supported target family
SCPN formal Petri-net verification contract¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/scpn/formal_verification.py - Full-fidelity public claim: blocked
- External validation tracker: #53 — Hardware, HDL, CODAC/EPICS, and runtime deployment evidence
- Covered source paths: 1
- Required actions:
- Persist formal verification reports with every safety-critical compiled controller artifact
- Validate certification packages with an external safety-case review before hardware-control claims
- Promote optional SMT-backed proof obligations only after solver-specific proof artifacts are persisted
- Require schema-versioned Z3 report payload digests to match safety-critical proof manifests before artifact admission
- Resolve typed readiness artifact URIs under an explicit artifact root and validate target-hardware timing reports through the E2E latency evidence gate before promotion readiness.
- Require qualified HIL replay, HDL export, CODAC/EPICS runtime, and WebSocket runtime evidence artifacts before controller safety-case promotion readiness.
- Admit safety-critical
.scpnctlartifacts only through the bounded formal-verification manifest gate - Bind admitted proof manifests to the exact canonical artifact payload digest and declared report digest
- Bind promoted controller safety-case bundles to the same controller artifact digest across formal proof, differentiable-transport, and digital-twin update evidence
- Persist controller safety-case bundles with schema-versioned integrity manifests before replay admission
- Keep controller safety-case readiness blocked until external physics validation, target-hardware timing, qualified runtime/hardware evidence, and independent safety-review digests are all present
- Prefer typed readiness artifacts with safe relative URIs, producers, timestamps, and kind-specific SHA-256 digests over anonymous promotion digests
- Persist controller safety-case readiness decisions with schema-versioned integrity manifests before promotion replay
- Publish optional Z3 bounded-model-checking artifacts with every SMT-backed proof obligation
- Treat missing
z3-solveras blocked SMT evidence, not as a successful proof
VMEC-lite stellarator equilibrium approximation contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/vmec_lite.py - Full-fidelity public claim: blocked
- External validation tracker: #48 — Equilibrium and reconstruction reference artefacts
- Covered source paths: 1
- Required actions:
- Validate surface geometry and rotational-transform outputs against VMEC or published stellarator benchmark equilibria before full VMEC claims
- Persist Fourier truncation, field periods, pressure profile, iota profile, current assumption, sampled major-radius bounds, residual tolerance, reference errors, and admission status for every promoted VMEC-lite claim
advanced SOC turbulence learning controller¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control/advanced_soc_fusion_learning.py - Full-fidelity public claim: blocked
- External validation tracker: #51 — Plasma-control and facility replay artefacts
- Covered source paths: 1
- Required actions:
- Replace sandpile turbulence proxy with gyrokinetic or measured turbulence evidence before transport-control claims
- Validate Q-learning policy behaviour against replayed plasma-control objectives before control-readiness claims
auxiliary current-drive deposition and efficiency model¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/core/current_drive.py - Full-fidelity public claim: blocked
- External validation tracker: #49 — Transport, edge, MHD, and scenario benchmark artefacts
- Covered source paths: 1
- Required actions:
- Attach strict ray-tracing, Fokker-Planck, measured deposition, or documented public artifacts before external current-drive claims
- Persist source power, deposition kernel, rho grid, density and temperature profiles, launch geometry, and efficiency coefficients for every promoted current-drive claim
blob transport and scrape-off-layer approximation contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/blob_transport.py - Full-fidelity public claim: blocked
- External validation tracker: #49 — Transport, edge, MHD, and scenario benchmark artefacts
- Covered source paths: 1
- Required actions:
- Validate blob velocity and spreading against measured probe-campaign or published SOL filament cases
- Persist schema-versioned reference, profile, and detector artifact URIs with SHA-256 digests, SOL unit contracts, separatrix-to-wall coordinates, detector event domains, blob-size domains, magnetic-geometry metadata, metrics, tolerances, and canonical payload digests with each validation artefact
- Keep full-fidelity SOL blob-transport claims blocked until measured or documented public reference artifacts pass the strict admission gate
bounded analytical approximations in physics modules¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/core - Full-fidelity public claim: blocked
- External validation tracker: #49 — Transport, edge, MHD, and scenario benchmark artefacts
- Covered source paths: 0
- Required actions:
- Keep this parent entry as a non-source guardrail for future core approximation markers
- Require every new core approximation marker to land with a source-specific traceability entry and validation evidence
bounded control plant approximations¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control - Full-fidelity public claim: blocked
- External validation tracker: #51 — Plasma-control and facility replay artefacts
- Covered source paths: 0
- Required actions:
- Keep this parent entry as a non-source guardrail for future reduced-order control plant markers
- Require every new control plant marker to land with a controller-specific traceability entry and replay or higher-fidelity evidence
bounded phase and spiking runtime approximations¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control - Full-fidelity public claim: blocked
- External validation tracker: #53 — Hardware, HDL, CODAC/EPICS, and runtime deployment evidence
- Covered source paths: 0
- Required actions:
- Keep this parent entry as a non-source guardrail for future phase, spiking, and replay runtime markers
- Require every new runtime marker to land with a source-specific traceability entry plus hardware-target or replay-fixture evidence
bounded static structured-singular-value control analysis¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control/mu_synthesis.py - Full-fidelity public claim: blocked
- External validation tracker: #51 — Plasma-control and facility replay artefacts
- Covered source paths: 1
- Required actions:
- Attach strict documented public, external mu-toolbox, or measured control replay artifacts before validated robust-control claims
- Wire a validated frequency-dependent H-infinity synthesis backend before making full D-K synthesis claims
- Persist benchmark plants, frequency grids, D-scale fits, mu upper/lower bounds, and canonical evidence payload digests for every promoted controller claim
checkpoint state serialisation boundary contract¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/core/checkpoint.py - Full-fidelity public claim: blocked
- External validation tracker: #53 — Hardware, HDL, CODAC/EPICS, and runtime deployment evidence
- Covered source paths: 1
- Required actions:
- Version checkpoint schemas before long-running production campaigns depend on replay compatibility
- Add migration fixtures for every future checkpoint schema change
density control and particle-source model¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control/density_controller.py - Full-fidelity public claim: blocked
- External validation tracker: #51 — Plasma-control and facility replay artefacts
- Covered source paths: 1
- Required actions:
- Validate Greenwald fraction and particle inventory changes against measured discharge, external particle-balance, or facility replay references before facility-calibrated claims
- Persist geometry, transport profiles, actuator limits, diagnostic source, timestep/CFL state, source integrals, particle inventory deltas, reference tolerances, and claim-admission status with every promoted density-control claim
differentiable transport facade contract¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/core/differentiable_transport.py - Full-fidelity public claim: blocked
- External validation tracker: #49 — Transport, edge, MHD, and scenario benchmark artefacts
- Covered source paths: 1
- Required actions:
- Wire each remaining legacy transport surface through an equivalent differentiable path before claiming end-to-end transport autodiff
- Validate differentiable transport profiles and equilibrium-weighted gradients against measured discharges or published integrated-modelling benchmarks
- Persist backend, dtype, runtime-provenance, radial-grid, boundary-condition, rollout-length, equilibrium-grid, flux-weighting, gradient-tolerance, gradient-audit digest, and replay-drift metadata for controller-tuning campaigns
- Replace bounded reduced-gyrokinetic and JAX GK stiffness closures with externally validated GK transport coefficients before quantitative transport-control claims
- Bind promoted differentiable-transport evidence to the safety-critical controller proof artifact digest when used in a controller safety case
digital twin online model updating¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control/digital_twin_online_update.py - Full-fidelity public claim: blocked
- External validation tracker: #51 — Plasma-control and facility replay artefacts
- Covered source paths: 1
- Required actions:
- Provide validated TRANSP, TSC, measured-discharge, or documented public-reference artifacts before measured replay claims
- Validate online update trajectories against replayed or measured discharge histories before deployment use
- Persist simulator artifact hashes, units, case ids, strictly increasing time bases, observation digests, prior digests, result digests, finite loss-history minima, parameter-domain admission, and baseline-improvement evidence for every promoted update campaign
- Bind promoted online-update evidence to the safety-critical controller proof artifact digest when used in a controller safety case
direct free-boundary tracking controller¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control/free_boundary_tracking.py - Full-fidelity public claim: blocked
- External validation tracker: #51 — Plasma-control and facility replay artefacts
- Covered source paths: 1
- Required actions:
- Attach strict documented public, measured-replay, or external equilibrium benchmark artifacts before facility-control claims
- Attach actuator, latency, and sensor-calibration evidence for the target device before deployment claims
disruption mitigation contract layer¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control/disruption_contracts.py - Full-fidelity public claim: blocked
- External validation tracker: #52 — Disruption, halo-current, and mitigation benchmark artefacts
- Covered source paths: 1
- Required actions:
- Replace synthetic disruption signals with measured labelled disruption windows before predictive claims
- Validate mitigation-cocktail, halo, runaway, and TBR couplings against experimental or benchmark artefacts
disruption sequence phase-ordering contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/disruption_sequence.py - Full-fidelity public claim: blocked
- External validation tracker: #52 — Disruption, halo-current, and mitigation benchmark artefacts
- Covered source paths: 1
- Required actions:
- Validate phase timing, post-quench temperature, and mitigation branches against labelled measured disruption windows
- Persist shot identifiers, phase labels, thermal-quench duration, radiation-time assumption, timing tolerances, and mitigation metadata for sequence validation
external gyrokinetic interfaces¶
- Fidelity status:
external_dependency_blocked - Module path:
src/scpn_control/core/gk_interface.py - Full-fidelity public claim: blocked
- External validation tracker: #47 — External gyrokinetic validation artefacts
- Covered source paths: 1
- Required actions:
- Run each interface against a real executable or documented public reference output
- Persist schema-versioned artifacts with safe deck/raw-output/parsed-output URIs and SHA-256 digests
- Promote parser fixtures from mock subprocesses to immutable external-code artefacts sealed by canonical payload digests
federated disruption prediction¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control/federated_disruption.py - Full-fidelity public claim: blocked
- External validation tracker: #52 — Disruption, halo-current, and mitigation benchmark artefacts
- Covered source paths: 1
- Required actions:
- Supply measured multi-facility disruption shot databases with immutable provenance manifests before claiming cross-facility predictive validation
- Run the same federation and differential-privacy contracts against those measured facility datasets before deployment claims
full-chain uncertainty quantification contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/uncertainty.py - Full-fidelity public claim: blocked
- External validation tracker: #49 — Transport, edge, MHD, and scenario benchmark artefacts
- Covered source paths: 1
- Required actions:
- Calibrate uncertainty priors against measured or published scenario ensembles before predictive facility-UQ claims
- Persist random seeds, distribution parameters, sample counts, percentile ordering, finite-output checks, convergence diagnostics, sensitivity metrics, reference tolerances, and claim-admission status with every UQ artefact
geometry-neutral stellarator replay fixture¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/scpn/geometry_neutral_replay.py - Full-fidelity public claim: blocked
- External validation tracker: #48 — Equilibrium and reconstruction reference artefacts
- Covered source paths: 1
- Required actions:
- Replace synthetic W7-X-like replay inputs with measured or benchmark stellarator field-line artefacts before device-control claims
- Generate schema-versioned replay evidence for every promoted replay and keep measured or benchmark device claims blocked until external artefact digests and non-synthetic magnetic provenance are supplied
gyrokinetic OOD detector distribution-bound contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/gk_ood_detector.py - Full-fidelity public claim: blocked
- External validation tracker: #47 — External gyrokinetic validation artefacts
- Covered source paths: 1
- Required actions:
- Calibrate thresholds against real or published GK campaign ensembles
- Keep strict schema-versioned calibration evidence with Mahalanobis-metric provenance, false-positive, false-negative, and OOD-recall acceptance criteria for deployment gating
gyrokinetic online learner stability contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/gk_online_learner.py - Full-fidelity public claim: blocked
- External validation tracker: #47 — External gyrokinetic validation artefacts
- Covered source paths: 1
- Required actions:
- Validate learner updates on immutable gyrokinetic campaign artefacts with held-out distribution-shift cases
- Persist model weights, rollback decisions, validation metrics, OOD thresholds, and source provenance for every online update
gyrokinetic species and collision bounded-operator contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/gk_species.py - Full-fidelity public claim: blocked
- External validation tracker: #47 — External gyrokinetic validation artefacts
- Covered source paths: 1
- Required actions:
- Validate bounded test-particle collision coefficients against a published gyrokinetic or Fokker-Planck reference case before facility claims
- Add field-particle momentum-conservation and full multispecies collision-operator evidence before claiming quantitative collisional damping
halo current and runaway electron disruption model¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control/halo_re_physics.py - Full-fidelity public claim: blocked
- External validation tracker: #52 — Disruption, halo-current, and mitigation benchmark artefacts
- Covered source paths: 1
- Required actions:
- Validate halo current and runaway-current envelopes against measured disruption databases before mitigation claims
- Attach wall-contact geometry and impurity-radiation evidence before extrapolating beyond the declared ensemble domain
- Persist ensemble seed, run count, halo/runaway P95 metrics, toroidal-peaking-factor summary, reference source, tolerances, errors, and admission status before promoted mitigation claims
ideal-MHD stability metric approximation contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/stability_mhd.py - Full-fidelity public claim: blocked
- External validation tracker: #49 — Transport, edge, MHD, and scenario benchmark artefacts
- Covered source paths: 1
- Required actions:
- Compare stability metrics against an independent MHD stability code or published benchmark profiles
- Store profile grids, interpolation choices, and unstable-region metadata with each stability validation artefact
integrated scenario coupling contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/integrated_scenario.py - Full-fidelity public claim: blocked
- External validation tracker: #49 — Transport, edge, MHD, and scenario benchmark artefacts
- Covered source paths: 1
- Required actions:
- Validate coupled scenario trajectories against measured discharges or published integrated-modelling benchmarks
- Persist module-by-module state exchange, timestep, and convergence metadata with every scenario artefact
kinetic EFIT pressure and q-profile coupling¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/core/kinetic_efit.py - Full-fidelity public claim: blocked
- External validation tracker: #48 — Equilibrium and reconstruction reference artefacts
- Covered source paths: 1
- Required actions:
- Validate kinetic pressure, q-profile, and anisotropy residuals against matched EFIT or P-EFIT reference equilibria before facility claims
- Persist diagnostic source, interpolation geometry, fast-ion model provenance, MSE calibration, uncertainty, reference tolerances, and claim-admission status for every promoted kinetic-equilibrium claim
linear gyrokinetic cross-code agreement¶
- Fidelity status:
external_dependency_blocked - Module path:
src/scpn_control/core/gk_eigenvalue.py - Full-fidelity public claim: blocked
- External validation tracker: #47 — External gyrokinetic validation artefacts
- Covered source paths: 1
- Required actions:
- Install or provide real external GK binaries
- Run native-vs-external benchmark cases and store parser artefact evidence
- Persist SHA-256 digests for external input decks, external outputs, native inputs, and canonical comparison reports before full-fidelity GK claims
momentum transport and torque-balance approximation contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/momentum_transport.py - Full-fidelity public claim: blocked
- External validation tracker: #49 — Transport, edge, MHD, and scenario benchmark artefacts
- Covered source paths: 1
- Required actions:
- Validate torque deposition and rotation evolution against measured or published NBI momentum cases
- Add acceptance artefacts for low-torque, high-torque, and sign-changing rotation profiles
neural equilibrium cross-validation¶
- Fidelity status:
external_dependency_blocked - Module path:
src/scpn_control/core/neural_equilibrium.py - Full-fidelity public claim: blocked
- External validation tracker: #50 — Neural surrogate validation artefacts
- Covered source paths: 1
- Required actions:
- Acquire matched P-EFIT reference equilibria or an openly redistributable equivalent
- Persist schema-versioned reference and prediction artefact URIs with SHA-256 digests, exact weight checksum, grid shape, target schema, unit contracts, and declared psi/pressure/q-profile/boundary/axis tolerances
- Keep predictive equilibrium claims blocked until immutable reference artefacts are sealed by canonical payload digests and validate the exact surrogate weight checksum
neural transport surrogate validation contract¶
- Fidelity status:
external_dependency_blocked - Module path:
src/scpn_control/core/neural_transport.py - Full-fidelity public claim: blocked
- External validation tracker: #50 — Neural surrogate validation artefacts
- Covered source paths: 1
- Required actions:
- Acquire or generate immutable reference QLKNN or transport benchmark cases for cross-validation
- Persist schema-versioned reference and prediction artifact URIs with SHA-256 digests, exact weight checksum, QLKNN-10D feature schema, target schema, uncertainty metadata, OOD decisions, reference metrics, tolerances, and admission status with every surrogate evaluation
- Gate quantitative QuaLiKiz, QLKNN, or documented-reference transport claims on strict reference artifacts sealed by canonical payload digests and matched to the exact neural weight checksum
neural turbulence surrogate validation contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/neural_turbulence.py - Full-fidelity public claim: blocked
- External validation tracker: #50 — Neural surrogate validation artefacts
- Covered source paths: 1
- Required actions:
- Validate surrogate outputs against immutable gyrokinetic or QuaLiKiz turbulence benchmark cases
- Persist feature schema, weight checksum, local Q_i/Q_e/Gamma_e errors, critical-gradient accuracy, reference source, tolerances, and claim-admission status before quantitative turbulence claims
- Gate quantitative gyrokinetic, QuaLiKiz, or documented-reference turbulence claims on strict reference artifacts that match the exact neural weight checksum
nonlinear gyrokinetic heat-flux saturation¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/gk_nonlinear.py - Full-fidelity public claim: blocked
- External validation tracker: #47 — External gyrokinetic validation artefacts
- Covered source paths: 1
- Required actions:
- Run a long enough nonlinear CBC campaign to saturated chi_i
- Compare saturated heat flux against published or real cross-code reference data
orbit-following guiding-centre approximation contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/orbit_following.py - Full-fidelity public claim: blocked
- External validation tracker: #49 — Transport, edge, MHD, and scenario benchmark artefacts
- Covered source paths: 1
- Required actions:
- Validate orbit widths and loss fractions against an independent orbit-following code or published benchmark cases before external orbit-code claims
- Persist particle species, pitch, energy, geometry, ensemble seed or counts, collision model, wall/loss boundary, reference tolerances, and claim-admission status with each validation artefact
real-time EFIT-lite equilibrium reconstruction¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control/realtime_efit.py - Full-fidelity public claim: blocked
- External validation tracker: #48 — Equilibrium and reconstruction reference artefacts
- Covered source paths: 1
- Required actions:
- Validate reconstructed psi, Ip, q95, beta_pol, and li against matched EFIT or P-EFIT equilibria before facility claims
- Replace synthetic diagnostic-response evidence with measured flux-loop, B-probe, and Rogowski artefacts when facility data are available
reduced gyrokinetic transport closure contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/gyrokinetic_transport.py - Full-fidelity public claim: blocked
- External validation tracker: #47 — External gyrokinetic validation artefacts
- Covered source paths: 1
- Required actions:
- Compare predicted growth rates and transport coefficients with external GK or published quasilinear benchmark cases
- Store branch classification and saturation metadata for every transport-closure validation case
reduced-order plant and control environments¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control/gym_tokamak_env.py - Full-fidelity public claim: blocked
- External validation tracker: #51 — Plasma-control and facility replay artefacts
- Covered source paths: 1
- Required actions:
- Separate reduced-order training claims from facility-control claims in generated reports
- Add plant-model validity bounds and cross-checks against higher-fidelity replay cases
resistive-wall-mode feedback model¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control/rwm_feedback.py - Full-fidelity public claim: blocked
- External validation tracker: #51 — Plasma-control and facility replay artefacts
- Covered source paths: 1
- Required actions:
- Validate beta-window, rotation, and feedback-gain predictions against measured RWM shots or external MHD stability references before facility-control claims
- Persist wall geometry, rotation profile, coil coupling, sensor geometry, controller latency, and beta-limit provenance for every promoted RWM claim
sawtooth-to-NTM seeding approximation contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/tearing_mode_coupling.py - Full-fidelity public claim: blocked
- External validation tracker: #49 — Transport, edge, MHD, and scenario benchmark artefacts
- Covered source paths: 1
- Required actions:
- Validate seed-island amplitudes and NTM triggering windows against measured or published sawtooth-triggered NTM cases
- Persist pre-crash q-profile, crash amplitude, rational-surface, and coupling metadata with each validation case
tokamak digital twin topology and diffusion model¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control/tokamak_digital_twin.py - Full-fidelity public claim: blocked
- External validation tracker: #51 — Plasma-control and facility replay artefacts
- Covered source paths: 1
- Required actions:
- Provide validated TRANSP, TSC, measured-discharge, or documented public-reference artifacts before measured replay claims
- Replace normalised 2D diffusion dynamics with equilibrium and transport-calibrated state evolution before facility twin claims
- Validate online update trajectories against replayed or measured discharge histories before deployment use
transport solver neoclassical and source-term approximation contract¶
- Fidelity status:
validation_gap - Module path:
src/scpn_control/core/integrated_transport_solver.py - Full-fidelity public claim: blocked
- External validation tracker: #49 — Transport, edge, MHD, and scenario benchmark artefacts
- Covered source paths: 1
- Required actions:
- Validate radial transport profiles against a measured discharge or published integrated-modelling benchmark
- Persist source deposition, boundary condition, and convergence metadata with every transport validation artefact
volt-second budget and flux-consumption manager¶
- Fidelity status:
bounded_model - Module path:
src/scpn_control/control/volt_second_manager.py - Full-fidelity public claim: blocked
- External validation tracker: #51 — Plasma-control and facility replay artefacts
- Covered source paths: 1
- Required actions:
- Attach strict documented public, measured loop-voltage replay, or external scenario benchmark artifacts before scenario-duration claims
- Replace bootstrap-current proxy with neoclassical or transport-solver evidence before facility extrapolation