Know the moment
a run converges.

Five lines. Then the cost.
$ courant stop ./cavity STOP quantity pSTOP stationary iteration 53 of 100STOP delta |p(53) − p(100)| / |p(100)|STOP past 47 iterations · wall-clock · AUh
- 01The answer at the stopping point, and at the end
- 02How much the answer changed after the stopping point
- 03Iterations past convergence
- 04Wall-clock past convergence
- 05Allocation unit hours past convergence
Steady or transient. Stated.
- Looks for
- A fixed point.
- Method
- Every monitor and residual tested for one.
- Stops at
- The first iteration none of them moves from.
A limit cycle is a verdict, not a stop.
- Looks for
- A statistic.
- Method
- MSER-5 truncation, batch means, a stationarity test.
- Stops at
- When the interval on the mean stays narrow.
The answer is a mean, with its uncertainty.
Allocation, returned.
AUh = cores × wall-clock seconds × clock frequency (GHz) ÷ 3600
Metered in allocation unit hours. Stop reports the hours spent past the stopping point, every run. FIA 2026 Section F2026 Formula 1 Regulations, Section F: Operational, Aerodynamic Testing Restrictions
It advises. It never stops the run.
- Reads the log and the monitor output. Nothing else.
- Live in courant watch, as a line prefixed STOP:
- Never sends a signal to a process.
- Priced per team, annually, against allocation returned.
- Stop is Attest's convergence check, sold on its own.
Send a result that has to hold up.
Know the moment a run converges. Stop paying for the rest.