Irreducible representations
Crystalline.jl provides easy access to crystallographic point group irreps, site symmetry group irreps, and the little group irreps of space groups. Currently, we only provide access to spinless (or "single-valued") irreps.
Point group irreps
Irreps for the crystallographic point groups are accessible via pgirreps
, with the point group specified either by IUC label and dimensionality. As an example, we may load the irreps of the 6mm (C₆ᵥ in Schoenflies notation; see also schoenflies(::PointGroup)
) point group in 3D.
using Crystalline
pgirs = pgirreps("6mm", Val(3))
6-element Collection{PGIrrep{3}} for ⋕25 (6mm):
Γ₁ ─┬─────────────────────────────────────────────
├─ 1: ──────────────────────────────── (x,y,z)
│ 1
│
├─ 3₀₀₁⁺: ───────────────────────── (-y,x-y,z)
│ 1
│
├─ 3₀₀₁⁻: ──────────────────────── (-x+y,-x,z)
│ 1
│
├─ 2₀₀₁: ─────────────────────────── (-x,-y,z)
│ 1
│
├─ 6₀₀₁⁻: ───────────────────────── (y,-x+y,z)
│ 1
│
├─ 6₀₀₁⁺: ────────────────────────── (x-y,x,z)
│ 1
│
├─ m₁₁₀: ─────────────────────────── (-y,-x,z)
│ 1
│
├─ m₁₀₀: ────────────────────────── (-x+y,y,z)
│ 1
│
├─ m₀₁₀: ─────────────────────────── (x,x-y,z)
│ 1
│
├─ m₋₁₁₀: ──────────────────────────── (y,x,z)
│ 1
│
├─ m₁₂₀: ────────────────────────── (x-y,-y,z)
│ 1
│
├─ m₂₁₀: ───────────────────────── (-x,-x+y,z)
│ 1
└─────────────────────────────────────────────
Γ₂ ─┬─────────────────────────────────────────────
├─ 1: ──────────────────────────────── (x,y,z)
│ 1
│
├─ 3₀₀₁⁺: ───────────────────────── (-y,x-y,z)
│ 1
│
├─ 3₀₀₁⁻: ──────────────────────── (-x+y,-x,z)
│ 1
│
├─ 2₀₀₁: ─────────────────────────── (-x,-y,z)
│ 1
│
├─ 6₀₀₁⁻: ───────────────────────── (y,-x+y,z)
│ 1
│
├─ 6₀₀₁⁺: ────────────────────────── (x-y,x,z)
│ 1
│
├─ m₁₁₀: ─────────────────────────── (-y,-x,z)
│ -1
│
├─ m₁₀₀: ────────────────────────── (-x+y,y,z)
│ -1
│
├─ m₀₁₀: ─────────────────────────── (x,x-y,z)
│ -1
│
├─ m₋₁₁₀: ──────────────────────────── (y,x,z)
│ -1
│
├─ m₁₂₀: ────────────────────────── (x-y,-y,z)
│ -1
│
├─ m₂₁₀: ───────────────────────── (-x,-x+y,z)
│ -1
└─────────────────────────────────────────────
Γ₃ ─┬─────────────────────────────────────────────
├─ 1: ──────────────────────────────── (x,y,z)
│ 1
│
├─ 3₀₀₁⁺: ───────────────────────── (-y,x-y,z)
│ 1
│
├─ 3₀₀₁⁻: ──────────────────────── (-x+y,-x,z)
│ 1
│
├─ 2₀₀₁: ─────────────────────────── (-x,-y,z)
│ -1
│
├─ 6₀₀₁⁻: ───────────────────────── (y,-x+y,z)
│ -1
│
├─ 6₀₀₁⁺: ────────────────────────── (x-y,x,z)
│ -1
│
├─ m₁₁₀: ─────────────────────────── (-y,-x,z)
│ -1
│
├─ m₁₀₀: ────────────────────────── (-x+y,y,z)
│ -1
│
├─ m₀₁₀: ─────────────────────────── (x,x-y,z)
│ -1
│
├─ m₋₁₁₀: ──────────────────────────── (y,x,z)
│ 1
│
├─ m₁₂₀: ────────────────────────── (x-y,-y,z)
│ 1
│
├─ m₂₁₀: ───────────────────────── (-x,-x+y,z)
│ 1
└─────────────────────────────────────────────
Γ₄ ─┬─────────────────────────────────────────────
├─ 1: ──────────────────────────────── (x,y,z)
│ 1
│
├─ 3₀₀₁⁺: ───────────────────────── (-y,x-y,z)
│ 1
│
├─ 3₀₀₁⁻: ──────────────────────── (-x+y,-x,z)
│ 1
│
├─ 2₀₀₁: ─────────────────────────── (-x,-y,z)
│ -1
│
├─ 6₀₀₁⁻: ───────────────────────── (y,-x+y,z)
│ -1
│
├─ 6₀₀₁⁺: ────────────────────────── (x-y,x,z)
│ -1
│
├─ m₁₁₀: ─────────────────────────── (-y,-x,z)
│ 1
│
├─ m₁₀₀: ────────────────────────── (-x+y,y,z)
│ 1
│
├─ m₀₁₀: ─────────────────────────── (x,x-y,z)
│ 1
│
├─ m₋₁₁₀: ──────────────────────────── (y,x,z)
│ -1
│
├─ m₁₂₀: ────────────────────────── (x-y,-y,z)
│ -1
│
├─ m₂₁₀: ───────────────────────── (-x,-x+y,z)
│ -1
└─────────────────────────────────────────────
Γ₅ ─┬─────────────────────────────────────────────
├─ 1: ──────────────────────────────── (x,y,z)
│ ⎡ 1 0 ⎤
│ ⎣ 0 1 ⎦
│
├─ 3₀₀₁⁺: ───────────────────────── (-y,x-y,z)
│ ⎡ -0.5+0.866im 0 ⎤
│ ⎣ 0 -0.5-0.866im ⎦
│
├─ 3₀₀₁⁻: ──────────────────────── (-x+y,-x,z)
│ ⎡ -0.5-0.866im 0 ⎤
│ ⎣ 0 -0.5+0.866im ⎦
│
├─ 2₀₀₁: ─────────────────────────── (-x,-y,z)
│ ⎡ 1 0 ⎤
│ ⎣ 0 1 ⎦
│
├─ 6₀₀₁⁻: ───────────────────────── (y,-x+y,z)
│ ⎡ -0.5+0.866im 0 ⎤
│ ⎣ 0 -0.5-0.866im ⎦
│
├─ 6₀₀₁⁺: ────────────────────────── (x-y,x,z)
│ ⎡ -0.5-0.866im 0 ⎤
│ ⎣ 0 -0.5+0.866im ⎦
│
├─ m₁₁₀: ─────────────────────────── (-y,-x,z)
│ ⎡ 0 1 ⎤
│ ⎣ 1 0 ⎦
│
├─ m₁₀₀: ────────────────────────── (-x+y,y,z)
│ ⎡ 0 -0.5-0.866im ⎤
│ ⎣ -0.5+0.866im 0 ⎦
│
├─ m₀₁₀: ─────────────────────────── (x,x-y,z)
│ ⎡ 0 -0.5+0.866im ⎤
│ ⎣ -0.5-0.866im 0 ⎦
│
├─ m₋₁₁₀: ──────────────────────────── (y,x,z)
│ ⎡ 0 1 ⎤
│ ⎣ 1 0 ⎦
│
├─ m₁₂₀: ────────────────────────── (x-y,-y,z)
│ ⎡ 0 -0.5-0.866im ⎤
│ ⎣ -0.5+0.866im 0 ⎦
│
├─ m₂₁₀: ───────────────────────── (-x,-x+y,z)
│ ⎡ 0 -0.5+0.866im ⎤
│ ⎣ -0.5-0.866im 0 ⎦
└─────────────────────────────────────────────
Γ₆ ─┬─────────────────────────────────────────────
├─ 1: ──────────────────────────────── (x,y,z)
│ ⎡ 1 0 ⎤
│ ⎣ 0 1 ⎦
│
├─ 3₀₀₁⁺: ───────────────────────── (-y,x-y,z)
│ ⎡ -0.5+0.866im 0 ⎤
│ ⎣ 0 -0.5-0.866im ⎦
│
├─ 3₀₀₁⁻: ──────────────────────── (-x+y,-x,z)
│ ⎡ -0.5-0.866im 0 ⎤
│ ⎣ 0 -0.5+0.866im ⎦
│
├─ 2₀₀₁: ─────────────────────────── (-x,-y,z)
│ ⎡ -1 0 ⎤
│ ⎣ 0 -1 ⎦
│
├─ 6₀₀₁⁻: ───────────────────────── (y,-x+y,z)
│ ⎡ 0.5-0.866im 0 ⎤
│ ⎣ 0 0.5+0.866im ⎦
│
├─ 6₀₀₁⁺: ────────────────────────── (x-y,x,z)
│ ⎡ 0.5+0.866im 0 ⎤
│ ⎣ 0 0.5-0.866im ⎦
│
├─ m₁₁₀: ─────────────────────────── (-y,-x,z)
│ ⎡ 0 1 ⎤
│ ⎣ 1 0 ⎦
│
├─ m₁₀₀: ────────────────────────── (-x+y,y,z)
│ ⎡ 0 -0.5-0.866im ⎤
│ ⎣ -0.5+0.866im 0 ⎦
│
├─ m₀₁₀: ─────────────────────────── (x,x-y,z)
│ ⎡ 0 -0.5+0.866im ⎤
│ ⎣ -0.5-0.866im 0 ⎦
│
├─ m₋₁₁₀: ──────────────────────────── (y,x,z)
│ ⎡ 0 -1 ⎤
│ ⎣ -1 0 ⎦
│
├─ m₁₂₀: ────────────────────────── (x-y,-y,z)
│ ⎡ 0 0.5+0.866im ⎤
│ ⎣ 0.5-0.866im 0 ⎦
│
├─ m₂₁₀: ───────────────────────── (-x,-x+y,z)
│ ⎡ 0 0.5-0.866im ⎤
│ ⎣ 0.5+0.866im 0 ⎦
└─────────────────────────────────────────────
Frequently, the character table of the associated irreps is more informative than the irrep matrices themselves. We can construct this table using characters
, which returns a CharacterTable
:
characters(pgirs)
CharacterTable{3} for ⋕25 (6mm):
───────┬────────────────────────
│ Γ₁ Γ₂ Γ₃ Γ₄ Γ₅ Γ₆
───────┼────────────────────────
1 │ 1 1 1 1 2 2
3₀₀₁⁺ │ 1 1 1 1 -1 -1
3₀₀₁⁻ │ 1 1 1 1 -1 -1
2₀₀₁ │ 1 1 -1 -1 2 -2
6₀₀₁⁻ │ 1 1 -1 -1 -1 1
6₀₀₁⁺ │ 1 1 -1 -1 -1 1
m₁₁₀ │ 1 -1 -1 1 0 0
m₁₀₀ │ 1 -1 -1 1 0 0
m₀₁₀ │ 1 -1 -1 1 0 0
m₋₁₁₀ │ 1 -1 1 -1 0 0
m₁₂₀ │ 1 -1 1 -1 0 0
m₂₁₀ │ 1 -1 1 -1 0 0
───────┴────────────────────────
The characters are functions of the conjugacy class (i.e., the characters of operations in the same conjugacy class are equal). Thus, a more compact representation of the character table can be achieved by a class-resolved table, achievable via classcharacters
:
classcharacters(pgirs)
Crystalline.ClassCharacterTable{3} for ⋕25 (6mm):
───────┬────────────────────────
│ Γ₁ Γ₂ Γ₃ Γ₄ Γ₅ Γ₆
───────┼────────────────────────
1 │ 1 1 1 1 2 2
3₀₀₁⁺ │ 1 1 1 1 -1 -1
2₀₀₁ │ 1 1 -1 -1 2 -2
6₀₀₁⁻ │ 1 1 -1 -1 -1 1
m₁₁₀ │ 1 -1 -1 1 0 0
m₋₁₁₀ │ 1 -1 1 -1 0 0
───────┴────────────────────────
Class representatives:
1
3₀₀₁⁺ : 3₀₀₁⁻
2₀₀₁
6₀₀₁⁻ : 6₀₀₁⁺
m₁₁₀ : m₁₀₀, m₀₁₀
m₋₁₁₀ : m₁₂₀, m₂₁₀
Notation
The default point group irrep labeling follows the Bilbao Crystallographic Server's labeling, which in turn follows the 1963 labelling of Koster, Dimmock, Wheeler, & Statz [2] (which is also followed e.g. by CDML [1] labeling as well as Bradley and Cracknell's book). Associated Muliken (or "spectroscopist's") notation can be obtained via mulliken
.
Little group irreps
Little group irreps, sometimes called ''small'' irreps, are accessible via lgirreps
and provided with CDML [1] labels (courtesy of ISOTROPY). As an example, we can obtain the irreps of space group 183 (P6mm; the trivial 3D extension of plane group 17, which in turn is the space group extension of point group 6mm from above) by:
using Crystalline
lgirsd = lgirreps(183, Val(3))
Dict{String, Collection{LGIrrep{3}}} with 18 entries:
"Q" => LGIrrep{3}[Q₁, Q₂] (Q = [α, α, 1/2])
"Λ" => LGIrrep{3}[Λ₁, Λ₂] (Λ = [α, α, 0])
"P" => LGIrrep{3}[P₁, P₂, P₃] (P = [1/3, 1/3, γ])
"C" => LGIrrep{3}[C₁, C₂] (C = [α, α, γ])
"L" => LGIrrep{3}[L₁, L₂, L₃, L₄] (L = [1/2, 0, 1/2])
"Δ" => LGIrrep{3}[Δ₁, Δ₂, Δ₃, Δ₄, Δ₅, Δ₆] (Δ = [0, 0, γ])
"B" => LGIrrep{3}[B₁] (B = [α, β, 0])
"M" => LGIrrep{3}[M₁, M₂, M₃, M₄] (M = [1/2, 0, 0])
"H" => LGIrrep{3}[H₁, H₂, H₃] (H = [1/3, 1/3, 1/2])
"A" => LGIrrep{3}[A₁, A₂, A₃, A₄, A₅, A₆] (A = [0, 0, 1/2])
"D" => LGIrrep{3}[D₁, D₂] (D = [α, 0, γ])
"E" => LGIrrep{3}[E₁] (E = [α, β, 1/2])
"U" => LGIrrep{3}[U₁, U₂, U₃, U₄] (U = [1/2, 0, γ])
"Σ" => LGIrrep{3}[Σ₁, Σ₂] (Σ = [α, 0, 0])
"Γ" => LGIrrep{3}[Γ₁, Γ₂, Γ₃, Γ₄, Γ₅, Γ₆] (Γ = [0, 0, 0])
"K" => LGIrrep{3}[K₁, K₂, K₃] (K = [1/3, 1/3, 0])
"R" => LGIrrep{3}[R₁, R₂] (R = [α, 0, 1/2])
"Ω" => LGIrrep{3}[Ω₁] (Ω = [α, β, γ])
which returns a dictionary of LGIrrep
s, indexed by k-labels given as String
s, corresponding to different little groups. In general, we include all the little groups included in ISOTROPY; unfortunately, there is no strict guarantee that this includes a full listing of all inequivalent irreps (although it is typically true). The listing typically contains both special points, lines, and planes (and also always the general point).
We can inspect the little group irreps of any particular k-point, accessing it via its canonical label. As before, we can inspect the associated character tables to get an overview of the irreps:
lgirs = lgirsd["Γ"] # little group irreps at the Γ point
characters(lgirs)
CharacterTable{3} for ⋕183 (P6mm) at Γ = [0, 0, 0]:
───────┬────────────────────────
│ Γ₁ Γ₂ Γ₃ Γ₄ Γ₅ Γ₆
───────┼────────────────────────
1 │ 1 1 1 1 2 2
2₀₀₁ │ 1 1 -1 -1 2 -2
3₀₀₁⁺ │ 1 1 1 1 -1 -1
3₀₀₁⁻ │ 1 1 1 1 -1 -1
6₀₀₁⁺ │ 1 1 -1 -1 -1 1
6₀₀₁⁻ │ 1 1 -1 -1 -1 1
m₁₀₀ │ 1 -1 -1 1 0 0
m₁₁₀ │ 1 -1 -1 1 0 0
m₀₁₀ │ 1 -1 -1 1 0 0
m₂₁₀ │ 1 -1 1 -1 0 0
m₁₂₀ │ 1 -1 1 -1 0 0
m₋₁₁₀ │ 1 -1 1 -1 0 0
───────┴────────────────────────
Space group irreps
We currently do not provide access to "full" space group irreps. They can, however, be readily built by induction from little group irreps. Specifically, every little group irrep $D_{\mathbf{k}}^\alpha$ associated with the little group $G_{\mathbf{k}}$, induces a space group irrep, sometimes denoted ${}^*D_{\mathbf{k}}^{\alpha}$ or $D^{\alpha}_{\mathbf{k}}\uparrow G$, in the full space group $G$:[Inui]
\[ [{}^*D_{\mathbf{k}}^{\alpha}(g)]_{ij} = \begin{cases} D_{\mathbf{k}}^{\alpha}(h_i^{-1}gh_j) & \text{if }h_i^{-1}gh_j \in G_{\mathbf{k}}\\ \boldsymbol{0}_{d_{\mathbf{k}}^{\alpha}\times d_{\mathbf{k}}^{\alpha}} & \text{otherwise} \end{cases},\]
where $d_{\mathbf{k}}^{\alpha}$ is the dimension of the little group irrep $D^{\alpha}_{\mathbf{k}}$, $\boldsymbol{0}_{d_{\mathbf{k}}^{\alpha}\times d_{\mathbf{k}}^{\alpha}}$ is a $d_{\mathbf{k}}^{\alpha}\times d_{\mathbf{k}}^{\alpha}$ zero matrix, and $h_i$ and $h_j$ iterate over the (left) coset representatives of $G_{\mathbf{k}}$ in $G$ (of which there are $|\mathrm{star}\{\mathbf{k}\}|$, i.e., the order of the star of $\mathbf{k}$). The induced irrep ${}^*D_{\mathbf{k}}^{\alpha}$ is consequently a $d_{\mathbf{k}}^{\alpha}|\mathrm{star}\{\mathbf{k}\}|\times d_{\mathbf{k}}^{\alpha}|\mathrm{star}\{\mathbf{k}\}|$ matrix.
Site symmetry irreps
To obtain irreps associated with a given site symmetry group (see SiteGroup
), use siteirreps
which obtains the irreps associated with the site symmetry group by identifying a "parent" point group which is isomorphic to the provided site symmetry group, and then returning a suitable permutation of the point group's irreps.
Time-reversal symmetry & "physically real" irreps
Irreps returned in Crystalline.jl do not assume time-reversal symmetry by default. To incorporate time-reversal symmetry (or, equivalently, to obtain associated "physically real" irreps - or, more technically, co-representations), which may cause irreps to "stick together", see realify
(which takes a vector of PGIrrep
s or LGIrrep
s).
As an example, the Γ₃, Γ₄, Γ₅, and Γ₆ irreps of point group 6 (C₆) are intrinsically complex in the absence of time-reversal symmetry:
using Crystalline
pgirs = pgirreps("6", Val(3))
characters(pgirs)
CharacterTable{3} for ⋕21 (6):
───────┬────────────────────────────────────────────────────────────────
│ Γ₁ Γ₂ Γ₃ Γ₄ Γ₅ Γ₆
───────┼────────────────────────────────────────────────────────────────
1 │ 1 1 1 1 1 1
3₀₀₁⁺ │ 1 1 -0.5+0.866im -0.5+0.866im -0.5-0.866im -0.5-0.866im
3₀₀₁⁻ │ 1 1 -0.5-0.866im -0.5-0.866im -0.5+0.866im -0.5+0.866im
2₀₀₁ │ 1 -1 1 -1 1 -1
6₀₀₁⁻ │ 1 -1 -0.5+0.866im 0.5-0.866im -0.5-0.866im 0.5+0.866im
6₀₀₁⁺ │ 1 -1 -0.5-0.866im 0.5+0.866im -0.5+0.866im 0.5-0.866im
───────┴────────────────────────────────────────────────────────────────
When time-reversal symmetry is incorporated, the irreps stick together pairwise and have real characters:
pgirs′ = realify(pgirs)
characters(pgirs′)
CharacterTable{3} for ⋕21 (6):
───────┬────────────────────
│ Γ₁ Γ₂ Γ₃Γ₅ Γ₄Γ₆
───────┼────────────────────
1 │ 1 1 2 2
3₀₀₁⁺ │ 1 1 -1 -1
3₀₀₁⁻ │ 1 1 -1 -1
2₀₀₁ │ 1 -1 2 -2
6₀₀₁⁻ │ 1 -1 -1 1
6₀₀₁⁺ │ 1 -1 -1 1
───────┴────────────────────
To inspect the reality type of a given irrep, see reality
. Possible types are REAL
, COMPLEX
, and PSEUDOREAL
(the latter does not arise for point groups):
label.(pgirs) .=> reality.(pgirs)
6-element Vector{Pair{String, Reality}}:
"Γ₁" => REAL
"Γ₂" => REAL
"Γ₃" => COMPLEX
"Γ₄" => COMPLEX
"Γ₅" => COMPLEX
"Γ₆" => COMPLEX
The reality type can be computed ab initio via calc_reality
, using the Frobenius criterion for PGIrrep
s and SiteIrrep
s and the Herring criterion for LGIrrep
s.
Data sources
Point group irreps are obtained from the Bilbao Crystallographic Server's Representations PG program and little group irreps of space groups are obtained from ISOTROPY's 2011 ISO-IR dataset.
If these functionalities are used in published research, please cite the original publications (listed in associated function docstrings).
- InuiInui, Tanabe, & Onodera, Group Theory and its Applications in Physics, Springer (1990). Section 11.9.
- 1Cracknell, A.P., Davies, B.L., Miller, S.C., & Love, W.F., Kronecker Product Tables, Vol. 1. General Introduction and Tables of Irreducible Representations of Space Groups, New York: IFI/Plenum (1979).
- 2Koster, G.F., Dimmock, J.O., Wheeler, R.G., & Statz, H., Properties of the Thirty-two Point Groups, Cambridge: MIT Press (1963).