Representation for spinor#

spgrep.spinor.enumerate_spinor_small_representations(lattice, little_rotations, little_translations=None, kpoint=None, method='Neto', rtol=1e-05, atol=1e-08, max_num_random_generations=4)[source]#

Enumerate all unitary irreps \(\mathbf{D}^{\mathbf{k}\alpha}\) of little group for spinor.

\[\mathbf{D}^{\mathbf{k}\alpha}(\mathbf{S}_{i}) \mathbf{D}^{\mathbf{k}\alpha}(\mathbf{S}_{j}) = z(\mathbf{S}_{i}, \mathbf{S}_{j}) e^{ -i \mathbf{g}_{i} \cdot \mathbf{w}_{j} } \mathbf{D}^{\mathbf{k}\alpha}(\mathbf{S}_{k}),\]

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

See Spin representation for Spgrep’s convention of spinor-derived factor system.

Parameters:
  • lattice (array, (3, 3)) – Row-wise basis vectors. lattice[i, :] is the i-th lattice vector.

  • little_rotations (array[int], (order, 3, 3))

  • little_translations (array, (order, 3))

  • kpoint (array, (3, ))

  • 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))

  • spinor_factor_system (array, (order, order)) – spinor_factor_system[i, j] stands for factor system \(z(\mathbf{S}_{i}, \mathbf{S}_{j})\)

  • unitary_rotations (array, (order, 2, 2)) – SU(2) rotations on spinor.

spgrep.spinor.get_spinor_factor_system(lattice, rotations)[source]#

Calculate spin-derived factor system of spin representation.

\[\mathbf{U}(\mathbf{S}_{i}) \mathbf{U}(\mathbf{S}_{j}) = z(\mathbf{S}_{i}, \mathbf{S}_{j}) \mathbf{U}(\mathbf{S}_{k})\]

where \(\mathbf{S}_{i} \mathbf{S}_{j} = \mathbf{S}_{k}\). See Spin representation for Spgrep’s convention of spinor-derived factor system \(z(S_{i}, S_{j})\) and a map from orthogonal matrix \(\mathbf{S}_{i} \in O(3)\) to unitary matrix \(\mathbf{U}(\mathbf{S}_{i}) \in SU(2)\).

Parameters:
  • lattice (array, (3, 3)) – Row-wise basis vectors. lattice[i, :] is the i-th lattice vector.

  • rotations (array, (order, 3, 3)) – Matrix group of \(\{ \mathbf{S}_{i} \}_{i}\)

Returns:

  • spinor_factor_system (array, (order, order)) – factor_system[i, j] stands for \(z(\mathbf{S}_{i}, \mathbf{S}_{j})\)

  • unitary_rotations (array, (order, 2, 2)) – unitary_rotations[i] stands for \(\mathbf{U}(\mathbf{S}_{i}) \in SU(2)\). SU(2) rotations on spinor.

spgrep.spinor.get_spinor_unitary_rotation(lattice, rotation)[source]#

Return unitary matrix for given orthogonal matrix.