Releases: SMTG-Bham/ShakeNBreak
Releases · SMTG-Bham/ShakeNBreak
3.4.0
- Major efficiency updates:
- Uses
_scan_sm_stol_till_match
and turbo-chargedStructureMatcher
methods fromdoped
v3
, speeding up structure matching (e.g. insnb-regenerate
for identifying distinct defect
geometries) by >~3 orders of magnitude. - Uses caching in atomic displacement calculations (for
"disp"
/"max_dist"
metrics) - Use efficient Voronoi analyzer from
doped
v3
for multiplicity determination. - More efficient (and cleaner) plotting with many defects/distortions
- Uses
- Add
Dimer
to default distortions grid output for vacancies, following discussions and testing for
cation vacancies in oxides. - Miscellaneous:
- All
snb-xxx
functions now auto-detect if running within a defect folder or in a top-level
directory (i.e. auto--all
behaviour). - Handling of gzipped
OUTCAR.gz
files for energy parsing. - For (rare) cases of degenerate choices of NNs to distort in terms of distance, but non-degenerate
combinations
(e.g. distorting 2 NNs of a square coordination, could be cis or trans choices),
the choice is made deterministically; choosing the combination with the shortest distances between
distorted NNs (i.e. the cis choice). - Greater verbosity control
- Some code cleanup and formatting, and robustness updates
- All
3.3.6
- Add
py.typed
to properly detect type hints by @Andrew-S-Rosen snb-run
updates to improve efficiency
3.3.5
- Enforce
doped>=2.4.4
requirement.
3.3.4
- Make oxidation state guessing more efficient.
- Update Quantum Espresso and FHI-aims IO functions to work with new (and old) ASE release.
- Minor updates to ensure compatibility with recent
pymatgen
release. - Allow unrecognised defect names when plotting.
3.3.3
- Add
verbose
option to more parsing/plotting functions for better control of output detail. - Improve effiency & robustness of oxidation state handling.
- Miscellaneous efficiency (e.g. memory reduction) and robustness updates.
- Improved GitHub Actions test efficiency.
3.3.1
distortion_metadata.json
for each defect now saved to the individual defect folders (as well as the
combined total distortion metadata in the top level folder) – more likely to be retained by the user
whenscp
ing around etc.- Minor updates:
- Refactor
_format_defect_name
toformat_defect_name
fromdoped
(now a public function) - Update
snb-run
to avoid possible 'file exists' warning - Update tutorials/notebooks to specify
vasp_nkred_std
to streamline workflow - Remove unnecessary
tutorials
folder with duplicate tutorial notebook (to reduce workload). - Add Binder/Colab buttons to run tutorials in the cloud from docs
- Default verbosity updates (quieten some unnecessary info messages)
- Make
distortion_metadata
overwriting/combining more robust and less (unnecessarily) verbose
- Refactor
- Bugfix of
snb-run
fromv3.3.0
: If max number of electronic steps (NELM
) threshold was reached
in an ionic step, it would be falsely recognised as converged (due tounconverged
being in the
OUTCAR
). This would only affectsnb-run
behaviour in some cases withv3.3.0
, and if so the
user should be warned anyway withBond_Distortion_X not fully relaxed
when later running
snb-parse
/snb-plot
/snb-groundstate
. Now fixed. To double check, one can update
ShakeNBreak
and just re-runsnb-run
, and any affected distortions will be correctly determined as
unconverged and be re-submitted.
3.3.0
- Add Dimer distortion as a targeted distortion for dimer reconstructions. It pushes two of the defect NN to a distance of 2 Å.
- Add option
distorted_atoms
to theDistortion
class to allow users to specify the indexes of the atoms to distort. - Update tests to check the new functionality.
- Update
get_homoionic_bonds
to detect homoionic bonds between different cations/anions (rather than just bonds between the same element) - Fix issue with
snb-generate
when no defect name was specified (by addingunrelaxed=True
when callingget_defect_name_from_entry
) - Update functions that read
OUTCARs
to be able to readOUTCAR.gz
files too - Update energies parsing to still work when all distortions are high energy, but warn the user about this (i.e. only
Unperturbed
) - Update
snb-run
to add early-on detection of distortions that are stuck in high energy basins and rename them to "High_Energy" to avoid continuing their relaxation - Miscellaneous efficiency improvements and bug fixes
3.2.3
- Ensure the sorted
pymatgen
Structure
is created for the VASP input (fixes a rare bug inv3.2.1
andv3.2.2
where for certain structures the order of elements in the POSCAR was not properly sorted,
which is usually fine, but messed with theROPT
INCAR
setting). - Plotting format updates (make legend frame more transparent to make datapoints behind it easier to see).
- Update tests
- Update docs (note about handling AFM systems)
3.2.2
- Consolidate
SnB
/doped
INCAR
defaults and remove redundant settings. - Ensure backwards compatiblity in defect folder name handling.
- Fix bug in
get_site_magnetizations
.
3.2.1
- Update CLI config handling.
- Remove
shakenbreak.vasp
module and usedoped
VASP file writing functions directly. - Add INCAR/KPOINTS/POTCAR file writing tests.
test_local.py
now deleted as these tests are now
automatically run intest_input.py
/test_cli.py
ifPOTCAR
s available.