Skip to content

Add missing point groups#647

Open
argerlt wants to merge 6 commits into
pyxem:developfrom
argerlt:Add_missing_point_groups
Open

Add missing point groups#647
argerlt wants to merge 6 commits into
pyxem:developfrom
argerlt:Add_missing_point_groups

Conversation

@argerlt
Copy link
Copy Markdown
Collaborator

@argerlt argerlt commented Apr 10, 2026

Breaking out this part of #563 into it's own PR.

Description of the change

This adds all the missing default point group symmetries to the symmetry module, and creates a dictionary of important sets of point groups. This also means replacing symmetry._groups and symmetry._proper_groups with (depending on the application) symmetry._symm_lists['permutations'], symmetry._symm_lists['groups'], or symmetry._symm_lists['proper_groups'] where appropriate. These are all private changes, and shouldn't affect any public-facing performance.

At one point last year a variation of this done in #563, and the suggestion was made that instead of dictionaries of lists of groups, we should just have a PointGroups class. I still agree with that idea, this seperate sub-issue is just about adding the private variables with the correct lists and names, so that #563 doesn't need to be a 1800+ line PR.

Progress of the PR

Minimal example of the bug fix or new feature

import orix.quaternion.symmetry as osm

# all 32 standard point groups, equivalent to the old `_groups` list
osm._point_groups_dictionary['groups']

# all  11 standard proper point groups, equivalent to the old `_proper_groups` list
osm._point_groups_dictionary['proper_groups']

# all  11 laue groups, equivalent to 'proper_groups' but with the inversions added
osm._point_groups_dictionary['laue']

# all 37 non-standard point groups necessary to build the 32 standard ones.
# ie, this includes things like C2y and Csx 
osm._point_groups_dictionary['proper_groups']

# all the other entries also discussed over the course of #563, including the lists above
# but with the redundant symmetries added, like S2 == Ci
osm._point_groups_dictionary.keys()

For reviewers

  • The PR title is short, concise, and will make sense 1 year later.
  • New functions are imported in corresponding __init__.py.
  • New features, API changes, and deprecations are mentioned in the unreleased
    section in CHANGELOG.rst.
  • Contributor(s) are listed correctly in __credits__ in orix/__init__.py and in
    .zenodo.json.

@argerlt
Copy link
Copy Markdown
Collaborator Author

argerlt commented Apr 10, 2026

pre-commit.ci autofix

@argerlt argerlt mentioned this pull request Apr 11, 2026
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant