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.