netket.utils.group.FiniteGroup#
- class netket.utils.group.FiniteGroup[source]#
Bases:
FiniteSemiGroup
Collection of Elements expected to satisfy group axioms. Unlike FiniteSemiGroup, product tables, conjugacy classes, etc. can be calculated.
Group elements can be implemented in any way, as long as a subclass of Group is able to implement their action. Subclasses must implement a
_canonical()
method that returns an array of integers for each acceptable Element such that two Elements are considered equal iff the corresponding matrices are equal.- Inheritance
- Attributes
- character_table_by_class#
Calculates the character table using Burnside’s algorithm.
Each row of the output lists the characters of one irrep in the order the conjugacy classes are listed in self.conjugacy_classes.
Assumes that
Identity() == self[0]
, if not, the sign of some characters may be flipped. The irreps are sorted by dimension.
- conjugacy_classes#
The conjugacy classes of the group.
- Returns:
The three arrays
classes: a boolean array, each row indicating the elements that belong to one conjugacy class
representatives: the lowest-indexed member of each conjugacy class
inverse: the conjugacy class index of every group element
- conjugacy_table#
The conjugacy table of this Permutation Group.
Assuming the definitions
g = self[idx_g] h = self[idx_h]
self[self.conjugacy_table[idx_g,idx_h]]
corresponds to \(h^{-1}gh\).
- inverse#
Indices of the inverse of each element.
Assuming the definitions
g = self[idx_g] h = self[self.inverse[idx_g]]
gh = product(g, h)
is equivalent toIdentity()
- product_table#
A table of indices corresponding to \(g^{-1} h\) over the group.
Assuming the definitions
g = self[idx_g] h = self[idx_h] idx_u = self.product_table[idx_g, idx_h]
self[idx_u]
corresponds to \(u = g^{-1} h\) .
- Methods
- __call__(initial)#
Apply all group elements to all entries of initial along the last axis.
- character_table()[source]#
Calculates the character table using Burnside’s algorithm.
Each row of the output lists the characters of all group elements for one irrep, i.e.
self.character_table()[i,g]
gives \(\chi_i(g)\).Assumes that
Identity() == self[0]
, if not, the sign of some characters may be flipped. The irreps are sorted by dimension.
- remove_duplicates(*, return_inverse=False)[source]#
Returns a new
FiniteGroup
with duplicate elements (that is, elements with identical canonical forms) removed.- Parameters:
return_inverse – If True, also return indices to reconstruct the original group from the result.
- Return type:
- Returns:
The group with duplicate elements removed. If
return_inverse==True
it also returns the list of indices needed to reconstruct the original group from the result.
- replace(**updates)#
Returns a new object replacing the specified fields with new values.