httk.atomistic.symmetry.subgroups¶
Graph queries and exact transformations for Bärnighausen subgroup trees.
The vendored tables contain maximal subgroup relations and their standard-setting transformations for all 230 space-group types. Only those one-hop relations are tabulated; closures and the inverted supergroup graph are derived here.
The split-affine convention pinned by tests/test_subgroups.py is that a
WyckoffSplitPiece operation maps a parent standard-setting coordinate directly
to a child standard-setting coordinate. The tabulated
SubgroupTransform operation has matrix M with the child basis on the
left: B_child = M.T() * B_parent. At the affine-coordinate level it maps child
coordinates into parent coordinates, f_parent = f_child * M.T() + v; its inverse
matrix is the coordinate basis change used by the split operations (up to their listed
origin translations).
Classes¶
Store an exact asymmetric-unit representation in a subgroup. |
|
One child Wyckoff piece in a maximal subgroup transformation. |
|
One exact standard-setting transformation in a maximal subgroup table entry. |
Functions¶
|
Return the distinct tabulated maximal-subgroup IT numbers. |
|
Return the distinct tabulated minimal-supergroup IT numbers. |
|
Return the graph-derived transitive subgroup closure. |
|
Return the graph-derived transitive supergroup closure. |
|
Return every tabulated transform for one parent/target pair. |
Module Contents¶
- class httk.atomistic.symmetry.subgroups.SubgroupRepresentationResult[source]¶
Store an exact asymmetric-unit representation in a subgroup.
- Parameters:
asu – The subgroup-standard-setting asymmetric unit with identity transform.
spacegroup – The subgroup space group in its standard setting.
path – The selected maximal-subgroup transforms, in parent-first order.
multiplier – The exact child-to-parent cell-content ratio.
- path: tuple[SubgroupTransform, Ellipsis][source]¶
- multiplier: fractions.Fraction[source]¶
- class httk.atomistic.symmetry.subgroups.WyckoffSplitPiece[source]¶
One child Wyckoff piece in a maximal subgroup transformation.
- Parameters:
letter – The child-setting Wyckoff letter as tabulated.
xyz – The tabulated coordinate expression, for display and provenance.
operation – The exact affine map from a parent standard-setting coordinate directly to a child standard-setting coordinate.
- class httk.atomistic.symmetry.subgroups.SubgroupTransform[source]¶
One exact standard-setting transformation in a maximal subgroup table entry.
- Parameters:
parent – The parent space group in its IT standard setting.
subgroup – The subgroup in its IT standard setting.
index – The tabulated subgroup index
[G:H].subgroup_type – The tabulated relation type,
"t"or"k".k_subtype – The tabulated
ksubtype, orNonefor atrelation.operation – The exact tabulated affine basis change from child to parent coordinates. If its matrix is
Mand vector isv, it evaluates asf_parent = f_child * M.T() + v; the child basis isM.T() * parent_basis.splittings – An immutable mapping from parent Wyckoff letters to child pieces.
- splittings: collections.abc.Mapping[str, tuple[WyckoffSplitPiece, Ellipsis]][source]¶
- httk.atomistic.symmetry.subgroups.maximal_subgroups(spacegroup)[source]¶
Return the distinct tabulated maximal-subgroup IT numbers.
Self-referencing isomorphic entries are excluded from graph navigation.
- Parameters:
spacegroup (httk.atomistic.symmetry.spacegroup.Spacegroup | int) – A space group or IT number identifying the parent.
- Returns:
Sorted unique target IT numbers, excluding
spacegroupitself.- Raises:
KeyError – If the IT number has no vendored subgroup record.
- Return type:
- httk.atomistic.symmetry.subgroups.minimal_supergroups(spacegroup)[source]¶
Return the distinct tabulated minimal-supergroup IT numbers.
Self-referencing isomorphic entries are excluded from graph navigation.
- Parameters:
spacegroup (httk.atomistic.symmetry.spacegroup.Spacegroup | int) – A space group or IT number identifying the subgroup.
- Returns:
Sorted unique parent IT numbers, excluding
spacegroupitself.- Raises:
KeyError – If the IT number has no vendored subgroup record.
- Return type:
- httk.atomistic.symmetry.subgroups.subgroup_closure(spacegroup, *, include_self=False)[source]¶
Return the graph-derived transitive subgroup closure.
- Parameters:
spacegroup (httk.atomistic.symmetry.spacegroup.Spacegroup | int) – A space group or IT number identifying the parent.
include_self (bool) – Include the root IT number in the result.
- Returns:
Sorted reachable subgroup IT numbers.
- Raises:
KeyError – If the IT number has no vendored subgroup record.
- Return type:
- httk.atomistic.symmetry.subgroups.supergroup_closure(spacegroup, *, include_self=False)[source]¶
Return the graph-derived transitive supergroup closure.
- Parameters:
spacegroup (httk.atomistic.symmetry.spacegroup.Spacegroup | int) – A space group or IT number identifying the subgroup.
include_self (bool) – Include the root IT number in the result.
- Returns:
Sorted reachable supergroup IT numbers.
- Raises:
KeyError – If the IT number has no vendored subgroup record.
- Return type:
- httk.atomistic.symmetry.subgroups.subgroup_transforms(parent, subgroup)[source]¶
Return every tabulated transform for one parent/target pair.
Results retain table order, including self-targeted isomorphic entries. The returned tuple is empty when the pair has no tabulated relation.
- Parameters:
parent (httk.atomistic.symmetry.spacegroup.Spacegroup | int) – The parent space group or IT number.
subgroup (httk.atomistic.symmetry.spacegroup.Spacegroup | int) – The subgroup space group or IT number.
- Returns:
All exact standard-setting transformations for the pair.
- Raises:
KeyError – If either IT number has no vendored subgroup record.
- Return type:
tuple[SubgroupTransform, Ellipsis]