Implementation of MatID structurecluster class in Normalizier
The current structure normalizer, which classifies the structure e.g. in surface, volume, 1D, 2D, should be extended by the MatID structurecluster class. To avoid false positives and false negatives, a decision tree is integrated.
-
Add a git submodule for the MatID development version that has the new StructureClusterer
class. -
Add the new Topology
metainfo from the MD branch. This is liable to change in the future, but it's easy to adapt afterward (atomutils.py, normalizing/material.py, datamodel/results.py). -
Add the GUI updates for visualizing topologies from the MD branch (archive.js, Quantity.js, Structure.js, BrillouinZone.js, Overview.js, MaterialCardTopology.js) -
Modify nomad/normalizing/material.py to include a new function that adds the new topological (=hierarchy of identified subsystems) data into results.material.topology. For an easy start, we can simply: - Run this clusterer only after we see that the
results.material.structure_type == unavailable
. - Concentrate on a very simple case first, e.g. getting reasonable results for systems that comprise of several stacked surfaces (=heterostructures) or adsorbtion systems.
- Run this clusterer only after we see that the
-
Add unit test for the surface examples (6?): - Test that correct elements and number of elements are present
- Test that topology contains only surfaces (molecules/outliers should not be stored in the topology for now.
- Test that the cluster indices match up to some percentage (90?)
- Test that
structural_type = surface
Edited by Thea Denell