Releases: SMTG-Bham/doped
3.2.0
- Add
fastchempot heatmap plotting for arbitrary dimension systems; see https://doped.readthedocs.io/en/latest/chemical_potentials_tutorial.html#analysing-and-visualising-the-chemical-potential-limits - Modularise
DefectsParserin preparation for additional code support (Quantum Espresso; #133) - Automatically identify dimer bonds in defect supercells and inform user of potential spin polarisation
- Detect cases of matching kpoint grids but mismatching shifts
- Update defect clustering naming behaviour (https://doped.readthedocs.io/en/latest/doped.thermodynamics.html#doped.thermodynamics.name_defect_cluster)
- Updates to be fully compatible with latest
pymatgen(#144) numpyv2 (and v1) compatibility- Various robustness updates and improvements.
3.1.0
- Update chemical potentials code:
- Handle recent breaking changes in
pymatgen(Apr 2025). - Auto check compatibility of
INCAR\s andPOTCAR\s in competing phases calculations (as already done for supercell calculations). - Merge
ExtrinsicCompetingPhasestoCompetingPhases
- Handle recent breaking changes in
- Directly parse spin magnetisation from VASP outputs, including handling for NCL spins.
- Add site-competition handling in defect concentration functions; usage in this
paper <https://doi.org/10.26434/chemrxiv-2025-j44qd>, seedocstring <https://doped.readthedocs.io/en/latest/doped.thermodynamics.html#doped.thermodynamics.DefectThermodynamics.get_equilibrium_concentrations>. - Include 'adsorbate' interstitial sites for structures with significant vacuum volume.
- Avoid
multiprocessingerrors with python scripts that don't useif __name__ == "__main__":(#105, #108) - Improved algorithm for defect site clustering (for plotting & concentration analyses).
- Use primitive cell for parsed
Defect\s, rather than supercell. delta_gapupdates:- Add
delta_gapoption toFermiSolvermethods - Allow
delta_gapto be given as a function for temperature-dependent methods
- Add
- Many efficiency updates.
- Miscellaneous minor bug fixes, improvements and docs updates.
3.0.0
-
Major efficiency updates to most parts of the workflow, mostly implemented as helper functions in
doped.utils.efficiencyanddoped.utils.configurations, including:- Fast and intelligent structure matching (patching various parts of
pymatgen'sStructureMatchercode). - Voronoi tessellation for interstitial generation
- Defect generation
- Wyckoff site detection
- Defect site detection and matching, including very large supercells.
DefectThermodynamicsinitialisation (and defect grouping by distance between equivalent sites).
- Fast and intelligent structure matching (patching various parts of
-
FermiSolverandChemicalPotentialGridclasses in #46, for
advanced defect/carrier thermodynamics, allowing various constraints (e.g. mobile/fixed defects / charge
states etc), with a number of convenience functions (e.g. for scanning temperature / chemical potentials
etc, optimising output properties over many-dimensional chemical potential spaces etc). Usage
demonstrated in https://doped.readthedocs.io/en/latest/fermisolver_tutorial.html. -
Add
is_shallowDefectEntryproperty, andDefectThermodynamics._get_in_gap_fermi_level_stability_window
method. Shallow defect states now automatically excluded from formation energy diagram plots for cleaner
outputs, controllable with theunstable_entrieskwarg. Large charge correction errors for
shallow/unstable defects (typically higher and a common indication of 'false charge state' behaviour)
now do not throw a warning during parsing. -
CompetingPhasesnow compatible with both legacy and new Materials Project APIs, with automatic
handling (and appropriate warnings) for cases of unstable host materials/compositions. -
Internal overhaul of
CompetingPhasesAnalyzercode, usingComputedStructureEntryobjects.
Initialisation now much faster and more convenient, JSON-serializable outputs, further visualisation and
plotting, and queryability. -
Various robustness improvements, including:
- Handling mixed-valence systems
- Handling systems with very large inter-atomic distances.
- As a robustness test, defect generation for all materials on the Materials Project proceeds
efficiently and without issue (as performed as part of https://arxiv.org/abs/2412.19330). - Improved eigenvalue parsing and comparisons (for automated shallow defect detection).
- Dynamic adjustment of
symprecfor edge cases.
-
Miscellaneous convenience updates.
-
Docs, tutorials and tests updates.
-
BETA: Add
doped.utils.configurationsfunctions to quickly generate CC diagram structures / initial
NEB paths for defect transformations, ensuring correct initial orientations (to give shortest path).
2.4.7
- Update doping/carrier concentration functions to be more accurate and robust (following logic discussed
here: materialsproject/pymatgen#3879). - Improve reverse-supercell-matrix determination for
generate_supercell=False - Refactor
bulk_band_gap_pathtobulk_band_gap_vrinDefectsParser/DefectParser, - Update docstrings to reiterate that bulk supercell VBM is used as VBM reference point for the Fermi level
by default, unless alternativebulk_band_gap_vrprovided.
2.4.6
- Update
Defect,DefectEntryandDefectThermodynamicsproperties/methods to be even more
efficient with calculations of formation energies and concentrations. Gives ~10x speedup in Fermi
solving and concentration calculations (e.g. from 2 hours to 12 minutes for 2D chempot vs temp CdTe grid
in thermodynamics tutorial). - Avoid unnecessary
DeprecationWarnings from latestspglibrelease.
2.4.5
- Enforce
shakenbreak>=2.3.4requirement.
2.4.4
- Make oxidation state guessing more efficient, semi-significant speed up in generation/parsing for tough cases.
- Add
bulk_site_concentrationproperty toDefectEntry, giving the concentration of the corresponding lattice site of that defect in the pristine bulk. - Minor updates to ensure compatibility with recent
pymatgenandASEreleases.
2.4.3
- Remove
spglib<=2.0.2dependency (set to avoid unnecessary warnings), and update installation instructions accordingly.
2.4.2
- Allow cases where the calculated host material is unstable wrt competing phases (above the hull), by downshifting to the hull and warning the user about this.
- General updates to chemical potentials code; more robust (better error catches and messages, API key handling), more informative, cleaner outputs.
- Updates to match recent changes in
pymatgenobject types (e.g. #68) - Minor efficiency & robustness updates
2.4.1
- Speed up eigenvalue parsing by using the faster
dopedsite-matching functions rather thanMakeDefectStructureInfofrompydefect - Minor efficiency & robustness updates.
- Minor docs & tutorials updates
- Minor tests updates