-
Notifications
You must be signed in to change notification settings - Fork 47
Split vacancies benchmark #437
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
ThomasWarford
wants to merge
48
commits into
ddmms:main
Choose a base branch
from
ThomasWarford:split_vacancies_benchmark
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
48 commits
Select commit
Hold shift + click to select a range
3b0f613
WIP calculations
ThomasWarford 3c890aa
bugfixes
ThomasWarford 4e3d27c
float32 to float64
ThomasWarford ac29957
very WIP
ThomasWarford 358b32b
passed, still many TODOs
ThomasWarford 819918b
rename
ThomasWarford b1f9098
remove sv_from_nv_xyz_path for simplicity
ThomasWarford ef2ddbc
Working app
ThomasWarford c1684d2
update metric names
ThomasWarford 8b0f0f4
copy reference structures
ThomasWarford 8dd25b8
add rmsd
ThomasWarford a784828
tidy
ThomasWarford f489af9
split by functional
ThomasWarford fb72af9
slow
ThomasWarford 172c814
calculate rmsd (expensive) in calculate stage
ThomasWarford 2a84003
fix some bugs
ThomasWarford 0eb4a5e
clean
ThomasWarford 32d2575
structure matching
ThomasWarford 1d0ddd9
update description
ThomasWarford 76c55d4
remove structure match metric (always 1)
ThomasWarford a65e1e8
merge models.yml
ThomasWarford 1281163
Merge remote-tracking branch 'upstream/main' into split_vacancies_ben…
ThomasWarford 8c15bfb
finish merge?
ThomasWarford c8efbdf
violin plots
ThomasWarford fdef912
fix structure matching
ThomasWarford a3eed45
formatting + conventions
ThomasWarford 3c28d96
remove unneeded progress bar
ThomasWarford 87c5bf6
click violin structure to view
ThomasWarford 07420da
move code to split vacancy app
ThomasWarford d2ac308
polish + docs
ThomasWarford 15ef457
remove todos
ThomasWarford 919f477
doc clarifications
ThomasWarford afb4d1c
Create defects category
ThomasWarford ad52779
Create defects category
ThomasWarford ff3dc29
Move matching criteria (max_dist<STOL) to analysis
ThomasWarford a405f5f
improve split vacancy description
ThomasWarford 29696f7
not sure why fast forward didnt work
ThomasWarford ef03c40
NaN handling
ThomasWarford 0b7f942
more robust structure matching
ThomasWarford 7795251
matching description
ThomasWarford 900005d
show info for selected structure
ThomasWarford 231a16f
Merge remote-tracking branch 'upstream/main' into split_vacancies_ben…
ThomasWarford 32ac38b
warning for unmatched structures
ThomasWarford 980a01c
track convergence of relaxations
ThomasWarford 9aff18e
pbesol/pbe -> oxide/nitride
ThomasWarford eaad363
Restore accidentally removed .github files and revert models.yml changes
ThomasWarford f0d6c80
Merge branch 'main' into split_vacancies_benchmark
ThomasWarford f646f79
remove unused import, end of line change
ThomasWarford File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,87 @@ | ||
| ======= | ||
| Defects | ||
| ======= | ||
|
|
||
| Split vacancy | ||
| ============= | ||
|
|
||
| Summary | ||
| ------- | ||
|
|
||
| Performance predicting split vacancy formation energies and relaxed structures for | ||
| metal oxides (PBEsol, 531 host compounds, 722 material-cation pairs, 2154 structures) | ||
| and stable nitrides (PBE, 144 host compounds, 149 material-cation pairs, 285 structures). | ||
|
|
||
| A split vacancy is a stoichiometry-conserving defect complex in which an isolated atomic | ||
| vacancy reconstructs into two vacancies and an interstitial | ||
| (:math:`V_X \to [V_X + X_i + V_X]`), often with a dramatic energy lowering. | ||
|
|
||
| Data from Seán Kavanagh, *Identifying split vacancy defects with machine-learned foundation models and electrostatics*, | ||
| `https://doi.org/10.1088/2515-7655/ade916 <https://doi.org/10.1088/2515-7655/ade916>`_ | ||
|
|
||
|
|
||
| Metrics | ||
| ------- | ||
|
|
||
| 1. MAE (formation energy) | ||
|
|
||
| Mean absolute error of the split vacancy formation energy, defined as the energy | ||
| difference between the lowest-energy relaxed split vacancy (SV) and normal vacancy (NV) | ||
| structures: | ||
|
|
||
| .. math:: | ||
|
|
||
| E_\text{form} = \min_i E^\text{SV}_i - \min_j E^\text{NV}_j | ||
|
|
||
| where the minima are taken over all initial structures that match the DFT reference | ||
| (see metric 3) for a given material-cation pair. | ||
|
|
||
| 2. Spearman's rank correlation | ||
|
|
||
| `Spearman's rank correlation coefficient <https://en.wikipedia.org/wiki/Spearman%27s_rank_correlation_coefficient>`_ | ||
| between MLIP and DFT total energies, evaluated as single points on DFT-relaxed NV and | ||
| SV structures. A perfect ranking gives a coefficient of 1. The mean across all | ||
| material-cation pairs is reported. | ||
|
|
||
| 3. Match Rate | ||
|
|
||
| Fraction of MLIP-relaxed structures that converge to the same geometry as the | ||
| DFT-relaxed reference, determined using the pymatgen | ||
| `StructureMatcher <https://pymatgen.org/pymatgen.analysis.html#module-pymatgen.analysis.structure_matcher>`_. | ||
| The match criterion is a normalised maximum atomic displacement below 0.3 (see | ||
| metric 4). | ||
|
|
||
| 4. Max Dist | ||
|
|
||
| Maximum atomic displacement between the MLIP-relaxed and DFT-relaxed matched | ||
| structures, normalised by :math:`(V/N)^{1/3}` (wher :math:`V` is the cell volume and | ||
| :math:`N` the number of atoms) to give a unitless quantity comparable across | ||
| different crystal structures. Only computed for structure pairs that pass the | ||
| StructureMatcher test. The match criterion itself is a normalised max dist below 0.3. | ||
|
|
||
|
|
||
| Computational cost | ||
| ------------------ | ||
|
|
||
| Relatively slow: relaxations involve large defect supercells (50–500 atoms) and | ||
| multiple initial structures per material-cation pair. | ||
|
|
||
|
|
||
| Data availability | ||
| ----------------- | ||
|
|
||
| Input structures: | ||
|
|
||
| * Generated using the `doped <https://github.com/SMTG-Bham/doped>`_ supercell | ||
| algorithm. For oxides, supercell parameters are consistent with those of | ||
| Kumagai et al. (using the ``vise`` package). Supercells satisfy a minimum image | ||
| distance of 10 Å and a minimum of 50 atoms. | ||
|
|
||
| Reference data: | ||
|
|
||
| * See: Seán Kavanagh, *Identifying split vacancy defects with machine-learned foundation models and electrostatics*, | ||
| `https://doi.org/10.1088/2515-7655/ade916 <https://doi.org/10.1088/2515-7655/ade916>`_ | ||
| * All DFT calculations performed with VASP using PAW pseudopotentials. Oxides: | ||
| PBEsol functional, 400 eV plane-wave cutoff, Γ-point sampling, 0.01 eV Å⁻¹ | ||
| force convergence. Nitrides: PBE functional with MPRelaxSet parameters, | ||
| 520 eV plane-wave cutoff. See paper for full details. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -12,6 +12,7 @@ Benchmarks | |
| molecular_crystal | ||
| molecular | ||
| bulk_crystal | ||
| defects | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. See above |
||
| lanthanides | ||
| non_covalent_interactions | ||
| tm_complexes | ||
|
|
||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is (now) a merged
defect.rstfile, so can you combine these two?