netket.utils.group.PointGroup#
- class netket.utils.group.PointGroup[source]#
Bases:
FiniteGroup
Collection of point group symmetries acting on n-dimensional vectors.
Group elements need not all be of type
netket.utils.symmetry.PGSymmetry
, only act on such vectors when called. Currently, however, only Identity and PGSymmetry have canonical forms implemented.The class can contain elements that are distinct as objects (e.g.,
Identity()
andRotation(0)
) but have identical action. Those can be removed by callingremove_duplicates
.- 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#
- is_symmorphic#
- product_table#
- shape#
Tuple (<# of group elements>, <ndim>, <ndim>). Equivalent to
self.to_array().shape
.
- Methods
- __call__(initial)#
Apply all group elements to all entries of initial along the last axis.
- change_origin(origin)[source]#
Returns a new PointGroup, out, such that all elements of out describe pure point-group transformations around origin and out[i] has the same transformation matrix as self[i].
- Return type:
- Parameters:
- character_table()#
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.
- character_table_readable()#
Returns a conventional rendering of the character table.
- irrep_matrices()#
Returns matrices that realise all irreps of the group.
- remove_duplicates(*, return_inverse=False)[source]#
Returns a new
PointGroup
with duplicate elements (that is, elements which represent identical transformations) removed.- Parameters:
return_inverse – If True, also return indices to reconstruct the original group from the result.
- Return type:
- Returns:
The point group with duplicate elements removed. If
return_inverse==True
, then 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.
- rotation_group()[source]#
Returns a new PointGroup that represents the subgroup of rotations (i.e. symmetries where the determinant of the transformation matrix is +1) in self
- Return type:
- to_array()[source]#
Convert the abstract group operations to an array of transformation matrices
For symmorphic groups, self.to_array()[i] contains the transformation matrix of the i`th group element. For nonsymmorphic groups, `self.to_array()[i] is a (d+1)×(d+1) block matrix of the form [[W,w],[0,1]]: multiplying these matrices is equivalent to multiplying the symmetry operations.