Problem
Several postprocessing functions (e.g. elastic_tensor) need to redetermine crystal symmetries for a modified lattice. Currently this requires passing magnetic_moments because the Model does not remember the symmetry group information needed to reproduce its symmetry operations.
This is awkward and error-prone, as discussed in #1172.
Proposed solution
Store symmetry group metadata (e.g. the spglib integer ID or pointgroup_symbol) in the Model so that symmetry-related queries can be made without re-supplying magnetic_moments. This should also be useful for band structures and other contexts where the same problem arises.
Relevant discussion: #1172 (comment)
Related: symmetry_from_database already supports integer group IDs, and Brillouin is compatible with this approach (unlike the string-based pointgroup_symbol).
Problem
Several postprocessing functions (e.g.
elastic_tensor) need to redetermine crystal symmetries for a modified lattice. Currently this requires passingmagnetic_momentsbecause theModeldoes not remember the symmetry group information needed to reproduce its symmetry operations.This is awkward and error-prone, as discussed in #1172.
Proposed solution
Store symmetry group metadata (e.g. the spglib integer ID or
pointgroup_symbol) in theModelso that symmetry-related queries can be made without re-supplyingmagnetic_moments. This should also be useful for band structures and other contexts where the same problem arises.Relevant discussion: #1172 (comment)
Related:
symmetry_from_databasealready supports integer group IDs, and Brillouin is compatible with this approach (unlike the string-basedpointgroup_symbol).