Codes

We lead and contribute to the development of a range of computational packages to support our research, primarily based in Python. These computational tools are open-source and are used by thousands of other researchers worldwide. Code development is not a requirement in our group, but it can be a great way to build and showcase highly-desired skills, while greatly accelerating our research and benefitting the global research community.

We aim to produce code that is simultaneously powerful and user-friendly, to maximise impact. These include:

doped

doped is a comprehensive Python suite for the generation and analysis of defect calculations, implementing the defect simulation workflow in an efficient, reproducible, user-friendly yet powerful and fully-customisable manner.

Click any of the images here to check out the docs sites!

ShakeNBreak

ShakeNBreak is a defect structure-searching method (i.e. global optimisation strategy) employing chemically-guided bond distortions to locate ground-state and metastable structures of defects in solid materials.

NequIP & Allegro

NequIP is an open-source code for building equivariant graph neural network (GNN) interatomic potentials (i.e. machine-learned force fields; MLFFs), which has inspired several other community codes in this area. See the matbench-discovery leaderboard for inorganic material foundation models.

Allegro is an extension to NequIP, which implements a strictly-local GNN architecture to facilitate simulations of millions of atoms 🚀

PyTASER

PyTASER

PyTASER is a Python library for simulating differential absorption spectra in compounds using quantum chemical calculations, including transient (TAS) and differential (DAS) absorption spectroscopies.

easyunfold

easyunfold implements electronic band structure unfolding, which is a technique for obtaining the effective band structure of symmetry-broken systems, such as disordered / defective / alloyed / thermally-active materials.

Cs₂(Sn/Ti)Br₆ Vacancy-Ordered Perovskite AlloysOxygen Vacancy (Vₒ⁰) in MgO

We also contribute to a number of community codes, including: