Band representations

Crystalline.jl computes the band representations (BRs) across all maximal[1] Wyckoff positions directly, via bandreps. The resulting representations are consistent with those tabulated e.g., by the Bilbao Crystallographic Server's BANDREP program.

As an example, we can obtain all the inequivalent BRs of space group 219 (F-43c) with:

using Crystalline

brs = bandreps(219, Val(3)) # space group 219 (dimension 3)
12-element Collection{BandRep{3}} for ⋕219 (F-43c) over 14 irreps (spinless w/TR):
──────┬──────────────────────────────────────────────────────
      │ 24d  24d  24d  24c  24c  24c  8b  8b  8b  8a  8a  8a 
      │  A    B    E    A    B    E   A   E   T   A   E   T  
──────┼──────────────────────────────────────────────────────
 Γ₁   │  1    ·    ·    1    ·    ·   1   ·   ·   1   ·   ·  
 Γ₂   │  ·    1    ·    ·    1    ·   1   ·   ·   1   ·   ·  
 Γ₃   │  1    1    ·    1    1    ·   ·   2   ·   ·   2   ·  
 Γ₄   │  ·    1    2    ·    1    2   ·   ·   1   ·   ·   1  
 Γ₅   │  1    ·    2    1    ·    2   ·   ·   1   ·   ·   1  
 X₁   │  2    1    ·    ·    1    2   ·   ·   1   1   2   ·
 X₂   │  1    2    ·    1    ·    2   ·   ·   1   1   2   ·
 X₃   │  ·    1    2    2    1    ·   1   2   ·   ·   ·   1
 X₄   │  1    ·    2    1    2    ·   1   2   ·   ·   ·   1
 X₅   │  1    1    4    1    1    4   ·   ·   2   ·   ·   2
 L₁L₂ │  1    1    2    1    1    2   1   ·   1   1   ·   1  
 L₃L₃ │  1    1    2    1    1    2   ·   1   1   ·   1   1  
 W₁W₂ │  2    2    2    1    1    4   ·   ·   2   1   2   1
 W₃W₄ │  1    1    4    2    2    2   1   2   1   ·   ·   2
──────┼──────────────────────────────────────────────────────
 μ    │  6    6   12    6    6   12   2   4   6   2   4   6  
──────┴──────────────────────────────────────────────────────

which returns a Collection{BandRep{3}}, whose iterants are BandRep{3}s. We can inspect any individual vector in brs, e.g.:

brs[10] # obtain the BR induced by Wyckoff position 8a with irrep A
14-irrep BandRep{3} (spinless):
 (8a|A): [Γ₁+Γ₂, X₁+X₂, L₁L₂, W₁W₂] (2 bands)

By default, bandreps treats spinless systems; band representations of spinful systems are obtained with the keyword argument spinful = Val(true) (see Double groups & spinful irreps). The presence or absence of time-reversal symmetry can be controlled with the keyword arguments timereversal (default, true). By default, only maximal k-points are included in the projection onto little group irreps; additional k-points (e.g., high-symmetry lines and planes) can be obtained by setting the keyword argument allpaths = true (default, false).

A set of BRs can be used as the basis for several analyses. For instance, we can use the BRs to compute the symmetry indicator group, summarizing the distinct topological classes identifiable from symmetry. Crystalline.jl implements indicator_group and indicator_group_as_string, which uses the Smith normal form's elementary factors to this end:

indicator_group_as_string(brs)
"Z₁"

Which demonstrates that the symmetry indicator group of spinless particles with time-reversal symmetry in space group 219 is trivial.

indicator_group
indicator_group_as_string

Topological analysis

A BR basis can also be used to analyze SymmetryVectors, including their topology and whether they fulfil compatibility relations.

iscompatible
calc_topology
symmetry_indicators

Associated bases

The SymmetryBases.jl package provides additional tools to analyze fragile topology and to compute associated Hilbert bases.

API

