- Jacobi Microbenchmark
Melvin.py
A pseudospectral solver framework designed to simulate 2-dimensional advection-diffusion problems. It is written entirely in Python and leverages CuPy for GPU parallelisation. It has been used to simulate thermohaline staircase formation, Rayleigh-BĂ©nard convection, and the resistive tearing instability.

Radiosity Renderer
Custom renderer which uses radiosity to implement global illumination. Uses OpenGL. Developed at ICHEC, Dublin as part of the PRACE Summer of HPC.

Dirac Cluster Challenge
Starting code for a parallel programming challenge I ran in 2022. Includes simulations of a general N-body problem, and a fully implicit fluid solver simulating Rayleight-Benard convection. The event taught students how to program GPUs and multi-core CPUs in Python.

Field Line Integrator
Tool to calculate the integration of various quantities along magnetic field lines using Mayavi. Consumes SDF files.

FPGA-Accelerated Fluid Solver (FAFS)
Implementation of Stam's Real-Time Fluid Dynamics for Games in OpenCL. Designed to run on FPGAs but only CPU and GPU were tested.

Lare1d
Implementation of a finite-volume Lagrangian-Remap scheme in 1D with shock capturing. Used as a toy model for the numerical methods section of my PhD thesis.

Lare3d
My version of the finite-volume magnetohydrodynamics code Lare3d including various implementations of anisotropic viscosity.

Melvin
Earlier version of Melvin.py written in C++ and parallelised with OpenMP and CUDA.

PyCascadia
Implementation of the remove-restore algorithm for combining bathymetry and topography datasets. Developed with Dr Alessandro Felder at UCL.

Bytebeat
GFP Simulator 9000
Simulate the interaction between molecules GFP-CRIB and Rac in 2 or 3 dimensions. Core numerical solver is a custom finite-element method. Developed for the Beatson Institute for Cancer Research. Technically works, but not particularly readable.

IR-GTS
Trade Pokemon between Nintendo DS and a PC
JOSS Scraper
Web scraper for the Journal of Open Source Software. Used in the associated blog post to analyse how many published projects use continuous testing.
SDF Tool
Tool for manipulating SDF (self-describing format) files to make analysis easier.
4 Lines
An experiment in producing art with only 4 lines.

Double Pendulum
Simulation of a double pendulum system in javascript with various options for creating interesting visualisations.

Lorenz Attractor
Visualisation of the Lorenz attractor with various options for making pretty pictures.

Regex Fractals
Generate fractals from regular expressions in javascript.

WebGL Julia Fractal
Generate Julia fractals with WebGL

GeorgeGL
Incomplete implementation of Lorena Barba's 12 steps to Navier-Stokes using WebGL.

Modelling anisotropic viscosity with applications in the solar corona
The Latex files and Python scripts used to render my PhD thesis. Includes all analysis code.

True Ross Facts
Facts about my friend Ross that may or may not be true.

Collatz Conjecture
Anisotropic Viscosity Analysis
Analysis code for my paper "The effect of anisotropic viscosity on the nonlinear kink instability"

Fluting Instability Analysis
Analysis code for my paper "Flute and kink instabilities in a dynamically twisted flux tube with anisotropic plasma viscosity".

Kelvin-Helmholtz Instability Analysis
Analysis code for my paper "Kelvin-Helmholtz instability and collapse of a twisted magnetic nullpoint with anisotropic viscosity"
