volumential.list1_symmetry#
Symmetry bookkeeping for the list 1 interaction gallery.
This module owns the description of the discrete symmetries a near-field interaction table may exploit (axis flips and axis swaps), and the reduction of a set of case vectors to the subset of symmetry representatives together with each representative’s invariant group.
- class volumential.list1_symmetry.SymmetryOperationBase(index)[source]#
Bases:
objectBase class for the symmetry operations a case vector may admit.
- class volumential.list1_symmetry.Flip(iaxis: int)[source]#
Bases:
SymmetryOperationBaseFlip the sign of an axis, spanning S_2^dim
- class volumential.list1_symmetry.Swap(iaxis: int, jaxis: int)[source]#
Bases:
SymmetryOperationBaseSwap two axes, spanning S_dim
- class volumential.list1_symmetry.CaseVecReduction(vecs: list | None = None, sym_tags: list[SymmetryOperationBase] | None = None, do_reduction: bool = True)[source]#
Bases:
objectReduce a set of case vectors based on symmetry.
- parse_symmetry_tags(tags: list[SymmetryOperationBase] | None) tuple[ndarray, list[set[int]]][source]#
Split tags into a per-axis flippable mask and swappable axis groups.
tags of
Nonemeans maximum symmetry: every axis is flippable and all axes form a single swappable group.
- find_base_vecs() tuple[list, list[int]][source]#
Return the symmetry representatives and their ids in the full list.
- find_invariant_group(vec: Sequence[int]) list[SymmetryOperationBase][source]#
For a given case vector, within the allowed symmetry tags, return a generating set of its invariant group as a list of SymmetryOperationBase objects.
- get_reduced_vec_ids() list[int][source]#
Return the indices of the representatives into the full vector list.
- get_inter_box_reduction_ratio() float[source]#
Return the fraction of case vectors that survive as representatives.
- get_intra_box_reduction_ratio() float[source]#
Return the mean fraction of entries needed within a representative box.
- get_full_reduction_ratio() float[source]#
Return the combined inter-box and intra-box reduction ratio.
- get_reduced_invariant_groups() list[list[SymmetryOperationBase]][source]#
Return the invariant group generators of each representative.