I think orix would benefit from some stricter terminology constraints in the Symmetry module.
In #563 , we are talking about adding a PointGroups class which is a collection of Symmetry lists, but Symmetry has a docstring that starts with:
The set of rotations comprising a point group.
similarly, osm.get_point_group returns a Symmetry object, which is confusing if we add a PointGroups class.
In my mind, Symmetry is just the concept of rotational and/or mirror operations, so for example a five-fold symmetry is allowed. A Point Group is a more specific term, referring just to symmetries possible in a crystal. This distinction is small peanuts now, but important if we start talking about Specimen symmetry in the future (which we should).
One possible implementation is:
class PointGroup(Symmetry)
--> just symmetry, but with Schoenflies names and required to be crystallographicall possible.
class PointGroupList(PointGroup)
--> mimics the concept of PhaseList. Includes functions to return interesting lists described in #563, like:
- proper
- laue
- proper_permutations
I think orix would benefit from some stricter terminology constraints in the
Symmetrymodule.In #563 , we are talking about adding a
PointGroupsclass which is a collection ofSymmetrylists, butSymmetryhas a docstring that starts with:similarly,
osm.get_point_groupreturns aSymmetryobject, which is confusing if we add aPointGroupsclass.In my mind,
Symmetryis just the concept of rotational and/or mirror operations, so for example a five-fold symmetry is allowed. APoint Groupis a more specific term, referring just to symmetries possible in a crystal. This distinction is small peanuts now, but important if we start talking about Specimen symmetry in the future (which we should).One possible implementation is: