|
38 | 38 |
|
39 | 39 | - Docs: |
40 | 40 | - Barebones tutorial workflow, as suggested by Alex G. |
41 | | - - Add note about `NUPDOWN` for triplet states (bipolarons or dimers (e.g. C-C in Si apparently has ~0.5 eV energy splitting (10.1038/s41467-023-36090-2), and 0.4 eV for O-O in STO from Kanta, but smaller for VCd bipolaron in CdTe))). |
42 | 41 | - Add our recommended workflow (gam, NKRED, std, ncl). See https://sites.tufts.edu/andrewrosen/density-functional-theory/vasp/ for some possibly useful general tips. |
43 | 42 | - Workflow diagram with: https://twitter.com/Andrew_S_Rosen/status/1678115044348039168?s=20 |
44 | 43 | - Show on chemical potentials docs how chempots can be later set as attribute for ``DefectThermodynamics`` (loaded from `json`) (e.g. if user had finished and parsed defect calculations first, and then finished chemical potential calculations after). |
45 | 44 | - Example on docs (miscellaneous/advanced analysis tutorial page?) for adding entries / combining multiple ``DefectThermodynamics`` objects |
46 | | - - Note that bandfilling corrections are no longer supported, as in most cases they shouldn't be used anyway, and if you have band occupation in your supercell then the energies aren't accurate anyway as it's a resonant/shallow defect, and this is just lowering the energy so it sits near the band edge (leads to false charge state behaviour being a bit more common etc). If the user wants to add bandfilling corrections, they can still doing this by calculating it themselves and adding to the `corrections` attribute. (Link our code in old `pymatgen` for doing this) |
47 | 45 | - Regarding competing phases with many low-energy polymorphs from the Materials Project; will build |
48 | 46 | in a warning when many entries for the same composition, say which have database IDs, warn the user |
49 | 47 | and direct to relevant section on the docs -> Give some general foolproof advice for how best to deal |
50 | 48 | with these cases (i.e. check the ICSD and online for which is actually the groundstate structure, |
51 | 49 | and/or if it's known from other work for your chosen functional etc.) |
52 | | - - Show our workflow for calculating interstitials (see docs Tips page, i.e. `vasp_gam` relaxations first (can point to defects tutorial for this)) -> Need to mention this in the defects tutorial, and point to discussion in Tips docs page. |
53 | 50 | - `vasp_ncl` chemical potential calculations for metals, use `ISMEAR = -5`, possibly `NKRED` etc. (make a function to generate `vasp_ncl` calculation files with `ISMEAR = -5`, with option to set different kpoints) - if `ISMEAR = 0` - converged kpoints still prohibitively large, use vasp_converge_files again to check for quicker convergence with ISMEAR = -5. |
| 51 | + - Worth noting that for metals it may sometimes be preferable to use a larger cell with reduced kpoints, due to memory limitations. |
54 | 52 | - Often can't use `NKRED` with `vasp_std`, because we don't know beforehand the kpts in the IBZ (because symmetry on for `vasp_std` chempot calcs)(same goes for `EVENONLY = True`). |
55 | | - - Worth noting that for metals it may sometimes be preferable to use a larger cell with reduced kpoints, due to memory limitations. |
56 | 53 | - Readily-usable in conjunction with `atomate`, `AiiDA`(-defects), `vise`, `CarrierCapture`, and give some |
57 | 54 | quick examples? Add as optional dependencies. |
58 | 55 | - Setting `LREAL = Auto` can sometimes be worth doing if you have a very large supercell for speed up, _but_ it's important to do a final calculation with `LREAL = False` for accurate energies/forces, so only do if you're a power user and have a very large supercell. |
59 | 56 | - Show usage of `get_conv_cell_site` in notebooks/docs (in an advanced analysis tutorial with other possibly useful functions being showcased?) |
60 | | - - Note in docs that `spglib` convention used for Wyckoff labels and conventional structure definition. |
61 | | - Primitive structure can change, as can supercell / supercell matrix (depending on input structure, |
62 | | - `generate_supercell` etc), but conventional cell should always be the same (`spglib` convention). |
63 | | - - Add examples of extending to |
64 | | - non-radiative carrier capture calcs with `CarrierCapture.jl` and `nonrad`. Show example of using |
65 | | - `sumo` to get the DOS plot of a defect calc, and why this is useful. |
66 | | - - |
67 | | - - Should have recommendation somewhere about open science practices. The doped defect dict and thermo jsons should always be shared in e.g. Zenodo when publishing, as contains all info on the parsed defect data in a lean format. Also using the `get_formation_energies` etc. functions for SI tables is recommended. |
68 | | - - |
69 | | - - |
70 | 57 | - Add our general rule-of-thumbs/expectations regarding charge corrections: |
71 | 58 | - Potential alignment terms should rarely ever be massive |
72 | 59 | - In general, the correction terms should follow somewhat consistent trends (for a given charge state, across defects), so if you see a large outlier in the corrections, it's implying something odd is happening there. This is can be fairly easily scanned with `get_formation_energies`. |
|
77 | 64 | oxidation states and can fail in weird cases. As always please consider if these charge states are |
78 | 65 | reasonable for the defects in your system. (i.e. low-symmetry, amphoteric, mixed-valence cases etc!) |
79 | 66 | - Note cases where we expect default charge states to not be appropriate (e.g. mixed ionic-covalent systems, low-symmetry systems and/or with amphoteric species), often better to test more than necessary to be thorough! (And link Xinwei stuff, Ke F_i +1 (also found with our Se and Alex's Ba2BiO6)) – i.e. |
80 | | - use your f*cking head! |
| 67 | + use your head! |
81 | 68 | - And particularly when you've calculated your initial set of defect results! E.g. with Sb2Se3, all antisites and interstitials amphoteric, so suggests you should re-check amphotericity for all vacancies |
82 | 69 | - Note about rare cases where `vasp_gam` pre-relaxation can fail (e.g. Wenzhen's case); extremely disperse bands with small bandgaps, where low k-point sampling can induce a phase transition in the bulk structure. In these cases, using a special k-point is advised for the pre-relaxations. You can get the corresponding k-point for your supercell (given the primitive cell special k-point) using the `get_K_from_k` function from `easyunfold`, with the `doped` `supercell_matrix`. |
83 | 70 | - Show quick example case of the IPR code from `pymatgen-analysis-defects` (or from Adair code? or others?) |
|
91 | 78 | - `doped` repo/docs cleanup `TODO`s above, and check through code TODOs |
92 | 79 | - Should have a general refactor from `(bulk, defect)` to `(defect, bulk)` in inputs to functions (e.g. site-matching, symmetry functions etc), as this is most intuitive and then keep consistent throughout? |
93 | 80 | - Configuration coordinate diagram generation tutorial, linked in other tutorials and codes (CarrierCapture.jl). For defect PESs for carrier capture or NEB calculations (don't use `IBRION = 2` for NEB), and tests. |
| 81 | + - Tests for configuration coordinate diagram generation code |
94 | 82 | - Stenciling tutorial and tests. |
95 | | -- Tests for configuration coordinate diagram generation code |
96 | 83 | - Quick-start tutorial suggested by Alex G |
97 | 84 | - Add example to chemical potentials / thermodynamics analysis tutorials of varying chemical potentials as a function of temperature/pressure (i.e. gas phases), using the `Spinney` functions detailed here (https://spinney.readthedocs.io/en/latest/tutorial/chemipots.html#including-temperature-and-pressure-effects-through-the-gas-phase-chemical-potentials) or possibly `DefAP` functions otherwise. Xinwei Sb2S3 stuff possibly a decent example for this, see our notebooks. |
98 | 85 | - Deal with cases where "X-rich"/"X-poor" corresponds to more than one limit (pick one and warn user?)(e.g. Wenzhen Si2Sb2Te6). Can see `get_chempots` in `pmg-analysis-defects` for inspo on this. |
99 | | -- Automatically detect dimers, check the magnetisation from the calcs, and then warn the user that they may want to try NUPDOWN = 2 (if the magnetisation was singlet)? Do in `DefectsParser` at the end (as part of a 'final-checks' function), so can loop through and check if dimer with magnetisation was calculated at some point for that defect state. |
0 commit comments