Built in the open
Ideas you can run
Scientific software is where the mathematics meets the experiment. My solvers, the code behind my papers, and projects I contribute to.
Flagship · Julia · GPU computing · Automatic differentiation
IncompressibleNavierStokes.jl
A differentiable, GPU-accelerated incompressible Navier–Stokes solver for large-eddy simulation and data-driven closure modeling. Train neural closure models through the solver while they are embedded in a running simulation.
Reproduce the papers
Research codes for reproducing the results in my papers: the numerical experiments, comparisons, and analyses behind the published work.
Experiments comparing equivariant and unconstrained turbulence closures, with the analysis behind the symmetry paper.
Reproduce the finite-volume LES experiments on exact expressions for the unresolved stress.
Space-time filtering experiments and comparisons from the time-integration paper.
Experiments on divergence-consistent filters and learned closure models for large-eddy simulation.
One-dimensional filtering and closure-model experiments behind “Discretize first, filter next”.
One-dimensional blood-flow simulation in FEniCS, with the implementation and examples accompanying the Artery.FE paper.
Projects I contribute to
Software developed and maintained by others, to which I have contributed.
Multidisciplinary design optimization, bringing together models, disciplines, and optimization methods.
My contribution: Added machine-learning surrogate modules, including a mixture-of-experts model, and helped migrate the codebase from Python 2 to Python 3.
A finite-element solver for the Bloch–Torrey equation, for diffusion-MRI simulation in tissue microstructure.
My contribution: Added Laplace-eigenfunction-based reduced-order models and permeable interface conditions. Developed synthetic geometry and triangulation tools for axons, including algorithms that wrap extracellular space around realistic neuron geometries.
A benchmark suite for differentiable physics solvers, comparing their predictions, gradients, and computational cost.
My contribution: Contributing to the integration of IncompressibleNavierStokes.jl into the benchmark suite.
Three-dimensional flows with immersed bubbles and droplets, using reduced-order interface tracking.
My contribution: Added 2D front tracking in IncompressibleNavierStokes.jl and interfaced a reduced-order surface representation with the flow solver.
Agent-assisted projects
Newer software developed with substantial help from coding agents, from parallel fluid solvers to playable science.
MPI-parallel, GPU-capable flow simulation with pseudo-spectral methods and finite-volume methods for channel flow, designed to reach beyond a single GPU.
Playable simulation games for CWI Science Day: an interactive introduction to scientific computing.