The reliability engineerfor every simulation.
curl -fsSL get.courant.dev | sh02The loop
How Courant fixes
your simulations
Time = 0.145
Courant Number mean: 0.42 max: 113.4
smoothSolver: Solving for Ux, Initial residual = 0.211
smoothSolver: Solving for Uy, Initial residual = 0.318
GAMG: Solving for p, Initial residual = 1
time step continuity errors : sum local = 4.1e-05
The loop, all six beats
- Watch
- Following the simulation, line by line, while it is still running.
- Diagnose
- Naming the cause of the failure — and the log line it came from.
- Repair
- Editing the case inside a published safety boundary. Never the mesh.
- Verify
- Re-running the simulation, then checking the physics of the result.
- Sign
- Recording every number, so another engineer can check the work.
03Where it sits
Courant runs inside
your own infrastructure
- Nothing uploadedthe mesh never moves
- Nothing replacedsame solver, same case
- Nothing requiredworks with no network
04Who decides
The model proposes.
Code decides.
- 01Schemaparses, and only inside your case directory
- 02Whitelistthe file, dictionary and key are on the allowed list
- 03Rangeevery value inside its declared bound
- 04Policythe tier your organisation permits
- 05Dry runapplied to a copy, re-parsed before it is real
- 06Approvala human, or an explicit autonomy budget
A bad suggestion is a rejected change in an audit log. That is the entire blast radius.
05Your data
Nothing leaves your machine.
Except about 8 kilobytes.
- 1 : 65,000
- Of the case, this much crosses
- Twice
- Checked on the way out, and again on arrival
- 8 KB
- The whole of what is sent
06Coverage
Certified against
real simulations.
- 36/36certification scenarios pass
- 28/28true cause in the top two
- 14/17fixable faults repaired unassisted
Measured over 31 logs a solver actually wrote — 24 faulted, 7 healthy. The healthy ones matter most: a tool that cries wolf on a good simulation is a tool nobody keeps.
Solver families exercised
- icoFoam
- pisoFoam
- simpleFoam
- pimpleFoam
- rhoPimpleFoam
- interFoam
- buoyantPimpleFoam
- decomposed across MPI ranks2 of 36
On the roadmap
- Ansys FluentPlanned
- Simcenter STAR-CCM+Planned
- Abaqus CFDPlanned
- SU2Planned
Every figure above is measured against OpenFOAM’s own tutorial cases, faulted and re-solved in a container — two of them decomposed across MPI ranks. Never against fixtures we wrote ourselves.
Questions
The seven questions
we are always asked.
No. Courant wraps the solver and the cases you already run. Nothing about your setup changes.
End-to-end reliability on OpenFOAM. Seven solver families exercised against real solves — two of them decomposed across MPI ranks — and thirteen of the twenty-five failure modes named on real solver output. Other physics and commercial solvers are on the roadmap, and the coverage section says exactly which.
Do not trust the prose. Trust the checks. Deterministic code decides whether a run passed; the model only ranks possible causes and writes the explanation. A bad suggestion is a rejected change in a log.
You choose. Copilot proposes and waits. Autopilot acts only inside limits your team sets, and every change is backed up before it is applied.
Wherever your solver already runs — workstation, cluster or HPC. Air-gapped sites included; with no network it is degraded, never blocked.
Solver logs, case settings and mesh metrics. About 8 KB of evidence crosses. The mesh, the geometry and the solution fields never leave your machine.
The first OpenFOAM pilot opens on 10 September 2026.
Get started