SymGroup#

class libcasm.sym_info.SymGroup(
self: SymGroup,
elements: list[SymOp],
multiplication_table: list[list[int]],
)#

Bases: pybind11_object

Data structure holding group elements and other group info, such as group-subgroup relationships.

The SymGroup class goes beyond storing a list[SymOp] to include the multiplication table and inverse element table. The SymGroup class may represent a head group, or a subgroup.

When representing a subgroup, the head group can be obtained as a shared pointer from head_group(). Pointers to subgroups are not stored by the head group. For subgroups, there is a list of indices indicating which element in the head group each subgroup element corresponds to (head_group_index()).

The libcasm.sym_info package provides factory functions for the common use cases of constructing the prim factor group and prim point group:

Factory Functions

Special methods

  • Get the i-th element of the group using: element = group[i]

Constructor

Parameters:
  • elements (list[SymOp]) – The matrix representation of elements of the group.

  • multiplication_table (list[list[int]]) – The multiplication table element multiplication_table[i][j] == k represents that np.allclose(elements[k], elements[i] @ elements[j]) == True.

Methods

brief_cart

Brief description, in Cartesian coordinates

brief_frac

Brief description, in fractional coordinates

conjugacy_classes

Returns the conjugacy classes

from_dict

Construct a SymGroup from a Python dict.

from_elements

inv

Returns the index of the inverse of an element

make_subgroup

Make a subgroup

mult

Returns the index of the element product.

to_dict

Represent the SymGroup as a Python dict

Attributes

elements

The elements list

head_group

The head group if this is a subgroup, else None.

head_group_index

The list of head group indices (guaranteed sorted)

inverse_index

The list of inverse indices

is_subgroup

True if this is a subgroup, False otherwise.

multiplication_table

The multiplication table.