Campaign Parameter-Sweep Orchestration
A sweep orchestrator generates comparable shot plans across a parameter grid, submits them by priority, and adapts the grid from results.
Systematic exploration
A breeder campaign explores how the machine behaves as parameters vary: fuelling, heating waveform, shape, and the tritium breeding ratio design lever across 1.1, 1.5, and 1.8. The sweep orchestrator turns a parameter specification into an ordered set of individual shot plans, each identical in structure so results are directly comparable, and submits them to the scheduler.
Grid to plans
grid = product(fuelling=[...], heating=[...], tbr_lever=[1.1,1.5,1.8])
for point in ordered(grid, by=RISK_ASCENDING): # safe points first
plan = shot_plan(base=campaign.base, overrides=point)
plan.priority = P2
scheduler.submit(plan) # each runs on the shot state machine
Safety-ordered execution
- Points are ordered so lower-risk operating points run before more aggressive ones.
- A new point at the frontier of the sweep is treated as a new operating point and may require higher approval authority.
- Every commanded point is still bounded by the envelope; the sweep cannot request an out-of-envelope point.
Adaptive sweeps
The sweep can be adaptive: results from completed shots (fed by the twin and diagnostics) reshape the remaining grid, concentrating shots where behavior is most informative or refining near a boundary. A copilot (L5) may propose the next point, but that proposal is gated exactly like any other action, so an adaptive sweep never escapes the safety discipline.
Rollup and reproducibility
Per-shot results roll up into the tritium campaign workflow accounting, and the entire sweep, its grid, ordering, and adaptations, is journalled so it is fully replayable. As a design-and-simulation study, sweeps are first executed against the twin, so the sweep logic and its safety ordering are proven before the breeder is built.