The reliability engineerfor every simulation.

curl -fsSL get.courant.dev | sh

01The silent failure

The simulation finished.
Doesn’t mean it’s right.

Same picture. Different physics.

icoFoam · cavity · two runsboth completed · exit 0
RUN ARUN B
PASSFAIL
Velocity magnitude — what you look atContinuity error — what Courant checks
COURANT NO. · CONTINUITY ERROR0.42 · 3e−174 of 4 checks passed
COURANT NO. · CONTINUITY ERROR1.81e+03 · 4e−052 of 4 checks failed

Both converged to the same residual. Keep scrolling.

02The loop

How Courant fixes
your simulations

courant watch ./cavityfollowing · 3.2 s
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.

Proposed changefrom the model
  1. 01Schemaparses, and only inside your case directory
  2. 02Whitelistthe file, dictionary and key are on the allowed list
  3. 03Rangeevery value inside its declared bound
  4. 04Policythe tier your organisation permits
  5. 05Dry runapplied to a copy, re-parsed before it is real
  6. 06Approvala human, or an explicit autonomy budget
Appliedre-run, verified, recorded
Rejectedwritten to the audit log with its reason

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.

Your machineMesh · geometry · solution fieldsCourant≈ 8 KB of evidence
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
NASA-STD-7009Credibility of models and simulations
ASME V&V 20Verification and validation in CFD

06Coverage

Certified against
real simulations.

  • 36/36certification scenarios pass
  • 28/28true cause in the top two
  • 14/17fixable faults repaired unassisted
13 named on real solver output9 wired, never exercised3 we do not claim

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

Bring us a simulation
that troubled you.

Private pilots with simulation teams in aerospace, energy and mobility. First OpenFOAM pilot opens 10 September 2026.