1
1
Change Log
2
2
==========
3
3
4
+ v3.4.0
5
+ ----------
6
+ - Major efficiency updates:
7
+ - Uses ``_scan_sm_stol_till_match `` and turbo-charged ``StructureMatcher `` methods from ``doped ``
8
+ ``v3 ``, speeding up structure matching (e.g. in ``snb-regenerate `` for identifying distinct defect
9
+ geometries) by >~3 orders of magnitude.
10
+ - Uses caching in atomic displacement calculations (for ``"disp" ``/``"max_dist" `` metrics)
11
+ - Use efficient Voronoi analyzer from ``doped `` ``v3 `` for multiplicity determination.
12
+ - More efficient (and cleaner) plotting with many defects/distortions
13
+ - Add ``Dimer `` to default distortions grid output for vacancies, following discussions and testing for
14
+ cation vacancies in oxides.
15
+ - Miscellaneous:
16
+ - All ``snb-xxx `` functions now auto-detect if running within a defect folder or in a top-level
17
+ directory (i.e. auto ``--all `` behaviour).
18
+ - Handling of gzipped ``OUTCAR.gz `` files for energy parsing.
19
+ - For (rare) cases of degenerate choices of NNs to distort in terms of distance, but non-degenerate
20
+ `combinations ` (e.g. distorting 2 NNs of a square coordination, could be cis or trans choices),
21
+ the choice is made deterministically; choosing the combination with the shortest distances between
22
+ distorted NNs (i.e. the cis choice).
23
+ - Greater verbosity control
24
+ - Some code cleanup and formatting, and robustness updates
25
+
4
26
v3.3.6
5
27
----------
6
- - Add `py.typed ` to properly detect type hints by @Andrew-S-Rosen
7
- - `snb-run ` updates to improve efficiency
28
+ - Add `` py.typed ` ` to properly detect type hints by @Andrew-S-Rosen
29
+ - `` snb-run ` ` updates to improve efficiency
8
30
9
31
v3.3.5
10
32
----------
36
58
----------
37
59
- ``distortion_metadata.json `` for each defect now saved to the individual defect folders (as well as the
38
60
combined total distortion metadata in the top level folder) – more likely to be retained by the user
39
- when ``scp``ing around etc.
61
+ when ``scp ``\ i ng around etc.
40
62
- Minor updates:
41
- - Refactor ``_format_defect_name `` to ``format_defect_name `` from `doped ` (now a public function)
63
+ - Refactor ``_format_defect_name `` to ``format_defect_name `` from `` doped ` ` (now a public function)
42
64
- Update ``snb-run `` to avoid possible 'file exists' warning
43
65
- Update tutorials/notebooks to specify ``vasp_nkred_std `` to streamline workflow
44
66
- Remove unnecessary ``tutorials `` folder with duplicate tutorial notebook (to reduce workload).
@@ -56,26 +78,26 @@ v3.3.1
56
78
v3.3.0
57
79
----------
58
80
- Add Dimer distortion as a targeted distortion for dimer reconstructions. It pushes two of the defect NN
59
- to a distance of 2 A .
60
- - Add option `distorted_atoms ` to the `Distortion ` class to allow users to specify the indexes of the
81
+ to a distance of 2 Å .
82
+ - Add option `` distorted_atoms `` to the `` Distortion ` ` class to allow users to specify the indexes of the
61
83
atoms to distort.
62
84
- Update tests to check the new functionality.
63
- - Update `get_homoionic_bonds ` to detect homoionic bonds between different cations/anions (rather than
85
+ - Update `` get_homoionic_bonds ` ` to detect homoionic bonds between different cations/anions (rather than
64
86
just bonds between the same element)
65
- - Fix issue with `snb-generate ` when no defect name was specified (by adding `unrelaxed=True ` when
66
- calling `get_defect_name_from_entry `)
67
- - Update functions that read `OUTCARs ` to be able to read `OUTCAR.gz ` files too
87
+ - Fix issue with `` snb-generate `` when no defect name was specified (by adding `` unrelaxed=True ` ` when
88
+ calling `` get_defect_name_from_entry ` `)
89
+ - Update functions that read `` OUTCARs `` to be able to read `` OUTCAR.gz ` ` files too
68
90
- Update energies parsing to still work when all distortions are high energy, but warn
69
- the user about this (i.e. only `Unperturbed `)
70
- - Update `snb-run ` to add early-on detection of distortions that are stuck in high energy basins and
91
+ the user about this (i.e. only `` Unperturbed ` `)
92
+ - Update `` snb-run ` ` to add early-on detection of distortions that are stuck in high energy basins and
71
93
rename them to "High_Energy" to avoid continuing their relaxation
72
94
- Miscellaneous efficiency improvements and bug fixes
73
95
74
96
v3.2.3
75
97
----------
76
- - Ensure the sorted `pymatgen ` ` Structure ` is created for the VASP input (fixes a rare bug in `v3.2.1 `
77
- and `v3.2.2 ` where for certain structures the order of elements in the POSCAR was not properly sorted,
78
- which is usually fine, but messed with the `ROPT ` ` INCAR ` setting).
98
+ - Ensure the sorted `` pymatgen `` `` Structure `` is created for the VASP input (fixes a rare bug in `` v3.2.1 ` `
99
+ and `` v3.2.2 ` ` where for certain structures the order of elements in the POSCAR was not properly sorted,
100
+ which is usually fine, but messed with the `` ROPT `` `` INCAR ` ` setting).
79
101
- Plotting format updates (make legend frame more transparent to make datapoints behind it easier to see).
80
102
- Update tests
81
103
- Update docs (note about handling AFM systems)
@@ -89,78 +111,78 @@ v3.2.2
89
111
v3.2.1
90
112
----------
91
113
- Update CLI config handling.
92
- - Remove `shakenbreak.vasp ` module and use `doped ` VASP file writing functions directly.
93
- - Add INCAR/KPOINTS/POTCAR file writing tests. `test_local.py ` now deleted as these tests are now
94
- automatically run in `test_input.py `/` test_cli.py ` if `POTCAR`s available.
114
+ - Remove `` shakenbreak.vasp `` module and use `` doped ` ` VASP file writing functions directly.
115
+ - Add INCAR/KPOINTS/POTCAR file writing tests. `` test_local.py ` ` now deleted as these tests are now
116
+ automatically run in `` test_input.py ``/`` test_cli.py `` if `` POTCAR `` \ s available.
95
117
96
118
v3.2.0
97
119
----------
98
- - Following the major release of `doped ` ` v2.0 `, now compatible with the new `pymatgen `
99
- defects code (`pymatgen>2022.7.25 `), this update:
100
- - Allows input of `doped ` ` DefectsGenerator ` object to `Distortions `
120
+ - Following the major release of `` doped `` `` v2.0 `` , now compatible with the new `` pymatgen ` `
121
+ defects code (`` pymatgen>2022.7.25 ` `), this update:
122
+ - Allows input of `` doped `` `` DefectsGenerator `` object to `` Distortions ` `
101
123
- Updates the tutorials to reflect the current recommended workflow of generating defects
102
- with `doped ` and then applying `ShakeNBreak `, no longer requiring separate virtual environments 🎉
124
+ with `` doped `` and then applying `` ShakeNBreak ` `, no longer requiring separate virtual environments 🎉
103
125
104
126
v3.1.0
105
127
----------
106
- - Update dependencies, as `hiphive=1.2 ` has been released, making `ShakeNBreak ` compatible with
107
- `python=3.11`🎉
128
+ - Update dependencies, as `` hiphive=1.2 `` has been released, making `` ShakeNBreak ` ` compatible with
129
+ `` python=3.11 `` 🎉
108
130
109
131
v3.0.0
110
132
----------
111
133
- Switch to semantic versioning
112
134
- Update rattling functions to handle primitive bulk materials as well as supercells.
113
- - Add check to `snb-run ` if there are multiple `OUTCAR`s present with one or less ionic steps, and if
135
+ - Add check to `` snb-run `` if there are multiple `` OUTCAR `` \ s present with one or less ionic steps, and if
114
136
this is also the case for the current run -> warn the user.
115
137
- Small fixes, formatting and docs updates.
116
138
117
139
v23.06.23
118
140
----------
119
- - Add `snb-mag ` function, and automatically check the magnetisation from `ISPIN = 2 ` ` OUTCAR ` files when continuing
120
- relaxations with `snb-run ` (and change to `ISPIN = 1 ` if magnetisation is negligible).
141
+ - Add `` snb-mag `` function, and automatically check the magnetisation from `` ISPIN = 2 `` `` OUTCAR ` ` files when continuing
142
+ relaxations with `` snb-run `` (and change to `` ISPIN = 1 ` ` if magnetisation is negligible).
121
143
- Update handling of minimum distances and oxidation states, to deal with single-atom primitive unit cells and
122
- systems where `pymatgen ` cannot guess the oxidation state (e.g. single-elements, intermetallics etc).
144
+ systems where `` pymatgen ` ` cannot guess the oxidation state (e.g. single-elements, intermetallics etc).
123
145
- Docs updates
124
146
125
147
v23.06.03
126
148
----------
127
- - Make parsing of `DefectEntry`s more robust.
128
- - Update dependencies (now supporting `python=3.10 ` due to `numba ` updates)
129
- - Refactor `CITATION.cff ` to `CITATIONS.md `
149
+ - Make parsing of `` DefectEntry `` \ s more robust.
150
+ - Update dependencies (now supporting `` python=3.10 `` due to `` numba ` ` updates)
151
+ - Refactor `` CITATION.cff `` to `` CITATIONS.md ` `
130
152
- Update docs, formatting and cleanup.
131
153
132
154
v23.04.27
133
155
----------
134
- - Update `numpy ` requirement to `numpy>=1.21.2 ` to fix `numpy.typing.NDArray ` import error.
156
+ - Update `` numpy `` requirement to `` numpy>=1.21.2 `` to fix `` numpy.typing.NDArray ` ` import error.
135
157
- Add News & Views free-to-read link to docs
136
158
137
159
v23.04.26
138
160
----------
139
- - Updates to `snb-run ` (copy `job ` from parent directory if present, switch to `ALGO = All ` if poor electronic convergence...)
140
- - Make `format_defect_name() ` more robust
141
- - Update docs and `README.md ` with published article links
161
+ - Updates to `` snb-run `` (copy `` job `` from parent directory if present, switch to `` ALGO = All ` ` if poor electronic convergence...)
162
+ - Make `` format_defect_name() ` ` more robust
163
+ - Update docs and `` README.md ` ` with published article links
142
164
- Formatting and cleanup
143
165
- Make oxidation state guessing more efficient (previously was causing bottleneck with large cells)
144
166
- Fix oxidation state guessing for rare elements
145
- - Add note to `Tips ` docs page about bulk phase transformation behaviour
146
- - Refactor to `json ` rather than `pickle `
167
+ - Add note to `` Tips ` ` docs page about bulk phase transformation behaviour
168
+ - Refactor to `` json `` rather than `` pickle ` `
147
169
148
170
v23.02.08
149
171
----------
150
- - Change `numpy ` version requirement in `docs/requirements.txt ` to `numpy>=1.21 ` to work with `numpy.typing.NDArray `.
172
+ - Change `` numpy `` version requirement in `` docs/requirements.txt `` to `` numpy>=1.21 `` to work with `` numpy.typing.NDArray ` `.
151
173
152
174
v23.02.02
153
175
----------
154
176
- Refactor Distortions() class to take in DefectEntry objects as input, rather than Defect objects, to be
155
- compatible with `pymatgen-analysis-defects `.
177
+ compatible with `` pymatgen-analysis-defects ` `.
156
178
- Fix ticks and ticklabels in plots
157
179
158
180
159
181
v23.01.25
160
182
--------
161
183
162
- - Specify `pandas ` version in requirements.txt to equal or higher than 1.1.0
163
- - Refactor `snb-regenerate ` to execute when no arguments are specified (rather than showing help message)
184
+ - Specify `` pandas ` ` version in requirements.txt to equal or higher than 1.1.0
185
+ - Refactor `` snb-regenerate ` ` to execute when no arguments are specified (rather than showing help message)
164
186
165
187
v23.01.7
166
188
--------
@@ -183,7 +205,6 @@ v22.12.1
183
205
v22.11.29
184
206
--------
185
207
186
- Main changes:
187
208
- Add example notebook showing how to generate interstitials and apply SnB to them.
188
209
- Fix typo in example notebook and docs.
189
210
- Add comment about font installation to Installation guide.
@@ -205,78 +226,66 @@ Docs tutorial update.
205
226
v22.11.17
206
227
--------
207
228
208
- Main changes:
209
-
210
- - Refactor :code: `Distortions() ` to a list or simple-format dict of :code: `Defect ` objects as input.
211
- Same for :code: `Distortions.from_structures() `
212
- - Update defect naming to :code: `{Defect.name}_s{Defect.defect_site_index} ` for vacancies/substitutions and
213
- :code: `{Defect.name}_m{Defect.multiplicity} ` for interstitials. Append "a", "b", "c" etc in cases of inequivalent
229
+ - Refactor ``Distortions() `` to a list or simple-format dict of ``Defect `` objects as input.
230
+ Same for ``Distortions.from_structures() ``
231
+ - Update defect naming to ``{Defect.name}_s{Defect.defect_site_index} `` for vacancies/substitutions and
232
+ ``{Defect.name}_m{Defect.multiplicity} `` for interstitials. Append "a", "b", "c" etc in cases of inequivalent
214
233
defects
215
- - Make :code: ` ShakeNBreak ` compatible with most recent :code: ` pymatgen ` and :code: ` pymatgen-analysis-defects ` packages.
234
+ - Make `` ShakeNBreak `` compatible with most recent `` pymatgen `` and `` pymatgen-analysis-defects ` ` packages.
216
235
- Update legend format in plots and site index/multiplicity labelling, make default format png.
217
- - Update default charge state setting to match :code: ` pymatgen-analysis-defects ` oxi state + padding approach.
236
+ - Update default charge state setting to match `` pymatgen-analysis-defects ` ` oxi state + padding approach.
218
237
- A lot of additional warning and error catches.
219
238
- Miscellaneous warnings and docs updates.
220
239
221
240
222
241
v22.11.7
223
242
--------
224
243
225
- Main changes:
226
-
227
- - Refactor ShakeNBreak to make it compatible with `pymatgen>=2022.8.23 `. Now `Distortions ` takes in
228
- `pymatgen.analysis.defects.core.Defect ` objects.
229
- - Add `Distortions.from_dict() ` and `Distortions.from_structures() ` to generate defect distortions from a
244
+ - Refactor ShakeNBreak to make it compatible with ``pymatgen>=2022.8.23 ``. Now ``Distortions `` takes in
245
+ ``pymatgen.analysis.defects.core.Defect `` objects.
246
+ - Add ``Distortions.from_dict() `` and ``Distortions.from_structures() `` to generate defect distortions from a
230
247
dictionary of defects (in doped format) or from a list of defect structures, respectively.
231
248
232
249
v22.11.1
233
250
--------
234
251
235
- Main changes:
236
-
237
- - Update rattling procedure; :code: `stdev ` be automatically set to 10% bulk bond length and :code: `seed ` alternated for different
252
+ - Update rattling procedure; ``stdev `` be automatically set to 10% bulk bond length and ``seed `` alternated for different
238
253
distortions (set to 100*distortion_factor) to avoid rare 'stuck rattle' occurrences.
239
- - Refactor :code: ` pickle ` usages to :code: ` JSON ` serialisation to be more robust to package (i.e. pymatgen) updates.
240
- - Update :code: ` snb-regenerate ` to be more robust, can be continually rerun without generating duplicate calculations.
241
- - Update :code: ` snb-run ` to consider calculations with >50 ionic steps and <2 meV energy change as converged.
254
+ - Refactor `` pickle `` usages to `` JSON ` ` serialisation to be more robust to package (i.e. pymatgen) updates.
255
+ - Update `` snb-regenerate ` ` to be more robust, can be continually rerun without generating duplicate calculations.
256
+ - Update `` snb-run ` ` to consider calculations with >50 ionic steps and <2 meV energy change as converged.
242
257
- Minor changes, efficiency improvements and bug fixes.
243
258
244
259
245
260
v22.10.14
246
261
--------
247
262
248
- Just bumping version number to test updated GH Actions pip-install-test workflow.
263
+ Just bumping version number to test updated GH Actions `` pip-install-test `` workflow.
249
264
250
265
v22.10.13
251
266
--------
252
267
253
- Main changes:
254
-
255
268
- Updated defect name handling to work for all conventions
256
- - More robust `snb-generate ` and plotting behaviour
269
+ - More robust `` snb-generate ` ` and plotting behaviour
257
270
- Add CLI summary GIF to docs and README
258
- - Updated `snb-run ` behaviour to catch high-energies and forces error to improve efficiency
271
+ - Updated `` snb-run ` ` behaviour to catch high-energies and forces error to improve efficiency
259
272
- Many miscellaneous tests and fixes
260
273
- Docs updates
261
274
262
275
v22.9.21
263
276
--------
264
277
265
- Main changes:
266
-
267
- - Fonts now included in `package_data ` so can be installed with `pip ` from `PyPI `
268
- - Refactoring `distortion_plots ` plot saving to saving to defect directories, and preventing overwriting of previous plots
278
+ - Fonts now included in ``package_data `` so can be installed with ``pip `` from ``PyPI ``
279
+ - Refactoring ``distortion_plots `` plot saving to saving to defect directories, and preventing overwriting of previous plots
269
280
- Miscellaneous tests and fixes
270
281
- Add summary GIF to docs and README
271
282
- Handling for partial oxidation state input
272
- - Setting `EDIFFG = -0.01 ` and `local_rattle = False ` as default
283
+ - Setting `` EDIFFG = -0.01 `` and `` local_rattle = False ` ` as default
273
284
274
285
275
286
v22.9.2
276
287
--------
277
288
278
- Main changes:
279
-
280
289
- Update CLI commands (snb-parse, analyse, plot and groundstate can all now be run with no arguments within a defect folder)
281
290
- Update custom font
282
291
- Update groundstate() tests
@@ -286,8 +295,6 @@ Main changes:
286
295
v22.9.1
287
296
--------
288
297
289
- Main changes:
290
-
291
298
- Test for pip install
292
299
- Automatic release and upload to pypi
293
300
- Add ShakeNBreak custom font, and automatise its installation
@@ -297,8 +304,6 @@ Main changes:
297
304
v1.0.1
298
305
------
299
306
300
- Main changes:
301
-
302
307
- Docs formatting
303
308
- Update pymatgen version to v2022.7.25, while refactoring to be compatible with v2022.8.23 takes place.
304
309
0 commit comments