Codes

Measurement is half the work; making sense of what comes out of it is the other half. These are the tools we built for our own experiments, released so that anyone can use them.

uPrimeGPL-3.0

Turbulence analysis without scripting

A standalone desktop application for post-processing velocity fields from PIV and CFD. It reads Tecplot ASCII files written by LaVision DaVis and MATLAB .mat files, and puts the whole turbulence pipeline in one window. Nothing to script, nothing to configure.

The uPrime main window: a sidebar of loading, preprocessing and analysis modules on the left, and a mean speed field through a pipe expansion with velocity vectors on the right
The main window. Loading, preprocessing and the analysis modules run down the left; the field view and its colour bar fill the rest.
  • Reynolds stresses, turbulent kinetic energy budget, spectra, correlations, proper orthogonal and dynamic mode decomposition, and vortex identification
  • Probability analysis: velocity distributions, forward and reverse flow probability, binary space-time maps and quadrant decomposition
  • Convergence checking at any point in the field, so you know whether a statistic has settled before you publish it
  • Datasets larger than memory are mapped to disk, and heavy analysis runs in the background while the window stays responsive
  • Non-destructive masking of walls, shadows and reflections; the raw data is never modified
  • Export to PNG at 300 dpi, and to PDF and SVG with editable text
  • Windows executable with no Python install required; macOS and Linux run from source

LE-DMGPL-3.0

Velocity reconstruction that knows where the body is

A reference implementation of the boundary-aware reconstruction we built for the rising sphere experiments. Give it scattered particle tracks plus the shape and motion of a rigid body, and it returns a divergence-free velocity field on a fixed grid that behaves properly right up to the moving surface.

  • Sorts every grid point into open fluid, a thin shell at the body surface, or solid interior, and solves all three together in one pass
  • Enforces the body's own motion at the surface and conservation of mass only where there is fluid
  • Rigid spheres and ellipsoids in this release
  • Pure Python on numpy, scipy and matplotlib, with no compiled extensions
  • Ships with a small synthetic translating sphere that runs with no external data, so an install can be checked in minutes