Crystalline.bandreps — Function
bandreps(
    sgnum::Integer,
    ::Val{D}=Val(3);
    spinful::Union{Bool, Val{true}, Val{false}}=Val(false),
    timereversal::Bool=true,
    allpaths::Bool=false,
    explicitly_real::Bool=timereversal
) --> Collection{BandRep{D}}

bandreps( # type-unstable convenience accessor
    sgnum::Integer,
    D::Integer;
    kws...
) --> Collection{BandRep{D}}

Compute the band representations of space group sgnum in dimension D.

If spinful is Val(true) (or true), the spinful band representations are computed instead, induced from the double-valued site symmetry irreps (see siteirreps) and subduced onto the double-valued little group irreps (currently available in 3D only). As for D, the Val spelling keeps the return type inferrable and the Bool spelling does not.

Keyword arguments

  • timereversal (default, true): whether the irreps used to induce the band representations are assumed to be time-reversal invariant (i.e., are coreps, see realify).
  • allpaths (default, false): whether the band representations are projected to all distinct k-points returned by lgirreps (allpaths = false), including high-symmetry k-lines and -plane, or only to the maximal k-points (allpaths = true), i.e., just to high-symmetry points.
  • explicitly_real (default, timereversal): whether, if timereversal = true, to ensure that the site symmetry irreps accompanying the band representations are chosen in the canonical form associated with time reversal (see physical_realify), i.e., explicitly real for spinless irreps and J*conj(D)*J' = D for spinful ones. This can be helpful for subsequent analysis involving the action of time-reversal symmetry.
  • include_nonmaximal (default, false): whether to include band representations induced from site symmetry irreps of non-maximal Wyckoff positions. Passing as true will include band representations induced from all Wyckoff positions, regardless of maximality.

Notes

All band representations associated with maximal Wyckoff positions are returned, irregardless of whether they are elementary (i.e., no regard is made to whether the band representation is "composite"). As such, the returned band representations generally are a superset of the set of elementary band representations (and so contain all elementary band representations).

Implementation

The implementation is based on Cano, Bradlyn, Wang, Elcoro, et al., Phys. Rev. B 97, 035139 (2018), Sections II.C-D.

source
Crystalline.indicator_group — Function
indicator_group(F::Smith) -> Any

Return the symmetry indicator group $X^{\text{BS}}$ associated with an input set of band representations brs (or Smith decomposition thereof, F), i.e., return the the nontrivial (i.e., ≠ {0,1}) elementary factors of the Smith normal form of the band representation matrix. The return value is a Vector{Int} containing the nontrivial factors. If no nontrivial factors exists, the return value is an empty Vector{Int}.

See also indicator_group_as_string for a formatted string version.

Understanding

The symmetry indicator group answers the question "what direct product of $\mathbb{Z}_n$ groups is the the quotient group $X^{\text{BS}} = \{\text{BS}\}/\{\text{AI}\}$ isomorphic to?" (see e.g., Po, Watanabe, & Vishwanath, Nature Commun. 8, 50 (2017) for more information).

Example

julia> brs = bandreps(2, Val(3));

julia> indicator_group(brs)
4-element Vector{Int64}:
 2
 2
 2
 4
source
Crystalline.indicator_group_as_string — Function
indicator_group_as_string(
    nontriv_Λ::AbstractVector{<:Integer}
) -> String

Return the symmetry indicator group $X^{\text{BS}}$ as a formatted string (i.e., as "Zᵢ×Zⱼ×…"). See also indicator_group for a vector representation.

Example

julia> brs = bandreps(2, Val(3));

julia> indicator_group_as_string(brs)
"Z₂×Z₂×Z₂×Z₄"
source
Crystalline.basisdim — Function
basisdim(brs::Collection{<:BandRep})   --> Int
basisdim(B::AbstractMatrix{<:Integer}) --> Int
basisdim(F::Smith)                     --> Int

