nomad-coe / nomad

NOMAD lets you manage and share your materials science data in a way that makes it truly useful to you, your group, and the community.
https://nomad-lab.eu
Apache License 2.0
64 stars 14 forks source link

system_type normalizer fails to detect some surfaces #8

Closed ondracka closed 3 years ago

ondracka commented 3 years ago

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.

ondracka commented 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...

markus1978 commented 3 years ago

@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?

lauri-codes commented 3 years ago

Hi @ondracka! I'll try to break this down a bit:

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.

ondracka commented 3 years ago

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.