Co-representation for spinor#
- spgrep.corep.enumerate_spinor_small_corepresentations(lattice, little_rotations, little_translations, little_time_reversals, kpoint, method='Neto', rtol=1e-05, atol=1e-08, max_num_random_generations=4)[source]#
Enumerate all unitary co-irreps of little group for spinor.
\[\begin{split}\overline{\mathbf{D}}^{\mathbf{k}\alpha}(\mathbf{S}_{i}1) \overline{\mathbf{D}}^{\mathbf{k}\alpha}(\mathbf{S}_{j}\theta_{j}) = \omega(\mathbf{S}_{i}1, \mathbf{S}_{j}\theta_{j}) e^{ -i \mathbf{g}_{i} \cdot \mathbf{w}_{j} } \overline{\mathbf{D}}^{\mathbf{k}\alpha}(\mathbf{S}_{k}\theta_{k}) \\ \overline{\mathbf{D}}^{\mathbf{k}\alpha}(\mathbf{S}_{i}1') \overline{\mathbf{D}}^{\mathbf{k}\alpha}(\mathbf{S}_{j}\theta_{j})^{\ast} = \omega(\mathbf{S}_{i}1', \mathbf{S}_{j}\theta_{j}) e^{ -i \mathbf{g}_{i} \cdot \mathbf{w}_{j} } \overline{\mathbf{D}}^{\mathbf{k}\alpha}(\mathbf{S}_{k}\theta_{k}) \\\end{split}\]See Convention of anti-linear operators in spgrep for spinor-derived factor system \(\omega\).
- 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))
little_time_reversals (array[int], (order))
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:
small_coreps (list of array) – Unitary small co-representations (irreps of little group), \(\{ \overline{\mathbf{D}}^{\mathbf{k}\alpha} \}_{\alpha}\)
indicators (list[int]) – Frobenius-Schur indicators for each small representation
corep_spinor_factor_system (array, (order, order)) –
factor_system[i, j]
stands for \(\omega(\mathbf{S}_{i}\theta_{i}, \mathbf{S}_{j}\theta_{j})\)unitary_rotations (array, (order, 2, 2)) –
unitary_rotations[i]
stands for \(\mathbf{U}(\mathbf{S}_{i}) \in SU(2)\).anti_linear (array[bool], (order, )) – If
anti_linear[i] == True
, thei
-th operator is anti-linear.
- spgrep.corep.get_corep_spinor_factor_system(lattice, rotations, time_reversals)[source]#
Calculate spin-derived factor system of spin co-representation.
See Convention of anti-linear operators in spgrep for spinor-derived factor system \(\omega\). An ordinary symmetry operation \(\mathbf{S}_{i}1\) maps to unitary operator \(\mathbf{U}(\mathbf{S}_{i})\). An antisymmetry operation \(\mathbf{S}_{i}1'\) maps to
- Parameters:
lattice (array, (3, 3)) – Row-wise basis vectors.
lattice[i, :]
is the i-th lattice vector.rotations (array[int], (order, 3, 3)) – Rotation parts of magnetic point group, \(\mathbf{S}_{i}\)
time_reversals (array[int], (order, )) – Time-reversal parts of magnetic point group, \(\theta_{i}\)
- Returns:
corep_spinor_factor_system (array, (order, order)) –
factor_system[i, j]
stands for \(\omega(\mathbf{S}_{i}\theta_{i}, \mathbf{S}_{j}\theta_{j})\)unitary_rotations (array, (order, 2, 2)) –
unitary_rotations[i]
stands for \(\mathbf{U}(\mathbf{S}_{i}) \in SU(2)\).anti_linear (array[bool], (order, )) – If
anti_linear[i] == True
, thei
-th operator is anti-linear.