Group#

spgrep.group.get_cayley_table(rotations, time_reversals=None)[source]#

Calculate Group multiplication table.

Parameters:
  • rotations (array[int], (order, 3, 3))

  • time_reversals ((Optional) array[int], (order, ))

Returns:

tabletable[i, j] = k if rotations[i] @ rotations[j] == rotations[k]

Return type:

(order, order)

spgrep.group.get_identity_index(table)[source]#

Return index for identity of group.

spgrep.group.get_inverse_index(table, idx)[source]#

Return index of inverse of idx element in table.

spgrep.group.get_order(table, idx)[source]#

Return order of element idx in table.

spgrep.group.is_matrix_group(rotations)[source]#

Return True iff given integer matrices forms group.

spgrep.group.get_factor_system_from_little_group(little_rotations, little_translations, kpoint)[source]#

Calculate factor system of projective representation of little co-group.

\[D^{\mathbf{k}}_{p}(S_{i}) D^{\mathbf{k}}_{p}(S_{j}) = \exp \left( -i \mathbf{g}_{i} \cdot \mathbf{w}_{j} \right) D^{\mathbf{k}}_{p}(S_{k})\]

where \(S_{i}S_{j} = S_{k}\) and \(\mathbf{g}_{i} = S_{i}^{-1} \mathbf{k} - \mathbf{k}\).

Parameters:
  • little_rotations (array, (order, 3, 3)) – Linear parts of coset of little group stabilizing kpoint.

  • little_translations (array, (order, 3)) – Translation parts of coset of little group stabilizing kpoint.

  • kpoint (array, (3, ))

Returns:

factor_system – Factor system of representations of little co-group that have one-to-one correspondence to small representations

Return type:

array, (order, order)

spgrep.group.get_little_group(rotations, translations, kpoint, atol=1e-08)[source]#

Return coset of little group of given space group which stabilize kpoint under rotations.

Parameters:
  • rotations (array, (order, 3, 3))

  • translations (array, (order, 3))

  • kpoint (array, (3, ))

Returns:

  • little_rotations (array, (little_group_order, 3, 3))

  • little_translations (array, (little_group_order, 3))

  • mapping_little_group (array, (little_group_order, )) – Let i = mapping_little_group[idx]. (rotations[i], translations[i]) belongs to the little group of given space space group and kpoint.

spgrep.group.check_cocycle_condition(rotations, factor_system)[source]#

Return true if given factor system satisfies the cocycle condition.

spgrep.group.decompose_by_maximal_space_subgroup(rotations, translations, time_reversals)[source]#

Coset-decompose magnetic space group \(M\) by its maximal space subgroup (XSG) \(D(M)\).

If given magnetic space group is type I, return None.

\[M = D(M) \sqcup D(M) a_{0}\]
Returns:

  • xsg_indices (list[int]) – List of indices for XSG

  • time_reversal_indices (list[int]) – Let xsg_indices[i] = \((\mathbf{W}_{i}, \mathbf{w}_{i})\). Then, time_reversal_indices[i] \(\equiv (\mathbf{W}_{i}, \mathbf{w}_{i}) a_{0}\).

  • a0_idx (int) – Index of \(a_{0}\) in given list of symmetries