Irreps#

spgrep.irreps.enumerate_small_representations(little_rotations, little_translations, kpoint, real=False, method='Neto', rtol=1e-05, atol=1e-08, max_num_random_generations=4)[source]#

Enumerate all unitary small representations of little group.

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

  • little_translations (array, (order, 3))

  • kpoint (array, (3, ))

  • real (bool, default=False) –

    If True, return irreps over real vector space (so called physically irreducible representations). For type-II and type-III cases, representation matrix for translation \((\mathbf{E}, \mathbf{t})\) is chosen as

    \[\begin{split}\begin{pmatrix} \cos (\mathbf{k} \cdot \mathbf{t}) \mathbf{1}_{d} & -\sin (\mathbf{k} \cdot \mathbf{t}) \mathbf{1}_{d} \\ \sin (\mathbf{k} \cdot \mathbf{t}) \mathbf{1}_{d} & \cos (\mathbf{k} \cdot \mathbf{t}) \mathbf{1}_{d} \\ \end{pmatrix}\end{split}\]

    where \(\mathbf{k}\) is kpoint.

  • method (str, 'Neto' or 'random') – ‘Neto’: construct irreps from a fixed chain of subgroups of little co-group ‘random’: construct irreps by numerically diagonalizing a random matrix commute with regular representation

  • rtol (float) – Relative tolerance to distinguish difference eigenvalues

  • atol (float) – Relative tolerance to compare

  • max_num_random_generations (int) – Maximum number of trials to generate random matrix

Returns:

  • irreps (list of unitary small representations (irreps of little group) with (order, dim, dim))

  • indicators (list of int) – Frobenius-Schur indicator of composed irreps of each physically irreducible representation.

spgrep.irreps.enumerate_unitary_irreps(rotations, factor_system=None, real=False, method='Neto', rtol=1e-05, atol=1e-08, max_num_random_generations=4)[source]#

Enumerate all unitary irreps with of matrix group rotations with factor_system.

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

  • factor_system (array, (order, order)) – If not specified, treat as ordinary representation.

  • real (bool, default=False) – If True, return irreps over real vector space (so called physically irreducible representations)

  • method (str, 'Neto' or 'random') – ‘Neto’: construct irreps from a fixed chain of subgroups of little co-group ‘random’: construct irreps by numerically diagonalizing a random matrix commute with regular representation

  • rtol (float) – Relative tolerance to distinguish difference eigenvalues

  • atol (float) – Relative tolerance to compare

  • max_num_random_generations (int) – Maximum number of trials to generate random matrix

Returns:

  • irreps (list of unitary irreps with (order, dim, dim))

  • indicators (list of int) – Frobenius-Schur indicator of composed irreps of each physically irreducible representation.

spgrep.irreps.enumerate_unitary_irreps_from_regular_representation(reg, rtol=1e-05, max_num_random_generations=4)[source]#

Decompose given (projective) regular representation and obtain all unitary Irreps.

Parameters:
  • reg (array, (order, order, order)) – (Projective) Regular representation. reg[k] is a representation matrix for the k-th operation.

  • rtol (float) – Relative tolerance to distinguish difference eigenvalues

  • max_num_random_generations (int) – Maximum number of trials to generate random matrix

Returns:

irreps

Return type:

list of unitary Irreps with (order, dim, dim)

spgrep.irreps.decompose_representation(representation, rtol=1e-05, max_num_random_generations=4)[source]#

Decompose given (projective) representation into all unitary irreps.

Parameters:
  • representation (array, (order, dim0, dim0)) – (Projective) representation. representation[k] is a representation matrix for the k-th operation.

  • rtol (float) – Relative tolerance to distinguish difference eigenvalues

  • max_num_random_generations (int) – Maximum number of trials to generate random matrix

Returns:

irreps

Return type:

list of unitary Irreps with (order, dim, dim)

spgrep.irreps.enumerate_unitary_irreps_from_solvable_group_chain(table, factor_system, solvable_chain_generators, atol=1e-08, max_num_random_generations=4)[source]#

Calculate symmetrized irreps from given chain of solvable group.

Parameters:
  • table (array, (order, order)) – Cayley table

  • factor_system (array, (order, order))

  • solvable_group_chain (list of single generator of coset) – Let \(G_{0} := G\) and \(G_{i} := G_{i-1} / \langle\) solvable_chain_generators[i] \(\rangle\) (i = 0, 1, …). Then, \(G_{i}\) is normal subgroup of \(G_{i-1}\) and factor group \(G_{i-1}/G_{i}\) is Abelian.

  • atol (float) – Absolute tolerance to distinguish difference eigenvalues

  • max_num_random_generations (int) – Maximum number of trials to generate random matrix

Returns:

irreps

Return type:

list of unitary projective irrep with (order, dim, dim)

spgrep.irreps.get_physically_irrep(irrep, indicator, atol=1e-05, max_num_random_generations=4)[source]#

Compute physically irreducible representation (over real number) from given unitary irrep over complex number.

Parameters:
  • irrep (array, (order, dim, dim)) – Unitary (projective) irrep

  • indicator (int) – Frobenius-Schur indicator: -1, 0, or 1

  • atol (float) – Relative tolerance to compare

  • max_num_random_generations (int) – Maximum number of trials to generate random matrix

Returns:

real_irrep – Physically irreducible representation composed of irrep and its conjugated irrep When indicator==1, dim2 == dim. When indicator==-1 or indicator==0, dim2 == 2 * dim.

Return type:

array, (order, dim2, dim2)

spgrep.irreps.is_equivalent_irrep(character1, character2)[source]#

Return true if two irreps are equivalent.