Mason Shopperly

MS-05 · investigation · Workflow · Reviewed Apr 20, 2026

Forced isotropic turbulence on JHTDB

Statistical and structural analysis of a high-fidelity DNS of forced isotropic turbulence — from PDFs and spectra to Q and Λ₂ vortex identification.

Role
UTIAS AER1324 (graduate turbulence)
Era
2024
Status
stable
Tier
flagship
Tools
MATLAB · Python · JHTDB API
Q-criterion isosurfaces in a JHTDB forced-isotropic-turbulence sub-block — coherent vortex structures rendered at a fixed Q threshold
Q-criterion isosurfaces — coherent vortex tubes in the JHTDB forced-isotropic-turbulence block. The standard wake-and-roll-up signature of small-scale structure.

Problem

Turbulence theory, once written out, makes specific and testable claims about any flow that satisfies its assumptions. The AER1324 course project at UTIAS was an excuse to take those claims and push them against a real dataset — to see which pieces actually land, and from which angle.

Approach

The data source was the Johns Hopkins Turbulence Database forced-isotropic-turbulence DNS: a periodic cubic domain at 102431024^3 resolution, Reλ433Re_\lambda \approx 433, energy continuously injected at low wavenumbers to hold the flow in a statistically steady state. Sampling the field through the JHTDB API, I put together a workflow that went from DNS access to statistical analysis to spectral analysis to structure identification in one line, and could be rerun on a different slice without refactoring.

Two lenses ran through everything. Statistical: velocity and pressure PDFs over the full domain versus over a 1/641/64 subdomain, plus strain-rate statistics, as a test of Gaussianity at large scales and intermittency at small ones. Spectral: 1D power spectra E11(k)E_{11}(k) averaged over randomly oriented lines, compared against Kolmogorov’s k5/3k^{-5/3} and used alongside DNS gradients to estimate ε\varepsilon and the Kolmogorov scale η\eta.

Structure identification used Q and Λ2\Lambda_2 on the focused region, with the pressure Hessian and the complex eigenvalues of the velocity gradient as supporting diagnostics. Q picks up the diffuse vortical background; Λ2\Lambda_2 filters down to compact cores. The pair reveals more than either alone.

Result

The statistics behaved as isotropic turbulence is supposed to. Full-domain velocity and pressure PDFs were close to Gaussian; focused-region PDFs picked up the classical heavier tails and sharper peaks of intermittency. The compensated spectrum showed a clean k5/3k^{-5/3} region in the inertial range and the steeper drop of the dissipation range beyond it. The DNS-estimated η\eta confirmed the grid resolves the smallest scales.

The geometric story lined up. Q iso-surfaces covered a broad vortical background; Λ2\Lambda_2 resolved the compact cores, and the pressure Hessian traced their footprint in the curvature of the pressure field. Different mathematical views of the same flow agreed on where energy is concentrated and dissipated.

What I’d do differently

I would frame more of the workflow as a reusable JHTDB toolkit from the beginning. Much of what the project produced is now sitting in one project-specific notebook; broken into small utilities — field sampling, line spectra, Q/Λ2\Lambda_2 — the same code would carry into a wall-bounded or anisotropic dataset without rework.

Log-log E_11 vs kη with Kolmogorov −5/3 inertial-range fit overlaid
1D power spectrum E_11/(εν⁵)^(1/4) vs kη, with the Kolmogorov −5/3 inertial-range fit overlaid (blue) — the inertial-range signature of the cascade.
Velocity-gradient marginal probability density functions
Velocity-gradient marginal PDFs — non-Gaussian tails are the diagnostic small-scale signature of the cascade.
λ² (lambda-2) isosurfaces highlighting coherent vortex cores
λ² isosurfaces — Jeong-Hussain criterion picking out coherent vortex cores in the same sub-block, the Q-criterion's structural companion.

← Previous · UTAT wing MDO

Next · Multi-node CFD server →