During recent validation work on VERTIQ's indoor airflow solver, the hardest part was not making the solver pass more tests. The hardest part was deciding which tests were allowed to become product claims.

We do not claim what we cannot validate. That single rule reshaped the entire validation system, and it is the only honest way to build engineering software that handles building airflow.

Why General-Purpose CFD Is Heavy for Buildings

General-purpose CFD packages like OpenFOAM and ANSYS Fluent solve an enormous class of physics. Aircraft external aerodynamics, combustion, multiphase flow, supersonic shock structures, fluid-structure interaction. That generality has a cost: setup complexity, mesh sensitivity, turbulence model selection, solver tuning, hours to days per case.

Most building-performance work does not need that. A LEED EQc analysis rarely cares about supersonic flow. What it cares about is a narrow scope of physics: indoor airflow, HVAC supply jets, room mixing, displacement ventilation patterns, buoyancy-driven plumes, contaminant scalar transport, and pressure-driven openings between zones.

VERTIQ's solver is built around that narrower scope. Faster setup, clearer assumptions, direct integration with building inputs the consultant already has in the project. The trade-off is explicit: outside that scope, we do not pretend.

The Benchmark Trap

Once a CFD project gets going, the obvious next step is to throw more benchmarks at it. NRC ventilated office. Annex 20 room contaminant cases. Hurnik sidewall jet. WTE terraced house. Each benchmark is a validation opportunity, and each pass count looks good on a feature page.

Then comes the trap. Most published benchmarks ship as a paper with contour plots, a partial table, and a description of the geometry that leaves several details to interpretation. The solver can be tuned to match the contour picture from one paper. That tuning will silently break another paper's case. The team congratulates itself on passing both, then ships a solver that has learned one paper's picture instead of learning the physics.

That is overfitting. It looks like validation, but it is a slow form of fabrication, because the next case the solver runs in production has no paper backing it up.

The rule we keep coming back to is this:

A benchmark is only useful if it can fail the solver for the right reason.

The validation decision tree
  1. 1External source identified
  2. 2Machine-readable or source-confirmed numeric data available?
  3. 3Setup contract unambiguous enough to reproduce?
  4. 4Promote to regression gate, or keep as diagnostic-only reference
  5. 5Only promoted gates can support product claims

Pass/fail must derive from data the solver could not have memorized: machine-readable numeric tables, unambiguous setup descriptions, source files that the team can independently confirm. If the benchmark gives you a colored image and an incomplete caption, it cannot fail the solver in a defensible way, so it cannot promote the solver in a defensible way either.

Promoted Gates vs Diagnostic-Only References

That distinction split our validation system into two lanes.

Promoted gateDiagnostic-only reference
Numeric velocity profiles with reproducible sampling locationsContour-only figures without underlying point values
Jet centerline behavior with explicit external formula or tableFull-field scalar plots where the measured table is unavailable
Room mixing cases with source-confirmed setup and toleranceExterior wind-domain references before the solver owns that domain

Promoted benchmark gates are external references with enough numeric structure to enforce real pass/fail behavior. Mean velocity profiles along a measured line. Jet centerline decay against a tabulated empirical formula. Room-airflow cases where the source report provides actual measurement points rather than only a contour. These cases can be re-run automatically, and the solver is allowed to regress on them. When one of these gates fails, we stop and fix it before the next release.

Diagnostic-only references are useful for development, but not allowed to become product claims. NRC contour plots without underlying measurement tables. Annex 20 full-field scalar contours without the original concentration data. WTE exterior wind-domain cases where the solver does not yet have the domain and boundary machinery to claim it solves the full case. RMS and turbulence fields where the source paper's averaging window or turbulence model differs from ours.

Diagnostic results show up in our internal logs. They guide engineering work. They suggest where the solver is rough. They never appear as a feature claim, a passed-benchmark count, or a marketing statistic.

The boundary protects users from fake precision. A reviewer asking "where did this number come from" should get an answer that traces back to data we can show them, not to a contour we color-matched by eye.

What Changed in the Advanced-Mode CFD Engine

The advanced-mode work added or strengthened diagnostics for the physics that actually shows up in building-performance reviews:

  • Displacement ventilation consistency, with two-layer stratification indicators
  • Boussinesq buoyancy and thermal plume sanity checks
  • Pressure-driven opening behavior and multi-zone conservation
  • Scalar mass balance and transient contaminant decay
  • RMS and turbulence variance indicators, as diagnostics rather than accuracy gates
  • Exterior wind boundary diagnostics, marked as backlog rather than a resolved exterior-domain claim

We also added two structural guards.

First, an overfit guard. Every benchmark in the suite must declare whether it is a promoted gate, a diagnostic proxy, or a backlog reference. Adding a new benchmark requires an explicit category. There is no "just check it for now" lane.

Second, a performance guard. Advanced-mode diagnostics should not silently make the solver unusably slow. Each diagnostic carries a runtime budget in engineering review, and cases that spend too much time on diagnostics are treated as performance regressions before they are treated as feature wins.

What We Still Refuse to Claim

Restraint is more useful when it is specific.

  • No full NRC pointwise contour accuracy until the source-confirmed geometry, partition footprint, outlet sampling polygon, and measured values are available.
  • No Annex 20 full-field scalar accuracy gate until the underlying measured concentration table or report is available.
  • No resolved WTE exterior wind-domain claim until the solver carries the domain extent, boundary treatment, and turbulence model the case actually demands.
  • No RMS or turbulence accuracy claim until the turbulence model and reference data support a real pass/fail gate.

These statements look like weaknesses. They are not. They are the receipts. A claim list this specific is hard to find in CFD product marketing, and that scarcity is exactly what makes it valuable to the reader.

Restraint as a Differentiator

The default move in building-performance software is to overclaim. "AI-powered simulation." "OpenFOAM integration." "Industry-leading CFD accuracy." Each of those phrases is cheap to print and difficult to disprove without engineering effort that reviewers rarely spend.

VERTIQ is taking the opposite trade. Smaller surface, explicit boundary, diagnostic results clearly tagged as diagnostic, promoted results backed by data anyone can re-derive. Less flashy than "we do CFD now." Slower to write feature pages. Only honest way to build engineering software that touches reviewer-facing evidence.

For consultants who have been burned by a previous tool's validation claims, that restraint is worth more than another impressive-looking feature.

Where to Go Next

A companion post for LEED consultants approaches the same discipline from the consultant's side: Why Honest CFD Saves LEED Projects More Than Fancy CFD. It explains why fake precision burns project time, which CFD outputs are safe to put in front of a reviewer, and how promoted-versus- diagnostic discipline changes the way CFD evidence should be handled in a submittal workflow.

If you run building-performance CFD as part of your work, the easiest way to inspect the boundary is to compare the validated outputs with the assumptions attached to your own case. The same promoted-versus- diagnostic split used in engineering review is the standard we use before turning any CFD result into a product claim.