Closed ondracka closed 3 years ago
This is likely not an nomad issue but rather MatID related. It detects "Class2D", maybe because it is a glass, i.e., the cell from which the surface model was created has no symmetry (and the surface itself is not a supercell, but more or less just a bulk glass model with vacuum)?
I will probably just add locally:
elif classification == Class2D:
system_type = 'surface'
to the normalizer for my Oasis, as I'm not sure if this is a bug somewhere or not (and I have a lot of cases like this around). Feel free to close.
Interestingly enough though some other glass surface models are detected as surface. Here is the OUTCAR of one other glass surface cell detected as surface: OUTCAR2.zip
If you think this should be discussed at MatID please let me know...
@lauri-codes can you comment on this and assess if this is a bug, if an enhancement is necessary, or that we can't do much?
Hi @ondracka! I'll try to break this down a bit:
Class2D
is any two-dimensional material (has a vacuum gap in one direction).Surface
is a two-dimensional material from which the software can successfully identify a unit cell that repeats at least two times in the non-periodic dimension. A certain degree of imperfections both in the position of atoms and in the presence of vacancies/interstitionals is allowed. Surface
is a subclass of Class2D
.Class2D
because no repeating unit cell could be identified. OUTCAR2.zip is identified as Surface
, because a repeating unit cell is identified (default MatID settings used by NOMAD are pretty lenient, e.g. allowing 50% of the atoms to be interstitials or other type of additional atoms). If I decrease the allowed percentage to 45% (see min_coverage
in MatID), OUTCAR2.zip becomes Class2D
as well.Class2D
is mapped as system=unavailable
. This is because we cannot really specify well enough what the system most probably is, unlike in the case of Surface
(which is mapped to system=surface
) and Material2D
(which is mapped to system=2D
. Class2D
could be an amorphous two-dimensional material, a two-dimensional material with a big adsorbate on top, a heterostructure, etc.I don't think that in the central NOMAD we would want to map all Class2D
into system=surface
, since we would lose the specificity that we currently have. If we wanted to make a simple improvement, we could say that all Class2D
which are not Surface
or Material2D
would be mapped to a new classification. But I have no idea what to call it without causing more confusion...
As what comes to OUTCAR2 being detected as a Surface
: We could in principle decrease the allowed percentage of non-surface atoms in the NOMAD setup. The only problem is that then surfaces with adsorbates may get incorrectly treated: thin slab having a big adsorbate molecule may get tagged as system=unavailable
instead of system=surface
.
OK, thanks for the explanation, I guess is might be quite easy to make some customization for our Oasis now when I understand the MatId scheme a bit.
I'm not sure if this is the correct place to report. I believe the issue is with the normalizer which is not here on github (and I don't have nomad gitlab account).
The attached OUTCAR is a metalic glass surface slab which fails to be detected as a system_type = surface OUTCAR.zip Please note that normalize - system_classification_with_clusters_threshold needs to be increased from the default settings (64 atoms), otherwise this system is too big and the system_type normalizer is skipped.
Nothing interesting is printed in the logs as far as I can see, i.e., no warnings or errors and the structure itself is parsed correctly AFAICS.