Representation#
- spgrep.representation.get_regular_representation(rotations)[source]#
Calculate regular representation of point group.
- Parameters:
rotations (array, (order, 3, 3))
- Returns:
reg –
reg[k]
is a representation matrix forrotations[k]
. If and only ifnp.dot(rotations[k], rotations[j]) == rotations[i]
,reg[k, i, j] == 1
.- Return type:
array, (order, order, order)
- spgrep.representation.get_projective_regular_representation(rotations, factor_system)[source]#
Calculate regular representation of space group with factor system.
- Parameters:
rotations (array, (order, 3, 3))
factor_system (array, (order, order))
- Returns:
reg –
reg[k]
is a representation matrix forrotations[k]
. If and only ifnp.dot(rotations[k], rotations[j]) == rotations[i]
,reg[k, i, j] == factor_system[k, j]
.- Return type:
array, (order, order, order)
- spgrep.representation.get_intertwiner(rep1, rep2, atol=1e-08, max_num_random_generations=4)[source]#
Calculate intertwiner matrix between
rep1
andrep2
such thatrep1 @ matrix == matrix @ rep2
if they are equivalent.The determinant of
matrix
is scaled to be unity.This function takes O(order * dim^4).
- Parameters:
rep1 (array, (order, dim, dim)) – Unitary irrep
rep2 (array, (order, dim, dim)) – Unitary irrep
atol (float) – Absolute tolerance to distinguish difference eigenvalues
max_num_random_generations (int) – Maximum number of trials to generate random matrix
- Returns:
matrix
- Return type:
array, (dim, dim)
- spgrep.representation.project_to_irrep(representation, irrep, atol=1e-06, max_num_trials=10)[source]#
Construct basis functions for
irrep
by linear combinations of basis functions ofrepresentation
.
- Parameters:
representation (array, (order, dim, dim))
irrep (array, (order, dim_irrep, dim_irrep)) – Unitary (projective) irrep with factor system s.t. \(\mu(E, E) = 1\).
atol (float, default=1e-5) – Absolute tolerance to compare basis vectors
max_num_trials (int, default=10) – Maximum number to retry when failed to select projected basis vectors
- Returns:
basis – Each basis vectors are orthonormal.
- Return type:
list of array with (irrep_dim, dim)
- spgrep.representation.frobenius_schur_indicator(irrep)[source]#
Inspect given unitary (projective) irrep is real, pseudo-real, or not unitary equivalent.
\[\mathrm{indicator} = \frac{1}{|G|} \sum_{ g \in G } \chi(g^{2})\]
- Parameters:
irrep (array, (order, dim, dim))
- Returns:
indicator – If
indicator==1
, it is real Reps. Ifindicator==-1
, it is psedu-real Reps. Otherwise, it and adjoint Reps. are not equivalent.- Return type:
int