Repository navigation
Your first simulation
Assumes Installation is done and the setup screen is green.
From the home screen, create a project and describe what you want in plain English. Good first prompt:
Lid-driven cavity, 1 m square, lid moving at 1 m/s, Re=100, laminar incompressible.
You do not need to name solvers or files. Useful things to include when you know them: geometry and dimensions, boundary velocities or pressures, fluid properties or a Reynolds number, whether it is laminar or turbulent, and steady or transient.
The agent works in the chat panel and streams what it is doing:
- Classifies the problem — solver module, dimensionality, flow regime, turbulence model.
- States the dependency order before writing anything.
-
Writes each file in that order, with full context of the files already written —
system/controlDict,constant/physicalProperties,constant/momentumTransport,system/blockMeshDict, then the0/field files.
Files appear in the sidebar as they are written. Click any one to open it in the editor; patch names defined in blockMeshDict are referenced identically across every 0/ file, which is where hand-written cases most often break.
Depending on your provider, a validation loop may run blockMesh and a short solve right away and fix problems before you ever see them.
Everything is editable. Open system/controlDict and change endTime, or constant/physicalProperties and change viscosity. Edits save straight to the case directory and the agent sees them on the next turn.
The Parameters tab gives a structured view of the values you are most likely to change, without hunting through dictionaries.
Hit Run. The pipeline is fixed and visible:
| Step | Command | Purpose |
|---|---|---|
| 1 | blockMesh |
Build the mesh |
| 2 | setFields |
Only if the case has a setFieldsDict (VoF/multiphase initialisation) |
| 3 | foamToVTK |
Convert the mesh so the Geometry tab can render it immediately |
| 4 | foamRun |
Solve |
| 5 | foamToVTK |
Convert every written time step for the Results tab |
The Logs tab streams solver output live, with a residual plot building underneath as the run progresses. The Commands sidebar panel records every command with its exit code. Cancel at any point — that kills the container.
It will, sometimes. FOAM FATAL ERROR is normal in CFD work and the app treats it as a first-class outcome rather than a crash.
The agent reads the solver log, identifies the root cause, and posts a diagnosis with a concrete diff — which file, which line, what value, and why. You approve or reject. Approved fixes are applied and the run restarts, up to three attempts before it stops and asks for help.
If it genuinely cannot identify the cause it says so instead of guessing.
The Results tab renders the solved case in 3D. What you get:
- Colour by any field, with colormap selection and a scalar bar
- Time animation across every written step, with a scrubber
- Slice — axis presets or a custom plane with an offset slider
- Clip — keep one side of a plane
- Iso-surfaces — value slider
- Vector glyphs — arrows with density and scale controls
- Streamlines — line-rake seeds, RK4 integration, coloured by magnitude
- Probe — field values at a point
- Compare — two viewports on a shared camera
- Screenshot export and a background toggle
Time steps are cached as you scrub, so animation does not re-read from disk.
The Geometry tab shows the mesh alone, available as soon as blockMesh finishes — useful for catching a wrong domain before you wait out a solve.
The chat is multi-turn and keeps context. Follow-ups work:
Now run the same case at Re=400.
Refine the mesh to 60×60 and re-run.
Why did the pressure residual stall around 1e-4?
Each project keeps its own conversation, files, run history, and stored logs. Chat history can be cleared from the project without deleting the case.
Projects are ordinary OpenFOAM case directories on disk — see How it works for the exact paths. You can point a normal OpenFOAM workflow at them, and an already-solved case can be converted for the Results tab without re-solving.
MIT licensed. Not approved or endorsed by OpenCFD Limited, owner of the OPENFOAM and OpenCFD trademarks.