Return the dimension of the (linearly independent parts) of a band representation basis. This is $d^{\text{bs}} = d^{\text{ai}}$ in the notation of Po, Watanabe, & Vishwanath, Nature Commun. 8, 50 (2017), or equivalently, the rank of stack(brs) over the ring of integers. This is the number of linearly independent basis vectors that span the expansions of a band structure viewed as symmetry data.

source
Crystalline.smith_column_bases — Function
smith_column_bases(brs::Collection{<:BandRep})   --> @NamedTuple{S̃, Λ, S̃⁻¹}
smith_column_bases(B::AbstractMatrix{<:Integer}) --> @NamedTuple{S̃, Λ, S̃⁻¹}
smith_column_bases(F::Smith)                     --> @NamedTuple{S̃, Λ, S̃⁻¹}

Return the parts of the Smith normal decomposition of a set of band representations brs (or of its matrix B, or of a Smith decomposition F thereof) that pertain to the column space of the band representation matrix, i.e. the parts associated with the $d^{\text{bs}} =$ basisdim(brs) nonzero elementary factors of $\boldsymbol{\Lambda}$:

  • S̃: the first $d^{\text{bs}}$ columns of $\mathbf{S}$; an integer-coefficient basis for all gapped band structures {BS}.
  • Λ: the first $d^{\text{bs}}$ elements of $\boldsymbol{\Lambda}$, i.e. its nonzero elementary factors $\lambda_1, \ldots, \lambda_{d^{\text{bs}}}$.
  • S̃⁻¹: the first $d^{\text{bs}}$ rows of $\mathbf{S}^{-1}$; these take a symmetry vector n to its coefficients in S̃, i.e. S̃⁻¹*n.

Note that S̃⁻¹ is a slice of $\mathbf{S}^{-1}$, not the inverse of the (generally nonsquare) S̃; the two nevertheless satisfy S̃⁻¹*S̃ == I. All three returned quantities are views into F, so nothing is allocated.

A basis for the atomic insulators {AI} — the bands induced by localized orbitals at the Wyckoff positions — is S̃*Diagonal(Λ). A symmetry vector that can be expanded on that basis with positive integer coefficients is a trivial insulator (i.e., deformable to an atomic limit); one that cannot is topological, either fragilely (some negative coefficients) or strongly (fractional coefficients). calc_topology distinguishes the strong case from Λ and S̃⁻¹ alone.

Implementation

For an n×m integer matrix $\mathbf{B}$, the Smith normal form gives integer matrices $\mathbf{S}$, $\mathrm{diagm}(\boldsymbol{\Lambda})$ and $\mathbf{T}$ (of size n×n, n×m and m×m, respectively) with $\mathbf{B} = \mathbf{S}\mathrm{diagm}(\boldsymbol{\Lambda})\mathbf{T}$, where $\boldsymbol{\Lambda} = [\lambda_1, \ldots, \lambda_r, 0, \ldots, 0]$ with $\lambda_{j+1}$ divisible by $\lambda_j$ and $r = d^{\text{bs}} \leq \min(n,m)$; $\mathbf{S}$ and $\mathbf{T}$ have integer-valued inverses.

Applying S̃⁻¹ to integer symmetry data $\mathbf{n}$ gives the integer factors $q_i C_i$ ($C_i = \lambda_i$ here) of Tang, Po, Vishwanath, & Wan, Nature Physics 15, 470 (2019).

source
  • 1Note that the band representations returned by bandreps need not be elementary; i.e., a band representation returned by bandreps may be "composite" in the "exceptional" sense defined in the original topological quantum chemistry papers (e.g., https://arxiv.org/pdf/1709.01935). The inclusion of a non-elementary band representation into a set of elementary band representations makes no difference for the purposes of analyzing band topology or band connectivity using this set, however. I.e., the set of band representations returned by bandreps is usually equivalent to the set tabulated by the Bilbao Crystallographic Server, and is otherwise a strict superset.