Spinoza Labs
VortexAI: Automated CFD Mesh Generation Powered by LLM Agents
Benchmark·

VortexAI vs. OpenFOAM tutorials

Full results on 41 expert-written OpenFOAM tutorial meshes: 12 unstructured (snappyHexMesh) and 29 structured (blockMesh).

To test VortexAI at scale, we benchmarked it against 41 expert-written OpenFOAM tutorial meshes: 12 unstructured (snappyHexMesh) and 29 structured (blockMesh) cases.

Each case is defined by a natural-language prompt specifying the simulation, flow conditions, and target cell count. VortexAI runs each case with up to 20 attempts and keeps the best mesh. Crucially, VortexAI never sees the tutorial configurations. Tutorials are used only as evaluation references.

How we measure quality

Every mesh gets a single score between 0 and 1 that combines element quality (an in-house computation based on non-orthogonality and skewness, weighted toward the worst cells), boundary-layer coverage (fraction of wall faces that received the requested prism layers), and a generation gate (did the backend produce a valid mesh at all).

Unstructured meshes (snappyHexMesh)

The 12 snappyHexMesh cases span a wide range of geometries: motorcycle fairings, wing sections, a bridge under wind loading, buildings, a propeller, a rotating fan, a wind farm terrain, a thermal mixer, and an injector pipe. Cell counts range from tens of thousands to tens of millions.

Unstructured benchmark: mesh quality score for VortexAI vs OpenFOAM tutorials across 12 cases.
Unstructured benchmark: mesh quality score for VortexAI (red) vs. OpenFOAM tutorials (blue) across 12 cases. Bars show the number of meshing attempts VortexAI needed.

The results:

  • VortexAI matches or beats the tutorial quality on 10 of 12 cases, with a median improvement of +1.6 percentage points.
  • The biggest wins (+9.4 and +6.5 pp) come on two motorcycle cases, where physics-aware refinement produces better element quality.
  • Most cases converge in 1–5 attempts. The hardest case (an injector pipe) took 16 iterations.

For boundary-layer meshes, VortexAI achieves comparable or better coverage. The motor bike stands out: VortexAI raises coverage from 38.8% to 58.6%, thanks to better-suited boundary-layer extrusion parameters.

Boundary-layer coverage (cases with prism layers)
#GeometryTutorial (%)VortexAI (%)
1Aerofoil wing99.298.7
6Motor bike38.858.6
8ONERA M6 wing96.593.5

Structured meshes (blockMesh)

The 29 blockMesh cases are organized by increasing topological complexity: single-block domains, multi-block configurations, T-junctions, backward-facing steps, pipe bends, O-grids, C-grids, and large assemblies.

Structured benchmark part 1: mesh quality score for VortexAI vs OpenFOAM tutorials.
Structured benchmark (cases 1–15): mesh quality score for VortexAI (red) vs. OpenFOAM tutorials (blue), sorted by increasing topological complexity.
Structured benchmark part 2: mesh quality score for VortexAI vs OpenFOAM tutorials.
Structured benchmark (cases 16–29): the largest gains (+8.4 and +19.9 pp) come from better grading distributions on complex topologies.

The results:

  • On the simpler cases (1–18), VortexAI achieves a perfect score on all but one case, matching the tutorials exactly.
  • On complex topologies (19–29), it continues to match or exceed most tutorials. The biggest improvements (+8.4 and +19.9 pp) come from better grading distributions.
  • One complete failure: an asymmetric C-grid block topology (case 28) that the system could not resolve (work in progress).