Symmetry Groups Overview¶
Nicole's symmetry system enables efficient block-sparse tensor operations by exploiting conserved quantum numbers.
Available Groups¶
Abelian Groups¶
- U1Group: Continuous U(1) symmetry with integer charges
- Z2Group: Binary Z(2) symmetry with charges 0 or 1
- ProductGroup: Combination of Abelian groups (e.g. U(1) × Z(2))
Non-Abelian Groups¶
- SU2Group: SU(2) rotational symmetry with spin-based quantum numbers
- ProductGroup: Combination of Abelian groups with
SU2Groupas the last component (e.g. U(1) × SU(2))
Core Concepts¶
Charges¶
Charges are quantum numbers that label symmetry sectors:
- U(1): Integers (..., -2, -1, 0, 1, 2, ...)
- Z(2): Binary (0, 1)
- SU(2): Non-negative integers using the 2j convention (0, 1, 2, 3, ...) for physical spins 0, ½, 1, 3/2, ...
- ProductGroup: Tuples of component charges, e.g.
(n, 2j)for U(1) × SU(2)
Charge Operations¶
All symmetry groups support:
neutral: Identity element (0 for U1, Z2, and SU2)dual(q): Dual/contragredient representation; self-dual for SU(2)equal(a, b): Test equalityis_abelian:Truefor U1/Z2/Abelian ProductGroup;Falsefor SU2Group and ProductGroup containing SU2irrep_dim(q): Dimension of irrep for chargeq; always 1 for Abelian groups;2j+1for SU(2)
Charge Fusion¶
Charge fusion depends on whether the group is Abelian:
- Abelian groups (U1, Z2, Abelian ProductGroup):
fuse_unique(*qs)combines any number of charges into a single result (addition for U1, XOR for Z2). - Non-Abelian groups (SU2, ProductGroup with SU2): two charges can fuse into multiple result channels. Use
fuse_channelsinstead:
from nicole import U1Group, SU2Group
# Abelian: always a unique result
u1 = U1Group()
u1.fuse_unique(2, 3) # 5
# Non-Abelian: multiple channels
su2 = SU2Group()
su2.fuse_channels(1, 1) # (0, 2) — spin-0 or spin-1
su2.fuse_channels(2, 2) # (0, 2, 4) — spin-0, spin-1, or spin-2
Charge Conservation¶
Tensor blocks must satisfy:
This is enforced automatically throughout Nicole.
Physical Examples¶
U(1) Applications¶
- Particle number conservation
- Magnetization (Sz) conservation
- Electric charge
Z(2) Applications¶
- Fermion parity (even/odd)
- Spatial inversion symmetry
- Time-reversal (in some contexts)
SU(2) Applications¶
- Isotropic spin chains (Heisenberg model with full spin-rotation invariance)
- Angular momentum conservation in multi-particle systems
- Hubbard model with spin SU(2) symmetry (
U1 × SU2)
SU(2) tensors use the Wigner–Eckart decomposition internally; see the Yuzuha Protocol for the R-W-C structure and compression rationale.
ProductGroup Applications¶
- Particle number + spin (U1 × U1)
- Particle number + parity (U1 × Z2)
- Particle number + full spin rotation (U1 × SU2)
- Parity + full spin rotation (Z2 × SU2)
See Also¶
- U1Group: Integer charge symmetry
- Z2Group: Binary symmetry
- SU2Group: Non-Abelian spin symmetry
- ProductGroup: Multiple symmetries
- Bridge: CG intertwiner storage for SU(2) tensor blocks
- Examples: U(1)
- Examples: SU(2)
Notes¶
Symmetry groups are immutable and lightweight. Groups are typically shared across many indices and tensors.