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, the i-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, the i-th operator is anti-linear.