doped Schematic of a doped (defect-containing) crystal, inspired by the biological analogy to (semiconductor) doping.

doped is a Python software for the generation, pre-/post-processing and analysis of defect supercell calculations, implementing the defect simulation workflow in an efficient, reproducible, user-friendly yet powerful and fully-customisable manner.

Tutorials showing the code functionality and usage are provided on the Tutorials page, and an overview of the key advances of the package is given in the JOSS paper.

Key Features

All features and functionality are fully-customisable:

  • Supercell Generation: Generate an optimal supercell, maximising periodic image separation for the minimum number of atoms (computational cost).

  • Defect Generation: Generate defect supercells and likely charge states from chemical intuition.

  • Calculation I/O: Automatically write inputs & parse calculations (VASP & other DFT/force-field codes).

  • Chemical Potentials: Determine relevant competing phases for chemical potential limits, with automated calculation setup, parsing and analysis.

  • Defect Analysis: Automatically parse calculation outputs to compute defect formation energies, finite-size corrections (FNV & eFNV), symmetries, degeneracies, transition levels, etc.

  • Thermodynamic Analysis: Compute (non-)equilibrium Fermi levels, defect/carrier concentrations etc. as functions of annealing/cooling temperature, chemical potentials, full inclusion of metastable states etc.

  • Plotting: Generate publication-quality plots of defect formation energies, chemical potential limits, defect/carrier concentrations, Fermi levels, charge corrections, etc.

  • Python Interface: Fully-customisable and modular Python API, being plug-and-play with ShakeNBreak for defect structure-searching, easyunfold for band unfolding, CarrierCapture.jl/nonrad for non-radiative recombination etc.

  • Reproducibility, tabulation, automated compatibility/sanity checking, strain/displacement analysis, shallow defect / eigenvalue analysis, high-throughput compatibility, Wyckoff analysis…

Performance and Example Outputs


(a) Optimal supercell generation comparison. (b) Charge state estimation comparison. Example (c) Kumagai-Oba (eFNV) finite-size correction plot, (d) defect formation energy diagram, (e) chemical potential / stability region, (f) Fermi level vs. annealing temperature, (g) defect/carrier concentrations vs. annealing temperature and (h) Fermi level / carrier concentration heatmap plots from doped. Automated plots of (i,j) single-particle eigenvalues and (k) site displacements from DFT supercell calculations. See the JOSS paper for more details.


doped can be installed via PyPI (pip install doped) or conda if preferred, and further instructions for setting up POTCAR files with pymatgen (needed for input file generation), if not already done, are provided on the Installation page.


As shown in the tutorials, it is highly recommended to use the ShakeNBreak approach when calculating point defects in solids, to ensure you have identified the ground-state structures of your defects. As detailed in the theory paper, skipping this step can result in drastically incorrect formation energies, transition levels, carrier capture (basically any property associated with defects). This approach is followed in the tutorials, with a more in-depth explanation and tutorial given on the ShakeNBreak docs.

Studies using doped, so far

  • X. Wang et al. Upper efficiency limit of Sb₂Se₃ solar cells arXiv 2024

  • I. Mosquera-Lois et al. Machine-learning structural reconstructions for accelerated point defect calculations arXiv 2024

  • W. Dou et al. Giant Band Degeneracy via Orbital Engineering Enhances Thermoelectric Performance from Sb₂Si₂Te₆ to Sc₂Si₂Te₆ ChemRxiv 2024

  • K. Li et al. Computational Prediction of an Antimony-based n-type Transparent Conducting Oxide: F-doped Sb₂O₅ Chemistry of Materials 2024

  • X. Wang et al. Four-electron negative-U vacancy defects in antimony selenide Physical Review B 2023

  • Y. Kumagai et al. Alkali Mono-Pnictides: A New Class of Photovoltaic Materials by Element Mutation PRX Energy 2023

  • S. M. Liga & S. R. Kavanagh, A. Walsh, D. O. Scanlon, G. Konstantatos Mixed-Cation Vacancy-Ordered Perovskites (Cs₂Ti 1–x Sn x X₆; X = I or Br): Low-Temperature Miscibility, Additivity, and Tunable Stability Journal of Physical Chemistry C 2023

  • A. T. J. Nicolson et al. Cu₂SiSe₃ as a promising solar absorber: harnessing cation dissimilarity to avoid killer antisites Journal of Materials Chemistry A 2023

  • Y. W. Woo, Z. Li, Y-K. Jung, J-S. Park, A. Walsh Inhomogeneous Defect Distribution in Mixed-Polytype Metal Halide Perovskites ACS Energy Letters 2023

  • P. A. Hyde et al. Lithium Intercalation into the Excitonic Insulator Candidate Ta₂NiSe₅ Inorganic Chemistry 2023

  • J. Willis, K. B. Spooner, D. O. Scanlon. On the possibility of p-type doping in barium stannate Applied Physics Letters 2023

  • J. Cen et al. Cation disorder dominates the defect chemistry of high-voltage LiMn 1.5 Ni 0.5 O₄ (LMNO) spinel cathodes Journal of Materials Chemistry A 2023

  • J. Willis & R. Claes et al. Limits to Hole Mobility and Doping in Copper Iodide Chem Mater 2023

  • I. Mosquera-Lois & S. R. Kavanagh, A. Walsh, D. O. Scanlon Identifying the ground state structures of point defects in solids npj Computational Materials 2023

  • Y. T. Huang & S. R. Kavanagh et al. Strong absorption and ultrafast localisation in NaBiS₂ nanocrystals with slow charge-carrier recombination Nature Communications 2022

  • S. R. Kavanagh, D. O. Scanlon, A. Walsh, C. Freysoldt Impact of metastable defect structures on carrier recombination in solar cells Faraday Discussions 2022

  • Y-S. Choi et al. Intrinsic Defects and Their Role in the Phase Transition of Na-Ion Anode Na₂Ti₃O₇ ACS Appl. Energy Mater. 2022

  • S. R. Kavanagh, D. O. Scanlon, A. Walsh Rapid Recombination by Cadmium Vacancies in CdTe ACS Energy Letters 2021

  • C. J. Krajewska et al. Enhanced visible light absorption in layered Cs₃Bi₂Br₉ through mixed-valence Sn(II)/Sn(IV) doping Chemical Science 2021


doped (née DefectsWithTheBoys #iykyk) has benefitted from feedback from many users, in particular members of the Scanlon and Walsh research groups who have / are using it in their work. Direct contributors are listed in the GitHub Contributors sidebar; including Seán Kavanagh, Alex Squires, Adair Nicolson, Irea Mosquera-Lois, Alex Ganose, Bonan Zhu, Katarina Brlec, Sabrine Hachmioune and Savya Aggarwal.

doped was originally based on the excellent PyCDT (no longer maintained), but transformed and morphed over time as more and more functionality was added. After breaking changes in pymatgen, the package was entirely refactored and rewritten, to work with the new pymatgen-analysis-defects package.