Improved system_type detection

Lauri Himanen requested to merge surfaces into v0.7.3

As per issue #257 (closed) I updated the system type detection to use the classifier implementation provided by MatID. It supports also a distinction between surfaces and 2D materials that cannot be made with just the periodicity check. I have included a simple test case for all the supported types.

The change effectively splits the system type "surface / 2D" into "surface" and "2D". This change is only tested at the normalization level, the changes in the GUI have not been checked.

The old system detection code was also using the periodic dimensions as a backup if the dimensionality check failed. This is now removed because the periodic dimensions do not reveal the correct system type (for computational reasons pretty much all calculations are made with fully periodic simulation cell. In reality the simulated system can however be isolated from periodic copies by vacuum). Thus if the system_check fails, the value is left as unavailable.

Edited by Lauri Himanen

Merge request reports