Gallery¶
Every case here is one of Mallard's examples. Quantitative comparisons with exact solutions and reference data are on the validation page.
2D Riemann problem, configuration 3, at 4096 × 4096 (Lax & Liu 1998). Four shocks interact, and the slip lines between the quadrants roll up into cascades of Kelvin–Helmholtz vortices that fill the mushroom-shaped jet. 16.8 million quadrilaterals, fifth-order TENO-E, HLLC flux, SSPRK3; density and numerical schlieren, t = 0 to 0.8, in 72,570 time steps: 3 hours on two A100 GPUs (149 ms per step, 112 million cell updates per second). Density at t = 0.8, full resolution (4096 × 4096, 1.6 MB).
Details at full resolution, t = 0.8: the roll-ups inside the jet (left) and along the slip line that runs to the upper right (right), each 1600 × 1400 cells of the 4096² mesh.
Double Mach reflection. A Mach 10 shock reflecting off a 30° wedge (Woodward & Colella 1984), t = 0 to 0.2, on 1.84 million triangles. Fifth-order TENO-E with the rotated-hybrid HLL–Roe flux and SSPRK3. Density and numerical schlieren.
Taylor–Green vortex at Re = 1600 on the full periodic box, 256³ (16.8 million hexahedra), fifth-order TENO-E: Q-criterion isosurfaces colored by vorticity magnitude, and the dissipation rate tracing the 512³ spectral DNS (peak within 0.3%) beside the 128³ run. 14 A100 GPUs; the taylor_green_3d example (input_periodic.toml). Validation details.

Curved boundaries in 3D. A coarse torus of cubic triangles: flat faces through their corners (left) and the faces Mallard maps from the high-order elements (right), which follow the surface. New in Mallard 0.8.0. Validation details.

Curved boundaries in 2D. The mallard example's outline meshed coarse with cubic Gmsh elements; only the wall cells are drawn. Top: chords through the corners, which cut off the shaded slivers at the bill, head, wing tip and tail. Bottom: Mallard's curved faces, which follow the outline. Validation details.
Decaying compressible isotropic turbulence, in 3D. The case of Johnsen et al. (2010), turbulent Mach number 0.6 and Reλ = 100, with eddy shocklets: Q-criterion isosurfaces colored by dilatation (red: compression), dilatation on a plane, and the enstrophy and dilatation variance against Johnsen et al. DNS on 256³ = 16.8 million hexahedra, fifth-order TENO-E, about an hour on 12 A100 GPUs; filtered to 64³ as the references, the enstrophy is within 2.4% of Johnsen et al. and the mean dilatation variance within 0.5% (validation). The isotropic_turbulence example.
Mach 3 flow over a sphere, in 3D. Mach number on the horizontal meridian, numerical schlieren on the vertical one, and the revolved bow shock. The bow shock forms from an impulsive start and settles by t u∞/D ≈ 1.2 at a standoff of 0.226 R, against 0.205 R from Billig's correlation; the stagnation pressure, 12.0 p∞, matches the Rayleigh pitot value 12.06. 800,000 tetrahedra in a quarter domain with two symmetry planes, fifth-order TENO-E with bound-preserving scaling, HLL flux, on 4 GPUs; the sphere_mach3 example. Validation details.
Sphere at Re = 300, in 3D. Periodic shedding of hairpin vortices from a wake with one plane of symmetry: smoothed Q-criterion isosurfaces (Q = 0.02 (U/D)²) colored by streamwise velocity, and the drag and lift coefficients. St = 0.133, CD = 0.669 and CL = 0.073 over seven shedding periods, against 0.137, 0.656 and 0.069 (Johnson & Patel 1999). Navier–Stokes at Mach 0.2 on 850,000 prisms and tetrahedra, MUSCL, HLLC, on 4 GPUs; the sphere_re300 example. Validation details.
Shock–helium bubble interaction, in 3D (Haas & Sturtevant 1987). A Mach 1.25 shock in air hits a helium bubble, which rolls up into a vortex ring: the helium surface, the vortex sheet and ring colored by helium fraction, and numerical schlieren on the symmetry plane. The refracted and transmitted shocks, the ring and the late downstream interface move at 961, 359, 178 and 166 m/s, against the measured 960, 365, 165 and 165. Navier–Stokes with mixture-averaged transport at Re = 1.5 × 103, 11.4 million hexahedra (128 cells per bubble diameter), 3.4 hours on four A100 GPUs; the shock_bubble_3d example. Validation details.
Sedov–Taylor blast wave, in 3D. A point explosion: density on the three symmetry planes of the computed octant, the shock radius against the exact similarity solution, and the radial density profile. 128³ hexahedra, fifth-order TENO-E with bound-preserving scaling, HLLC; the sedov_3d example. Validation details.
Cellular detonation. A detonation in 2H2–O2–7Ar at 6.67 kPa, started from its ZND structure with six seeded pockets of fresh gas, in a 6 cm channel: pressure, and the numerical soot foil (the peak pressure of each cell), on which triple points trace the detonation cells. Finite-rate H2/O2 chemistry (10 species, 29 reactions), MUSCL, HLLC, 1.2 million cells (10 per induction length), 39 minutes on two A100s; the front runs at the CJ speed to 0.01%. The detonation_2d example (new in Mallard 0.5.0). Validation details.
Cellular detonation in 3D. The 2H2–O2–7Ar detonation of the 2D case in a 3 cm square duct: the leading shock colored by the pressure behind it, and the numerical soot foils of the four walls. The transverse waves cross in phase, in the rectangular mode, drawing diagonal triple-point tracks and slapping-wave bands that alternate between opposite walls; the front keeps the CJ speed to 0.2% over 17 cm. 19.2 million hexahedra in a window that follows the front (10 cells per induction length), finite-rate chemistry, 4.6 hours on four A100 GPUs; the detonation_3d example. Validation details.
Differential diffusion in a lean H2/air flame. φ = 0.4, 700 K, 1 atm, from the same initial wrinkle with mixture-averaged transport (left) and unity Lewis numbers (right): with mixture-averaged transport the burnt gas behind the bulges is superadiabatic (up to 1.017 Tad) and the flame burns faster; with unity Lewis numbers it stays within 0.4% of Tad. Navier–Stokes with finite-rate chemistry, 72,576 cells per run on one A100. The flame_2d example (new in Mallard 0.5.0). Validation details.
Counterflow diffusion flame and extinction, in 3D. H2/N2 (1:3) against air at 300 K and 1 atm, from opposed round jets 10 mm apart with N2 coflows, on a quarter domain of 46,464 hexahedra (15 cells per flame width), against Cantera's CounterflowDiffusionFlame. Here the jets at 5.6 m/s strain the flame beyond extinction and it goes out. Mallard's flame goes out between 1818 and about 1975 1/s, against Cantera's extinction strain of 1816 1/s. The counterflow_diffusion example.

