Add support for identifying conventional cell from surfaces
Each cluster (matid.classification.structureclusterer.Cluster
) given by StructureClusterer
also contains a list of the regions it has detected (stored in cluster.regions
). This contains a list of LinkedUnitCollections
(matid.core.linkedunits.LinkedUnitCollection
), which each contain the unit cell from which the region is built from (stored in LinkedUnitCollection.cell
). We want to analyze this cell and get the conventional cell that corresponds to it. The conventional cell then contains e.g. the symmetry information + can be used to construct the material_id that links the surface into the bulk material from which it is constructed from.
The following steps are needed to add this information into the topology:
-
Extract the biggest region from each cluster that corresponds to a Surface, and get the cell for that region. This will be an ASE.Atoms object that we can analyze further. -
Each surface within the topology should get a child subsystem for the conventional cell]. Create a new nomad.datamodel.results.System
for the conventional system, add it to the topology list and connect the surface to it (surface=parent, conventional cell=child). -
Use matid.symmetry.symmetryanalyzer.SymmetryAnalyzer
to get the symmetry information for the conventional cell. You can see an example of this innomad/normalizing/system.py
. Fill the symmetry subsection (results.material.topology.symmetry) of theSystem
corresponding to the conventional cell with this information. -
Refactor code and cleanup -
Add material ID for conventional system (see example in normalizing/material.py -> material_id_bulk) -
Add the possibility of storing a structure directly into topology. This would be required in order to show the conventional cell that is extracted from e.g. a surface (Lauri) -
Make material_id into a <MaterialLink>
(Lauri) -
Add GUI tests for (Lauri) -
If structural_type cannot be determined, it should be set as unavailable
. in the GUI. (Lauri) -
Extend the unit tests from issue #855 (closed) to also test that the correct symmetry information is found.