Current projects
Selected projects I currently contribute to as part of my role within the Oxford Research Software Engineering Group (OxRSE).
Global.health: Clinical data pipelines
Global.health is a data science initiative, providing a global repository and visualisation platform for epidimiological data on infectious diseases and emerging outbreaks. In collaboration with ISARIC we are building a reproducable pipeline for clinical data transformation and analysis, aiming to improve patient outcomes during disease outbreaks by reducing the time between data collection in a clinical study, and publication of treatment-relevant results. This project is open-source and freely available on GitHub.
PyBaMM: Python Battery Mathematical Modelling
PyBaMM is an open-source battery simulation package written in Python. Their mission is to accelerate battery modelling research by providing open-source tools for multi-institutional, interdisciplinary collaboration. I help support the maintainance and development of PyBaMM, mostly relating to the backend framework for writing and solving systems of differential equations.
PhD Software
Computational models for simulating volcanic inputs to planetary atmospheres
EVo: A Python-based magma degassing model
I have developed a Python-based thermodynamical model of volcanic degassing, which calculates the gas chemistry and melt volatile content of an erupting magma. This can be done at a single pressure, or at pressure steps as the modelled magma-gas mix moves from depth to the surface. Melt chemistry is linked to gas speciation via oxygen fugacity (fO2) and compositionally dependent solubility laws, and allow for either closed or open system degassing in a C-O-H-S-N system, or for a subset of these elements. This implementation is optimised for use in planetary scenarios, enabling model runs with fixed atomic volatile contents for experiments utilising a wide fO2 range. Methods are also in place for running gridsearches over parameter ranges. This model is open-source and freely available on GitHub. Please get in contact if you'd like to know more!
EVolve: Volcanically-derived atmospheres evolving through time
EVolve is a 3-part model linking the mantle of a planet to a 0D atmosphere using EVo. It is designed to simulate the evolution of a volcanically derived atmosphere through time, depending on a range of factors including the starting atmospheric composition, total mantle volatile content, mantle fO2, volcanic outgassing rate and surface temperature.
In a single time-step, a portion of the mantle is melted and volatiles partition from the bulk mantle into a melt phase according assuming batch melting. The mass and volatile content of this magma, along with how oxidising the planet's upper mantle is (measured by its oxygen fugacity, the fO2 relative to a mineral buffer) are used as initial conditions in EVo. EVo finds the volatile saturation pressure of this magma, then calculates the volatile element chemistry of the mixed magma and exsolved gas at both the saturation pressure, and the surface. The end point of the volcanic outgassing is defined as the surface atmospheric pressure, which gradually increases with every time-step as volatile mass is added to the atmosphere. The FastChem 2.0 equilibrium chemistry model, packaged as a submodule within EVolve, is next used to calculate the chemistry of the atmosphere at the recalculated surface pressure, and the surface temperature of the planet, for the new, mixed atmosphere.