SHDEM: Non-Spherical Particle DEM in LAMMPS
Developed a spherical harmonic-based DEM package inside LAMMPS for non-convex, arbitrarily shaped particles relevant to industrial powders. Implemented contact detection for non-spherical geometries; parallelised with MPI and OpenMP for large-scale HPC. Collaborated with EPCC and Sandia National Laboratory. Published in Computer Physics Communications (2024).
GPU-Accelerated SPH–DEM for Hydropower Turbine Design
Led SPH simulation of a novel turbine concept for an industrial client using DualSPHysics on GPU. The model captured air–water multiphase free-surface flow and coupled fluid–solid interaction for the rotating geometry via Project Chrono. Also contributed to a gearbox lubrication SPH project modelling oil dynamics around rotating gears.
OpenFOAM Solver for CO₂ Direct Air Capture & Industrial Absorption
Implemented a dynamic Langmuir adsorption boundary condition in OpenFOAM with scalar transport and mass transfer coupling for CO₂ direct air capture (DAC). Also developed reactive multiphase CFD for industrial CO₂ absorption into NaOH — gas–liquid flow with reactive species transport. Results used directly by UK industrial partners for scale-up decisions.
R → JAX/GPU: Geospatial Epidemiological Model on Wirral Data
Ported a legacy R-based epidemiological simulation to Python with JAX/XLA, operating on real geographical boundary and demographic data for the Wirral peninsula. Extended the original model with new physical features beyond the R implementation. GPU acceleration via JAX dramatically reduced parameter sweep runtimes — enabling comprehensive sensitivity analyses on spatially resolved data that were previously impractical in the R version.
DEM Calibration & Blending Optimisation for OSD Manufacturing
Developed and validated DEM workflows for pharmaceutical powder blending (EDEM) and tablet compaction (Rocky) at realistic scale — up to 10M+ particles. Calibrated cohesive contact models against experimental data. Designed HyperStudy DoE campaigns to map mixing performance; built Python pipelines (Pandas, Scikit-learn) for data-driven model calibration. Trained 3–5 engineers from scratch on EDEM.
GPU Porting: NEMO Ocean Model & Scientific Codebases
Ported performance-critical sections of the NEMO ocean circulation model to GPU using OpenACC — a large-scale production-grade Fortran codebase — in collaboration with the Met Office. Separately, ported a vector-borne disease epidemiological model to JAX/XLA. Both projects involved profiling, bottleneck identification, and introducing GPU-parallel data structures.
Self-Propelled Particle Dynamics in LAMMPS (PhD)
Extended LAMMPS in C++ with custom fixes for self-propelled (active matter) particle dynamics. Developed stochastic simulation frameworks to study collective behaviour of active rod systems in soft substrates — including morphodynamics, dense suspension rheology, and substrate interaction.
// adding figures to project cards
Each card above has an image slot. To add a figure, place an <img src="images/your-figure.png" class="w-full h-full object-cover"> inside the .img-slot div for that card.