Software and methodology development
Making tools for computational materials science.
I am interested in developing tools for material simulations and using them to solve real-world problems.
Symmetrix-XL: fast inference for atomistic foundation models
Equivariant atomistic foundation models such as MACE provide broadly transferable interatomic potentials, but their repeated execution at simulation scale remains computationally and memory intensive. Symmetrix-XL is an inference engine that scales pretrained MACE checkpoints without retraining, distillation, or modification of their learned weights. It combines streamed-edge execution, model-specialized code generation, and tiled execution with a bounded device-memory workspace.
The results are dramatic: on a single A100 80 GB GPU, the MACE-OMAT-0 capacity boundary increases from 24,565 atoms to 11.24 million atoms, with 3–5× faster end-to-end inference compared to optimized baselines, and the same backend weak-scales to 703 million atoms on 64 A800 GPUs at 93.8% efficiency [1].
Band structure unfolding
When a supercell is used for simulation, the band structure becomes folded in the reciprocal space. We have developed easyunfold, a Python package aimed at simplifying the process and helping data provenance and sharing [2].
High-throughput workflows
AiiDA is a platform for executing calculations (workflows) and keeping track of data provenance while performing complex automated workflows [3]. We have developed plugins to interface it with density functional theory codes:
- aiida-vasp: The interface to the VASP code.
- aiida-castep: The interface to the CASTEP code.
- aiida-grouppathx: A tool to organize provenance data in a file-and-folder style.
Both packages also include workflows to handle calculation errors and automate simple routine tasks such as structure optimization and band structure calculations.
Advanced workflows can be found in the aiida-user-addons package, such as those for magnetic configuration enumeration, voltage curve calculation.
I have also developed a package to automate the process of running ab initio random structure searching (AIRSS) and analysing the results. This package is called DISP and is primarily aimed at running large scale searches distributed on multiple computers with flexibility and scalability. It uses a central database to store workflow data and results (so more like atomate).
Nonlinear optics
NLOTools.jl is a tool for computing linear and non-linear optics properties of materials. Primarily aimed for use with the CASTEP code but also compatible with VASP. This code will be open-sourced in the near future.
EDDP.jl
EDDP.jl (the package name may change in the near future in compliance with Julia naming conventions) is a Julia implementation of the Ephemeral Data-Driven Potential (EDDP) aimed at efficiency and being test beds for further developments.
EDDP is a simple approach to construct machine learning interatomic potential for accelerating crystal structure prediction [4]. The atomic environments are described with up to three-body terms with Lennard-Jones inspired expansion terms. The descriptors are then fed to an ensemble of shallow neural networks for prediction of energy and forces.
This approach is well-integrated with ab initio random structure searching (AIRSS).
References
2026
- Train for Accuracy, Execute at Scale: Architecture-Preserving Inference for Equivariant Atomistic Foundation ModelsarXiv preprint arXiv:2610.01036, Jun 2026Preprint