Software
I have experience of developing scientific software in Python, C, C++, and Fortran. Quite frequently I write small codes for performing analysis of simulation outputs and/or running toy calculations, but I also develop and release my own (more fully featured) packages on GitHub. Additionally, you will occasionally find me making contributions to other people’s codebases – usually implementing features I would like to use myself!
I have experience of developing codes suitable for deployment on high-performance computing facilities, including use of both shared-memory (OpenMP) and distributed-memory (MPI) parallelism. I also have some experience in the use of NVIDIA’s CUDA platform for GPU acceleration. If you are interested in working with me on a software project, please email me!
Codes Developed
- BraWl, released open-source under the GNU Lesser General Public License v3.0 (LGPL-3.0).
- A package for performing lattice-based atomistic simulations of alloys with an internal energy given by a Bragg–Williams Hamiltonian. The package implements a range of conventional and enhanced sampling techniques, including:
- The Metropolis–Hastings Monte Carlo algorithm.
- The nested sampling algorithm, implemented in collaboration with the group of Dr Livia Bartók-Pártay (Department of Chemistry, University of Warwick).
- Wang–Landau sampling, a parallelised implementation of which is available following work conducted with Hubert Naguszewski and Prof. David Quigley (Department of Physics, University of Warwick).
- A package for performing lattice-based atomistic simulations of alloys with an internal energy given by a Bragg–Williams Hamiltonian. The package implements a range of conventional and enhanced sampling techniques, including:
Codes Used
I am familiar with several community-developed density functional theory (DFT) codes, including CASTEP, Quantum ESPRESSO, JuKKR, SPR-KKR, Hutsepot, and MARMOT. I also have experience of using the Atomic Simulation Environment (ASE) to build workflows and ‘drive’ codes in a more automated manner.