Software
Most of my research runs on software I build and maintain in the open. If a paper of mine makes a claim, there is a repository where you can rerun it.
IncompressibleNavierStokes.jl
IncompressibleNavierStokes.jl is the main package: a differentiable, GPU-accelerated incompressible Navier–Stokes solver in Julia, designed for large-eddy simulation and data-driven closure modeling. Being differentiable end-to-end means neural closure models can be trained through the solver ("a-posteriori" training), not just on precomputed snapshots.
It is described in the paper A differentiable software suite for accelerated simulation of turbulent flows and in the blog post Writing a differentiable fluid solver in Julia.
Research codes
Each paper ships with the code that produced it:
- SymmetryCode.jl — equivariant closure models and the experiments of the symmetry paper
- ExactClosure.jl — exact unresolved-stress expressions for finite-volume LES (paper)
- DLES15CompanionCode — time integration as filtering (paper)
- DivergenceConsistency — divergence-consistent neural closure models (paper)
- DiscreteFiltering.jl — discrete filtering in 1D (paper)
Tutorials
NeuralClosureTutorials contains pedagogical notebooks on learning neural closure models for fluid flows, used in lectures and schools.
Contributions
I have contributed to GEMSEO (multidisciplinary design optimization), SpinDoctor (diffusion-MRI simulation), and Artery.FE (1D blood-flow simulation in FEniCS, JOSS paper).
