Independent research lab · Compressible & reactive flow

Built for the regimes that break other solvers.

Shocks, detonations, stiff chemistry, refinement that moves with the front. We derive the methods from first principles and implement them ourselves — lean enough to run a two-million-cell airframe on one workstation, portable enough to run the same source on any GPU, and verified to the standard a journal would demand.

Live D2Q9 lattice-Boltzmann solution — computed on your GPU, not a video448 × 224 latticeω = 1.80— steps/sdrag the field

An independent research lab

Frontier methods, without the queue.

The best numerical methods in compressible and reactive flow are developed inside a small number of large institutions, published on a multi-year cycle, and reach the engineers who need them — if they reach them at all — a decade later, wrapped in a licence. The bottleneck is not the science. It is the gate in front of it.

We are an independent lab built to remove that gate. We keep everything that makes academic research trustworthy — falsifiable claims, canonical verification, cross-code comparison, honest limitations, reproducible artefacts — and we run it on an engineering clock, pointed directly at the problem in front of you.

Accuracy over aesthetics

A beautiful contour plot is not a result

Our field has learned to sell itself with colour. We optimise for the number being right, and we say so plainly where it is not. The only moving picture on this site is a live solver you can disturb with your cursor — because a computation you can interrogate is evidence, and a rendering is not.

Discipline, engineering clock

Rigour is not the same thing as slowness

Hypotheses stated before testing. Falsification conditions written down first. Canonical verification, cross-code comparison and byte-level reproducibility gating every change. All of it delivered against a project schedule instead of a publication cycle.

An unusual combination

Model derivation and systems engineering, one team

Deriving a scheme from first principles and making it run fast on real hardware are normally two different people in two different departments, trading artefacts across a wall. Here they are the same work — which is why the numerics and the implementation are designed for each other.

What we model

Three regimes where the usual answers run out

Most CFD is comfortable. These are the flows where the discretisation, the chemistry and the mesh all have to be right at once — and where getting one of them wrong does not lose you a decimal place, it loses you the physics.

01

High-speed external aerodynamics

Transonic through hypersonic, on geometry that came out of CAD rather than a tutorial. Unstructured polyhedral meshes, surface-snapped walls, shock systems resolved by refinement that follows them.

  • Transonic & supersonic airframes
  • Shock-dominated internal flow
  • RANS and large-eddy closures

02

Detonation and reactive flow

Detailed kinetics, stiff source terms integrated in tight coupling with the hydrodynamics rather than split away from it, and an energy formulation that refinement cannot corrupt.

  • Detonation structure & dynamics
  • Deflagration-to-detonation transition
  • Shock-induced combustion

03

Refinement that moves with the physics

Dynamic octree adaptation driven by the solution, running as data-parallel passes over space-filling-curve keys. Nothing goes back to the host to regrid.

  • Dynamic refine, coarsen and rebalance
  • Conservative remap to 1 part in 10¹³
  • Mixed hex and polyhedral meshes

2.29M cells

Airframe case on one rank

Mixed hex and polyhedral, with dynamic refinement, inside 16 GB.

217B/cell

Resident footprint

Audited line by line. 241 B/cell with a nine-species reacting registry.

10−13

Conservation across an adapt

Mass and energy closure, checked every refinement cycle.

330sites

Standard-C++ parallel loops

No vendor kernel language anywhere in the solver.

Engineering position

Why it is fast, and why that matters scientifically

Performance is usually treated as an engineering afterthought in computational physics. We treat it as a scientific variable: a solver that is four times leaner and does not stall on memory bandwidth can afford richer numerics — a better shock sensor, higher-order integration on device, tighter chemistry coupling — that a bandwidth-bound code simply cannot pay for.

01

Lean by design, not by accident

Resident state is 217 bytes per cell, audited line by line — roughly four to six times lighter than the mainstream reference codes at the same physics. That is not a micro-optimisation; it is what moves the solver off the memory-bandwidth wall and leaves arithmetic headroom to spend on better numerics.

02

Adaptation without a host round-trip

Block-structured reference codes still orchestrate dynamic regridding and load balancing substantially on the CPU. Refine, coarsen, two-to-one balance and remap are here expressed as sort-and-scan passes over integer-lattice Morton keys — the whole adapt chain is data-parallel, and the host is not in the loop.

03

One source, any hardware

Over 330 parallel loops, all written as standard C++ parallel algorithms. No vendor kernel language, no pragma dialect, no second implementation drifting out of sync. The CPU build is the correctness floor and the GPU build is verified bit-identical against it.

04

Reproducibility as a property, not a promise

Refactors are verified byte-identical on adaptive reacting cases before they land. It is a demanding discipline and it pays for itself immediately: when a result changes, you know exactly which change caused it.

From surface to answer

We take the geometry you actually have

Not a simplified representation of it. A triangulated surface out of CAD goes in; a partitioned, body-fitted, adaptively refined mesh and a solved flow field come out — through a pipeline we built end to end, so that when the physics needs the mesh to change, it can.

Airframe geometry rendered directly from its triangulated surface

How to work with us

We are not selling CFD software

We are an independent lab looking for industry collaborators, research sponsors and academic partners. Three different relationships, one standard of evidence.

Industry collaboration

Bring us a flow that is not working.

A shock system your solver smears, a detonation that will not stay stable, a mesh that will not converge, a case that takes a fortnight per run. We take it on as a research problem with an engineering deadline — and you get the method, the validation evidence and the limitations, not a black box.

  • Fixed-scope studies against your own reference data
  • Method development where off-the-shelf closures fail
  • Full verification evidence and stated limitations, every time

Research sponsorship

Fund a frontier method, and get it first.

Sponsoring a line of work here buys direct access to results as they happen — not a conference paper in two years. Sponsors shape the problem selection, see the negative results as well as the positive ones, and get the capability applied to their own configurations while it is being built.

  • Named research lines with public, citable outputs
  • Early access to capability as it matures
  • Influence over which problems get attacked first

Academic partnership

Rigour is the part we refuse to trade.

We work the way a good research group works: hypotheses stated before testing, falsification conditions written down first, cross-code comparison, reproducible artefacts. We collaborate with university groups on benchmarks, shared validation and co-authored publications.

  • Co-authored publications and shared benchmarks
  • Independent cross-validation against your solver
  • Reproducible artefacts attached to every published result

Open for 2026

We help you solve problems through engineering.

Tell us what you are trying to predict and what has gone wrong so far. If it is outside what we do, we will say so — and point you at who does it.