Peak temperature against strain: within 2% of Cantera from 344 to 1640 1/s at matched local strain rate (up to 90% of the extinction strain), and within 1.1% at matched spread rate.
Triple flames (Ruetsch, Vervisch & Liñán 1995). H2:N2 = 1:1 against air at 300 K and 1 atm, in inlet mixing layers 4 and 12 thermal thicknesses thick, with detailed chemistry and mixture-averaged transport; the inflow is raised to the flame's speed to hold it in place. The flames propagate at UF / SL = 2.31 and 2.46, rising with the mixing-layer thickness at the flame as in Ruetsch et al., and faster than their one-step, unity-Lewis flames because the hydrogen tip burns at 1.24–1.30 SL. 166,000 and 276,000 cells, about 4 hours per run on two A100 GPUs; the triple_flame example.
Premixed flame–vortex interactions on the spectral diagram of Poinsot, Veynante & Candel (1991). Eleven vortex pairs of 1 to 8 thermal thicknesses at 3 to 100 SL hit a rich H2/air flame (φ = 4, deficient-reactant Lewis number 2.2): small, slow pairs leave the flame unchanged, others wrinkle it, and larger or faster ones cut off pockets of fresh gas. None quenches up to Ka(r) = 25: Poinsot et al.'s quenching needs heat losses, which this adiabatic case has none of; with radiative losses, the next case quenches. 26,000 to 85,000 cells per run, 12 minutes to 1.5 hours each on one A100; the flame_vortex example.
Flame–vortex quenching by radiative heat loss. A vortex pair (r = 4 δL, u′ = 30 SL) cuts a pocket of fresh gas out of a lean CH4/air flame near its radiative limit (φ = 0.42), and the pocket goes out in burnt gas that radiation has cooled. With weaker losses (φ = 0.44) or none, the same pocket burns out. Two-step chemistry with the TNF radiation model; Poinsot, Veynante & Candel's quenching example. The flame_vortex_quenching example (after Mallard 0.7.0). Validation details.
Viscous shock tube (Daru & Tenaud 2009), Re = 200. A Mach 2.37 shock reflects off the end wall and interacts with the boundary layer it left behind, forming a lambda shock and a primary vortex. Navier–Stokes, fifth-order TENO-E, 500,000 quadrilaterals on the lower half of the box. The wall density at t = 1 matches the grid-converged reference of Zhou et al. (2018): see validation.
Mach 8 flow over a mallard. Inviscid flow over the silhouette of a flying mallard (body length about 1.1), started impulsively: bow shocks form off the bill, head and wing, merge, and the wake rolls up behind the tail. 1,067,536 triangles generated with Gmsh, fifth-order TENO-E with bound-preserving scaling in troubled cells, the rotated-hybrid HLL–Roe flux and SSPRK3; Mach number with schlieren shading, t = 0 to 0.75 (75,842 time steps, 90 minutes on one A100 GPU).

