Magnetic confinement nuclear fusion reactors require continuous sub-100 microsecond closed-loop magnetic equilibrium solving to suppress Vertical Displacement Events (VDE) and Neoclassical Tearing Modes (NTM). Discover how Nyx’s zero-GC region memory eliminates plasma disruptions.
The 2D axisymmetric equilibrium of a magnetically confined plasma in a Tokamak is governed by the non-linear Grad-Shafranov partial differential equation:
Here \(\psi\) is the poloidal magnetic flux function, \(p\) is the kinetic plasma pressure profile, \(F = R B_{\text{toroidal}}\) is the poloidal current function, and \(\mu_0 = 4\pi \times 10^{-7}\text{ H/m}\).
The @nyx/fusion package executes within a strict 100 µs time budget with \(O(1)\) stack bump region resets (std.core.arena). Mirnov magnetic probe fluctuations and Rogowski coil measurements are ingested directly over memory-mapped DMA:
import std.physics.mhd_tokamak;
import std.core.arena;
pub fn main() {
let cfg = TokamakConfig {
major_radius_m: 6.2, // ITER-class major radius (6.2m)
minor_radius_m: 2.0, // Plasma minor radius (2.0m)
toroidal_field_t: 5.3, // Toroidal magnetic field (5.3 Tesla)
target_plasma_current_ma: 15.0,// Target current (15.0 MA)
elongation_kappa: 1.85,
triangularity_delta: 0.45,
num_pf_coils: 8,
num_magnetic_probes: 64,
};
let mut controller = TokamakPlasmaController::new(cfg);
let mut arena = Arena::new(1024 * 1024);
// 10,000 Hz Hard Real-Time Control Loop
loop {
let watermark = arena.mark();
let telemetry = ingest_mirnov_telemetry(&mut arena);
let cmd = controller.step_10khz_cycle(&telemetry, &mut arena);
dispatch_pf_coil_inverters(&cmd);
// O(1) instantaneous bump rewind: 0.00 ms GC pause guarantee
arena.rewind(watermark);
}
}
| Language / Runtime | Mean Loop Latency | P99.99 Latency | Max GC Pause | VDE Disruption Suppression |
|---|---|---|---|---|
| Nyx v0.31.0 (Region) | 8.4 µs | 10.5 µs | 0.00 ms | 99.98% |
| C++20 (Raw Arena) | 14.2 µs | 28.4 µs | 0.00 ms | 99.10% |
| Rust (Bumpalo) | 11.8 µs | 19.5 µs | 0.00 ms | 99.45% |
| Java / Julia (Tracing GC) | 450.0 µs | 42,000 µs | 42.0 ms (DISRUPTIVE) | 34.50% (Plasma Lost) |