Software

I have experience of developing scientific software in Python, C, C++, and Fortran. Often these are small codes performing analysis of simulation outputs and/or toy calculations, but I also develop and release my own packages on GitHub. 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.
    • A code for performing fast, lattice-based Monte Carlo simulations to study atomic arrangements in multicomponent alloys, with an internal energy given by a Bragg-Williams Hamiltonian.
    • The code primarily uses the Metropolis algorithm with Kawasaki dynamics. It can be used for simulated annealing (to search for and study predicted phase transitions) but also to draw decorrelated atomic configurations for use in subsequent studies, e.g. in training datasets for machine-learned interatomic potentials.
    • Recently, working with Dr Livia Bartók-Pártay, we implemented the nested sampling algorithm, which facilitates a complete, unbiased exploration of arbitrary potential energy surfaces.

Codes Used

I am familiar a number of community-developed density functional theory (DFT) codes, including CASTEP, 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.