Capabilities

What the solver actually does

The component inventory. What is in production, what is validated, and what is still a research path — labelled as such.


01 / 06

Governing physics

One compressible core from incompressible-limit channel flow to detonation.

Compressible Euler

Inviscid flow at all Mach numbers, from subsonic to hypersonic.

Compressible Navier–Stokes

Full viscous stress and heat conduction, temperature-dependent transport.

Multicomponent reacting flow

Species transport with detailed kinetics, mixture-averaged diffusion, variable specific heats.

RANS turbulence

Spalart–Allmaras, k–ε, k–ω SST.

Large-eddy simulation

Smagorinsky and dynamic Smagorinsky subgrid closures.

Coupled multiphysics

Reacting large-eddy and transonic reacting configurations, same core.

02 / 06

Numerics

Every component is a compile-time policy. Comparing two schemes is a one-token change.

Kinetic flux (LBFS)

Carbuncle-free on poor aspect ratios

Interface state from local particle distributions, splitting into a non-dissipative equilibrium part and a gated non-equilibrium part.

Approximate Riemann fluxes

HLLC and hybrid central–HLLC formulations for reference and control.

Face-local shock sensor

Dissipation support ≈ 2–3 faces at any resolution

Evaluated at the face from the two reconstructed states, inside the flux kernel. No stencil-wide reduction, no pre-pass.

Flux-residual refinement sensor

Built from already-stored face fluxes. Orders-of-magnitude shock/smooth separation with no extra Jacobian or least-squares work.

Reconstruction

MUSCL with limiters, and first-order paths for robustness studies.

Gradients

Green–Gauss on arbitrary polyhedra.

Time integration

Explicit Euler and higher-order Runge–Kutta, entirely on device. Adaptive CFL-limited stepping.

Stiff chemistry integration

Rosenbrock-2 and -4 with analytic Jacobians, constant-volume LSRK, explicit RK4.

Chemistry–transport coupling

Fully local — no global solve

A local explicit coupled update, so a burning cell vents rather than accumulating constant-volume overpressure. One correction iteration suffices.

Sensible-energy formulation

Heat release as an explicit source, so refinement interpolation cannot manufacture temperature.

03 / 06

Adaptive mesh refinement

Refine, coarsen, balance and remap as data-parallel passes over space-filling-curve keys. No host-side regridding.

Dynamic octree refinement

Hexahedral 1→8 subdivision on a runtime sensor, adapting throughout the run.

Tetrahedral refinement

Bey 1→8 subdivision with shortest-diagonal octahedron splitting.

Integer-lattice Morton keys

Z-order addressing for coalesced access, with sort-and-scan primitives replacing serial tree walks.

2:1 balancing

Level jumps constrained with terminating cancellation, so no cell oscillates between flagged and protected.

Conservative remap

Mass and energy to one part in 10¹³, checked every adapt cycle.

Mixed-mesh safety

Faces between two unrefined cells are frozen; non-hexahedral cells carried through verbatim.

Parallel adapt

Space-filling-curve repartitioning, per-rank halos rebuilt after each adapt.

04 / 06

Meshing and geometry

Read industry meshes natively, or generate one from a surface with a single command.

Native polyhedral mesh import

Reads the standard open polyhedral format directly, including decomposed cases and all patch types.

Background mesh generation

Multi-block structured generation with shared-face vertex deduplication.

Surface-driven refinement and carving

Region refinement against triangulated surfaces, cell removal by ray-cast parity, per-surface patches.

Snapping

Boundary vertices projected by nearest-point queries on a BVH, with quality safeguards.

Domain decomposition

3-D Morton space-filling-curve partitioning with correctly paired processor patches.

Element coverage

Hexahedra, tetrahedra, prisms, wedges, general polyhedra. The kernels are shape-agnostic.

05 / 06

Execution and portability

One source in standard C++. No vendor kernel language, no second implementation to keep in sync.

Standard C++ parallel algorithms

330 call sites, all unsequenced-parallel, inside the algorithm set an offloading compiler accepts.

GPU execution

Memory-checked clean

The full reacting path, chemistry included, from the same source — bit-identical to the CPU path.

CPU execution

Thread-parallel on the same source, used as the correctness floor.

Distributed memory

Halo exchange at a few per cent of step time, so the solver is compute- not communication-bound.

Vendor-agnostic offload

Research path

Standard parallel algorithms compiled to a portable GPU IR, reaching hardware current toolchains have dropped.

Structure-of-arrays layout

Explicitly laid-out fields from a pooled allocator. An unused model costs nothing per cell.

06 / 06

Verification and reproducibility

Every numerical change is gated on canonical cases and a byte-identical reproducibility check.

Canonical hydrodynamics

Order-of-accuracy studies, Riemann problems, smooth-flow transport, shock–turbulence interaction, strong-shock reflection.

Reactive references

Steady detonation structure, ignition against an independent chemistry library, laminar flame speed, cross-checks against a reference code.

Multicomponent contact tests

The standard battery for contacts between dissimilar gases, where conservative multicomponent schemes misbehave.

Invariant checks

Positivity, mass-fraction closure and geometric closure asserted continuously, refinement included.

Bit-reproducibility

Refactors verified byte-identical on adaptive reacting cases, so a regression is attributable to its cause.

Reproducible builds

Research path

Hermetic and content-addressed, so a result ships with everything needed to regenerate the binary.

Not listed?

Ask about it

This is what we have built and verified, not the limit of what we will take on. If your problem needs a closure, flux or boundary condition that is not here, that is a research question — and we will tell you honestly whether it is a week or a year.