FUSION FRC contract adapter — scpn_mif_core.physics.fusion_frc_contract¶
Surface: MIF-side adapter for SCPN-FUSION-CORE FRC physics contracts.
Sync state: mirror/consumer contract. FUSION owns the solvers; MIF only
detects the public API shape and claim-boundary statuses.
The adapter answers one operational question: can MIF wire against the current FUSION FRC surfaces without duplicating physics kernels locally?
The report intentionally separates symbol readiness from physics-evidence
readiness. ready_for_mif_integration only means that the required callable
surface is present. ready_for_full_evidence is stricter: every required symbol
must be present and no FUSION status hook may report a blocked_* evidence
boundary.
It checks the seven FUSION-owned surfaces:
| ID | Surface | MIF use |
|---|---|---|
| FUS-C.1 | FRC rigid-rotor equilibrium | startup state for compression and stability diagnostics; rotating-BVP acceptance status remains visible to MIF |
| FUS-C.2 | axisymmetric pulsed Hall-MHD carrier | flux evolution input to trigger/replay work |
| FUS-C.3 | non-adiabatic flux constraint | carrier equation used by compression coupling |
| FUS-C.4 | MRTI growth spectrum | compression-instability preemption diagnostic |
| FUS-C.5 | FRC tilt-mode diagnostic | n = 1 tilt guard surface |
| FUS-C.6 | pulsed compression | self-consistent radius, field, work, and flux sidecars |
| FUS-C.7 | Faraday recovery over compression trajectories | recovery-energy accounting over FUS-C.6 trajectories |
Several FUSION surfaces intentionally expose fail-closed claim boundaries while external public digitised-reference parity remains unavailable. MIF preserves the FUS-C.1 rotating-BVP status, the FUS-C.2 Ono/Gkeyll Hall-MHD statuses, the FUS-C.5 Belova tilt status, and the FUS-C.6 Slough compression status in its readiness report. MIF may consume the accepted executable carrier only if those blocked full-evidence statuses are kept visible in documentation, tests, and downstream reports.
Public Python API¶
Optional contract adapter for SCPN-FUSION-CORE FRC physics surfaces.
The adapter is deliberately introspective. MIF consumes FUSION-owned physics by contract and must not duplicate or dispatch those kernels locally.
FUSION_FRC_SURFACES = (FusionFRCSurface(module_id='FUS-C.1', name='FRC rigid-rotor equilibrium', required_symbols=('RigidRotorFRCInputs', 'solve_frc_equilibrium'), claim_status_functions=('rotating_frc_bvp_acceptance_status',)), FusionFRCSurface(module_id='FUS-C.2', name='Axisymmetric pulsed Hall-MHD carrier', required_symbols=('HallMHDPulsedConfig', 'initial_hall_mhd_pulsed_state', 'step_hall_mhd_pulsed', 'run_hall_mhd_pulsed'), claim_status_functions=('ono_fig4_acceptance_status', 'gkeyll_small_hall_acceptance_status')), FusionFRCSurface(module_id='FUS-C.3', name='Non-adiabatic flux constraint', required_symbols=('solve_flux_evolution_nonadiabatic',)), FusionFRCSurface(module_id='FUS-C.4', name='MRTI growth spectrum', required_symbols=('MRTISpectrumTracker', 'mrti_growth_rate', 'track_mrti_from_pulsed_compression')), FusionFRCSurface(module_id='FUS-C.5', name='FRC tilt-mode diagnostic', required_symbols=('frc_tilt_growth_rate', 'tilt_mode_report', 'tilt_mode_trajectory_from_pulsed_compression'), claim_status_functions=('belova_table1_acceptance_status',)), FusionFRCSurface(module_id='FUS-C.6', name='Pulsed compression', required_symbols=('PulsedCompressionConfig', 'initial_pulsed_compression_state', 'step_pulsed_compression', 'run_pulsed_compression'), claim_status_functions=('slough_fig5_acceptance_status',)), FusionFRCSurface(module_id='FUS-C.7', name='Faraday recovery over compression trajectories', required_symbols=('faraday_back_emf', 'faraday_trajectory_from_pulsed_compression', 'integrated_recovery_energy')))
module-attribute
¶
FusionFRCSurface(module_id, name, required_symbols, claim_status_functions=())
dataclass
¶
Required FUSION-owned FRC surface consumed by MIF.
FusionFRCSurfaceReport(module_id, name, present, missing_symbols, claim_statuses)
dataclass
¶
Availability and claim-boundary report for one FUSION surface.
FusionFRCContractReport(surfaces)
dataclass
¶
Aggregate MIF-side readiness report for the FUSION FRC contract.
ready_for_mif_integration
property
¶
Return whether every required public symbol is present.
ready_for_full_evidence
property
¶
Return whether public symbols are present without blocked evidence claims.
missing_required_symbols
property
¶
Return missing symbols as FUS-C.X:symbol entries.
blocked_claim_boundaries
property
¶
Return claim-boundary statuses that still explicitly block full evidence.
inspect_fusion_frc_contract(fusion_core=None)
¶
Inspect whether the FUSION FRC surfaces needed by MIF are available.
load_fusion_core()
¶
Import the optional scpn_fusion.core public surface.
Validation¶
The MIF contract tests include:
- module-specific adapter tests using a synthetic FUSION core object;
- explicit separation between API-symbol readiness and full-evidence readiness;
- malformed claim-status hooks ignored unless they return a string status;
- a sibling contract test that imports
scpn_fusion.corewhen the ecosystem extra is installed; - a dispatch hygiene test ensuring FUSION-owned FRC physics is not registered as a MIF runtime dispatch kernel.