Code Compatibility

Code Compatibility#

ShakeNBreak is built to natively function using pymatgen Defect objects (docs available here) and be compatible with the most recent version of pymatgen. If you are receiving pymatgen-related errors when using ShakeNBreak, you may need to update pymatgen and/or ShakeNBreak, which can be done with:

pip install --upgrade pymatgen shakenbreak

ShakeNBreak can take pymatgen DefectEntry objects as input (to then generate the trial distorted structures), but also can take in pymatgen Structure objects, doped defect dictionaries or structure files (e.g. POSCARs for VASP) as inputs. As such, it should be compatible with any defect code (such as doped, pydefect, PyCDT, PyLada, DASP, Spinney, DefAP, PyDEF…) that generates these files.

The vast majority of the code in ShakeNBreak is agnostic to the underlying energy calculator / electronic structure (i.e. DFT/ML) code used to calculate the raw energies of defect supercells. Direct input file generation is supported for VASP, Quantum Espresso, CP2K, FHI-aims and CASTEP, while structure files for essentially all DFT/ML codes can be easily generated using the to() method for pymatgen Structures or ase I/O methods, with the Structure objects used in ShakeNBreak. Direct output parsing (e.g. via snb-parse) is currently supported for VASP, while updates to support other codes may be added in the future.

Please let us know if you have any issues with compatibility, or if you would like to see any additional features added to ShakeNBreak to make it more compatible with your code.