Problem
To adjust a running case today, the only option is a hard kill + restart from
checkpoint — brutal, and it discards in-flight work. code_saturne already exposes a
lightweight steering mechanism (control_file, dropped in the run dir and polled by the
solver each time step) that csauto doesn't surface.
Proposal
Surface control_file in the CLI and the dashboard instead of killing:
- Graceful stop — set the last time step to the current one (clean stop + checkpoint).
- Extend — raise
max_time_step by N without restarting.
- Checkpoint now — request a checkpoint at the next step.
- Flush logs.
csauto control RUNS case0007 --stop # graceful stop
csauto control RUNS case0007 --extend 500 # +500 time steps
csauto control RUNS case0007 --checkpoint
Notes
- "Extend" is the high-value one: it avoids the kill + restart-from-checkpoint round-trip.
- Exact directive syntax follows the installed code_saturne version — read from docs, don't
hardcode; write the control_file into the active RESU/<run> dir.
- Dashboard: add "Stop gracefully" + "Extend" actions alongside the existing hard "Kill"
(which stays as a fallback). Log each action to .csauto.history.jsonl.
Acceptance criteria
Problem
To adjust a running case today, the only option is a hard
kill+restartfromcheckpoint — brutal, and it discards in-flight work. code_saturne already exposes a
lightweight steering mechanism (
control_file, dropped in the run dir and polled by thesolver each time step) that csauto doesn't surface.
Proposal
Surface
control_filein the CLI and the dashboard instead of killing:max_time_stepby N without restarting.Notes
hardcode; write the
control_fileinto the activeRESU/<run>dir.(which stays as a fallback). Log each action to
.csauto.history.jsonl.Acceptance criteria
control --stopproduces a clean stop + checkpoint (no orphaned process).control --extend Ncontinues a running case without restart.control --checkpointtriggers a checkpoint at the next step.