Skip to content

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.core when the ecosystem extra is installed;
  • a dispatch hygiene test ensuring FUSION-owned FRC physics is not registered as a MIF runtime dispatch kernel.