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.