isotypic_decomp_rep#
- isotypic_decomp_rep(rep)[source]#
Return an equivalent representation disentangled into isotypic subspaces.
Given an input
Representation, this function computes an equivalent representation by updating the change of basis (and its inverse) and reordering the irreducible representations. The returned representation is guaranteed to be disentangled into its isotypic subspaces.A representation is considered disentangled if, in its spectral basis, the irreducible representations (irreps) are clustered by type, i.e., all irreps of the same type are consecutive:
\[\rho_{\mathcal{X}} = \mathbf{Q}\left( \bigoplus_{k\in[1,n_{\text{iso}}]} \bigoplus_{i\in[1,n_k]} \hat{\rho}_k \right)\mathbf{Q}^T\]where \(\hat{\rho}_k\) is the irreducible representation of type \(k\), and \(n_k\) is its multiplicity.
The change of basis decomposes the representation space into orthogonal isotypic subspaces:
\[\mathcal{X} = \bigoplus_{k\in[1,n_{\text{iso}}]} \mathcal{X}^{(k)}.\]Ordering convention:
If present, the trivial-irrep isotypic block is placed first and denoted \(\mathcal{X}^{\text{inv}}\).
Remaining isotypic blocks are sorted by subspace dimension.
Output metadata:
attributes["isotypic_reps"]: ordered mappingirrep_id -> isotypic representation.attributes["isotypic_subspace_dims"]: slice map locating each isotypic block in the disentangled basis.attributes["in_isotypic_basis"]: boolean flag set toTrue.
- Parameters:
rep (
Representation) – The input representation \(\rho\).- Returns:
An equivalent, disentangled representation.
- Return type:
Note
The decomposition is cached per symmetry group under
rep.group.representationswith keyrep.name + "-Iso". Repeated calls with the same representation/group reuse the cached result.