# bandgap.io

## Irreducible Brillouin Zones and Band Structures

In Bloch's Theorem via representation theory we discussed how the discrete translational symmetry of a crystal leads to solutions of Schrodinger's equations which are highly structured, in the sense that translations of the wavefunctions can be computed via phase shifts. The goal of this post is to obtain a greater understanding of Brillouin zones and band structures, but first we need to review a few aspects of Bloch's theorem that weren't relevant to the aforementioned post. Our fundamental conclusion was that if $$\mathcal{H}\psi = E\psi$$ then $$\psi(\mathbf{r} + \mathfrak{t}) = \exp(i\mathbf{k}\cdot\mathfrak{t})\psi(\mathbf{r})$$ where $$\mathbf{k} := \frac{n_1}{N_1}\mathbf{b}_1 + \frac{n_2}{N_2}\mathbf{b}_2 + \frac{n_3}{N_3}\mathbf{b}_3$$ and $$\mathfrak{t} := m_1\mathbf{a}_1 + m_2\mathbf{a}_2 + m_3\mathbf{a}_3$$ is a translation vector of the crystal. Let $$u_{\mathbf{k}}(\mathbf{r}) := \exp(-i\mathbf{k}\cdot \mathbf{r})\psi(\mathbf{r})$$. A quick calculation shows that $$u_{\mathbf{k}}$$ has the same periodicity of the lattice, i.e., $$u_{\mathbf{k}}(\mathbf{r} + \mathfrak{t}) = u_{\mathbf{k}}(\mathbf{r})$$. By turning this around, we see that $$|\psi|^{2}$$ takes the same value at any two points that differs by a lattice vector, and hence the probability of an electron in a given unit cell is the same as it being in any other unit cell. Hence we can use translation symmetry to reduce computation. To wit, our original goal was to solve \begin{align}\label{periodic_schrod} -\frac{1}{2}\nabla^2 \psi + V\psi = E\psi, \end{align} within the entire crystal. But since we know that $$\psi(\mathbf{r}) = e^{i\mathbf{k}\cdot \mathbf{r}}u_{\mathbf{k}}(\mathbf{r})$$, we have \begin{align*} -\frac{1}{2}\nabla^2 \psi &= -\frac{1}{2}\nabla\cdot\left(i\mathbf{k}e^{i\mathbf{k}\cdot \mathbf{r}}u_{\mathbf{k}}(\mathbf{r}) + e^{i\mathbf{k}\cdot \mathbf{r}} \nabla u_{\mathbf{k}} \right) \\ &= \frac{1}{2}\left(k^2e^{i\mathbf{k}\cdot \mathbf{r}}u_{\mathbf{k}}(\mathbf{r}) - 2ie^{i\mathbf{k}\cdot \mathbf{r}}\mathbf{k}\cdot \nabla u_{\mathbf{k}} - e^{i\mathbf{k}\cdot \mathbf{r}} \nabla^2u_{\mathbf{k}}\right) \\ &= -\frac{1}{2}e^{i\mathbf{k}\cdot\mathbf{r}}(\nabla + i\mathbf{k})^{2}u_{\mathbf{k}} \end{align*} which shows that instead of solving (\ref{periodic_schrod}) we can instead solve \begin{align}\label{schrod_unit_cell} \mathcal{H}_{\mathbf{k}}u_{\mathbf{k}} := -\frac{1}{2}(\nabla + i\mathbf{k})^2u_{\mathbf{k}} + Vu_{\mathbf{k}} = E_{\mathbf{k}}u_{\mathbf{k}} \end{align} subject to periodic boundary conditions $$u_{\mathbf{k}}(\mathbf{r} + \mathfrak{t}) = u_{\mathbf{k}}(\mathbf{r})$$.

This is a huge win. Without Bloch's theorem, we need to solve a Sturm-Liouville problem over a domain the size of $${\sim}10^{23}$$ unit cells. With Bloch's theorem, we only need to sample some values of $$\mathbf{k}$$ in the Brillouin zone and solve (\ref{schrod_unit_cell}) in one unit cell. But we can do even better than this. Since most crystals have point group symmetries in addition to translational symmetries, the number of $$\mathbf{k}$$ values for which we need to solve (\ref{schrod_unit_cell}) is reduced dramatically. In addition, the point group symmetries will give some justification to our traditional presentation of band structure-requiring in general a 4D map-but by exploitation of symmetry can be presentated as a multivalued 2D graph of $$E$$ vs $$\mathbf{k}(t)$$ where $$t \mapsto \mathbf{k}(t)$$ is known as a k-path.

Buckle up kids because this is gonna be hard. To understand these ideas we will need to understand

• point groups and space groups
• Seitz symbols
• irreducible representations of some space groups
• the orbit and stabilizer of the crystal momentum $$\mathbf{k}$$
• high-symmetry points of the Brillouin zone
Let's get goin':

Define the orthogonal group in three dimensions by \begin{align*} \mathbf{O}(3) := \{ \mathbf{A} \in \mathbf{GL}(3, \mathbb{R}) \colon \mathbf{A}^{T} = \mathbf{A}^{-1}\} \end{align*} and the translation group $$\mathbf{T}(3) := \{\mathfrak{t} \in \mathbb{R}^3\}$$ with the group operation being vector addition. We can combine $$\mathbf{O}(3)$$ and $$\mathbf{T}(3)$$ into the Euclidean group $$\mathbf{E}(3)$$, which acts on $$\mathbb{R}^3$$ by \begin{align*} \{\mathbf{A}|\mathfrak{t}\} \mathbf{r} := \mathbf{A}\mathbf{r} + \mathfrak{t} \end{align*} The notation $$\{\mathbf{A}|\mathfrak{t}\}$$ is called the Seitz symbol. The multiplication of Seitz symbols is given by \begin{align*} \{\mathbf{A}_1|\mathfrak{t}_1\}\{\mathbf{A}_2|\mathfrak{t}_2\} = \{\mathbf{A}_1\mathbf{A}_2|\mathbf{A}_1\mathfrak{t}_2 + \mathfrak{t}_1\} \end{align*} Proving that $$\mathbf{E}(3)$$ is a group is an easy calculation: The identity of $$\mathbf{E}(3)$$ is $$\{\mathbf{I}|0\}$$, $$\{\mathbf{A}|\mathfrak{t}\}^{-1} = \{\mathbf{A}^{-1}| -\mathbf{A}^{-1}\mathfrak{t}\}$$, closure exhibited in the definition of the multiplication and associativity inherited. $$\{\mathbf{O}(3)|\mathbf{0}\}$$ is a subgroup of $$\mathbf{E}(3)$$, and $$\{\mathbf{I}|\mathbf{T}(3)\}$$ is a normal subgroup: \begin{align*} \{\mathbf{A}|\tau\}\{\mathbf{I}|\mathfrak{t}\}\{\mathbf{A}|\tau\}^{-1} &= \{\mathbf{A}|\mathbf{A}\mathfrak{t} + \tau\}\{\mathbf{A}^{-1}|-\mathbf{A}^{-1}\tau\} = \{\mathbf{I}|\mathbf{A}\mathfrak{t}\} \end{align*} Because

• $$\mathbf{O}(3)$$ is a subgroup
• $$\mathbf{T}(3)$$ is a normal subgroup
• $$\mathbf{O}(3)\cap \mathbf{T}(3) = \{\mathbf{I}| \mathbf{0}\}$$
• and $$\mathbf{E}(3) = \{\mathbf{I}|\mathbf{T}(3)\}\{\mathbf{O}(3)|\mathbf{0}\}$$
we say that the Euclidean group is the semidirect product of $$\mathbf{O}(3)$$ and $$\mathbf{T}(3)$$ and write $$\mathbf{E}(3) = \mathbf{O}(3)\ltimes \mathbf{T}(3)$$. (It is certainly not the direct product of $$\mathbf{O}(3)$$ and $$\mathbf{T}(3)$$ because the direct product group operation is $$(\mathbf{A}_1, \mathfrak{t}_1)(\mathbf{A}_2, \mathfrak{t}_2) = (\mathbf{A}_1\mathbf{A}_2, \mathfrak{t}_1+\mathbf{t}_2)$$.)

The Euclidean group is a continuous group. Insertion of a crystal lattice into $$\mathbb{R}^3$$ breaks the continuous symmetry and gives us a discrete symmetry group as a subgroup of the Euclidean group. The set of all $$\{\mathbf{A}|\mathfrak{t}\} \in \mathbf{E}(3)$$ that are also symmetries of the crystal gives us the space group $$\mathbf{S}$$. Let $$\{\mathbf{A}|\mathfrak{t}\} \in \mathbf{S}$$ be associated with a symmetry operator $$P_{\{\mathbf{A}|\mathfrak{t}\}}$$ in the standard way by defining $$P_{\{\mathbf{A}|\mathfrak{t}\}}\psi(\mathbf{r}) := \psi(\{\mathbf{A}|\mathfrak{t}\}^{-1}\mathbf{r})$$. Then the condition that $$\{\mathbf{A}|\mathfrak{t}\}$$ is a symmetry of the crystal implies that $$[\mathcal{H}, P_{\{\mathbf{A}|\mathfrak{t}\}}] = 0$$ and \begin{align*} \mathcal{H} \psi = E\psi \iff \mathcal{H}P_{\{\mathbf{A}|\mathfrak{t}\}}\psi = EP_{\{\mathbf{A}|\mathfrak{t}\}}\psi \end{align*} The most general way to proceed is to study the representations of the space group directly. But this group is massive, containing $${\sim}10^{23}$$ elements, and the representations become unwieldy. So instead it would be nice to extend our existing understanding of the translational symmetry of the crystal by studying the action of the rotations on the Bloch waves. If we could write $$\{\mathbf{A}|\mathfrak{t}\} = \{\mathbf{I}|\mathfrak{t}\}\{\mathbf{A}|\mathbf{0}\}$$, this goal could be realized, but in general, this factorization cannot be achieved due to non-symmorphic operations. We must formalize to proceed further.

Let $$\mathbf{S}$$ be the space group of some crystal and let $$\phi\colon \mathbf{S} \to \mathrm{Im}(\phi) \subset \mathbf{O}(3)$$ be defined by \begin{align*} \phi(\{\mathbf{A}|\mathfrak{t}\}) = \mathbf{A} \end{align*} We call the image of $$\phi$$ the point group of the crystal, which we will denote $$\mathbf{P}$$. To clarify this definition, it might be of use to the reader to prove that $$\phi$$ is a homomorphism and that $$\mathbf{P} =\mathrm{Im}(\phi)$$ is indeed a group. Note that $$\{\mathbf{P}|\mathbf{0}\}$$ is not necessarily a subset of $$\mathbf{S}$$. There can exist non-symmorphic operations such that $$\{\mathbf{A}|\tau\} \in \mathbf{S}$$, but $$\{\mathbf{A}|\mathbf{0}\} \not \in \mathbf{S}$$ and $$\{\mathbf{I}|\tau\}\not\in \mathbf{S}$$. Examples of non-symmorphic space group elements are screw axes and glide planes. Because the natural embedding of $$\mathbf{P}$$ into $$\mathbf{O}(3)$$ via $$\mathbf{A}\mapsto \{\mathbf{A}|\mathbf{0}\}$$ is not necessarily even a subset of the space group $$\mathbf{S}$$, the space group is no longer the semidirect product of the point group and translation group. The insertion of a lattice into empty space breaks not only the continuous symmetry of $$\mathbf{E}(3)$$, but also its structure as a semidirect product.

The kernel of $$\phi$$ are the translations $$\{\mathbf{I}|\mathfrak{t}\}$$ where $$\mathfrak{t} = n_1\mathbf{a}_1 + n_2\mathbf{a}_2 + n_3\mathbf{a}_3$$. (That translations are the only elements of the kernel is harder to prove, and I know of no slick way of demonstrating it. In the case that $$\{\mathbf{A}|\tau\}$$ is a screw axis, the proof that $$\mathbf{A}\mathfrak{t} \in \mathbf{T} \, \forall \mathfrak{t} \in \mathbf{T}$$ is shown graphically in Space Groups for Solid State Scientists. Please hit me up if you know a good proof.) Even though the discrete lattice has broken the semidirect product stucture, since translations are still a normal subgroup of the space group, we can form the factor group $$\mathbf{S}\setminus \mathbf{T}$$. The point group $$\mathbf{P}$$ is isomorphic to the factor group $$\mathbf{S}\setminus\mathbf{T}$$. A representative of the factor group has the form $$\{\mathbf{A}|\tau\}\{\mathbf{I}|\mathbf{t}_{n}\}$$, and under the image of $$\phi$$ we obtain $$\mathbf{A}$$, showing $$\phi$$ covers $$\mathbf{P}$$. Now assume that $$\phi(\{\mathbf{A}|\tau_1\}\{\mathbf{I}|\mathbf{t}_{n}\}) = \phi(\{\mathbf{A}|\tau_2\}\{\mathbf{I}|\mathbf{t}_{m}\})$$. Because $$\phi$$ is a homomorphism with translational kernel, $$\phi(\{\mathbf{A}|\tau_1\}) = \phi(\{\mathbf{A}|\tau_2\})$$. But both $$\{\mathbf{A}|\tau_1\}$$ and $$\{\mathbf{A}|\tau_1\}$$ are elements of $$\mathbf{S}$$, which is a group, so \begin{align*} \{\mathbf{A}|\tau_1\}\{\mathbf{A}|\tau_2\}^{-1} = \{\mathbf{I}|\tau_1 -\tau_2\} \in \mathbf{S} \end{align*} and hence $$\tau_1 - \tau_2 \in \mathbf{T}$$ showing that $$\{\mathbf{A}|\tau_1\}$$ and $$\{\mathbf{A}|\tau_2\}$$ are elements of the same coset. Hence $$\phi$$ is an isomorphism from $$\mathbf{S}\setminus \mathbf{T}$$ to $$\mathbf{P}$$.

The purpose of studying the isomorphism between the point group and the factor group $$\mathbf{S}\setminus \mathbf{T}$$ becomes more clear in reciprocal space. The action of a space group operation on a Bloch function is \begin{align*} P_{\{\mathbf{A}|\tau\}}e^{i\mathbf{k}\cdot \mathbf{r}}u_{\mathbf{k}} = e^{i\mathbf{A}\mathbf{k}\cdot\tau}e^{i\mathbf{A}\mathbf{k}\cdot \mathbf{r}}P_{\{\mathbf{A}|\tau\}}u_{\mathbf{k}} \sim e^{i\mathbf{A}\mathbf{k}\cdot \mathbf{r}}P_{\{\mathbf{A}|\tau\}}u_{\mathbf{k}} \end{align*} where the $$\sim$$ indicates the fact that wavefunctions are only defined up to a global phase. $$P_{\{\mathbf{A}|\tau\}}u_{\mathbf{k}}$$ is invariant under lattice translations just like $$u_{\mathbf{k}}$$, so $$P_{\{\mathbf{A}|\tau\}}e^{i\mathbf{k}\cdot \mathbf{r}}u_{\mathbf{k}}$$ is also a Bloch wave. Because the effect of the nonsymmorphic translation $$\tau$$ is a global phase shift, we see that the point group is the natural group to study in reciprocal space.

So clarify this idea, let $$\{\mathbf{A}|\tau\} \in \mathbf{S}$$. Then $$\mathcal{H}_{\mathbf{A}\mathbf{k}}$$ and $$\mathcal{H}_{\mathbf{k}}$$ are isospectral. The idea is that $$\mathcal{H}_{\mathbf{A}\mathbf{k}}$$ and $$P_{\{\mathbf{A}|\tau\}}$$ almost commute, in that \begin{align}\label{almost_commute} \mathcal{H}_{\mathbf{A}\mathbf{k}}P_{\{\mathbf{A}|\tau\}} = P_{\{\mathbf{A}|\tau\}}\mathcal{H}_{\mathbf{k}} \end{align} Using standard manipulations $$[\nabla^2, P_{\{\mathbf{A}|\tau\}}] = 0$$, $$[V, P_{\{\mathbf{A}|\tau\}}] = 0$$, and $$\mathbf{A}\mathbf{k}\cdot \mathbf{A}\mathbf{k} = \mathbf{k}\cdot\mathbf{k}$$ reduces the claim of (\ref{almost_commute}) to \begin{align*} \mathbf{A}\mathbf{k}\cdot \nabla (P_{\{\mathbf{A}|\tau\}}\phi) = P_{\{\mathbf{A}|\tau\}} \mathbf{k}\cdot\nabla\phi \end{align*} This says that the derivative of the rotated function in the direction of the rotated vector is the same as rotating the directional derivative, which is easily visualized. I find this mental picture of rotating the graph of a function fairly intuitive, but the same thing can be proved using the chain rule for the gradient. The claim is now easy: \begin{align*} \mathcal{H}_{\mathbf{k}}u_{\mathbf{k}} &= Eu_{\mathbf{k}} &\implies &\mathcal{H}_{\mathbf{A}\mathbf{k}}P_{\{\mathbf{A}|\tau\}}u_{\mathbf{k}} = P_{\{\mathbf{A}|\tau\}}\mathcal{H}_{\mathbf{k}}u_{\mathbf{k}} = EP_{\{\mathbf{A}|\tau\}}u_{\mathbf{k}} \\ \mathcal{H}_{\mathbf{A}\mathbf{k}}u_{\mathbf{A}\mathbf{k}} &= Eu_{\mathbf{A}\mathbf{k}} &\implies& \mathcal{H}_{\mathbf{k}}P_{\{\mathbf{A}|0\}}^{-1}u_{\mathbf{A}\mathbf{k}} = P_{\{\mathbf{A}|\tau\}}^{-1}\mathcal{H}_{\mathbf{A}\mathbf{k}}u_{\mathbf{A}\mathbf{k}} = EP_{\{\mathbf{A}|\tau\}}^{-1}u_{\mathbf{A}\mathbf{k}} \end{align*} Since $$\mathcal{H}_{\mathbf{k}}$$ and $$\mathcal{H}_{\mathbf{A}\mathbf{k}}$$ are isospectral, so are $$\mathcal{H}_{\mathbf{A}\mathbf{k}}$$ and $$\mathcal{H}_{\mathbf{A}^2\mathbf{k}}$$. This suggests that we study the orbit of $$\mathbf{k}$$ under the action of the point group $$\mathbf{P} \cong \mathbf{S}\setminus \mathbf{T}$$: \begin{align*} \mathbf{P}\cdot \mathbf{k} := \{\mathbf{A}\mathbf{k} \colon \mathbf{A} \in \mathbf{P}\} \end{align*} The orbits of the crystal momenta partition the Brillouin zone into equivalence classes, because the relation "$$\mathbf{k}_1$$ is in the orbit of $$\mathbf{k}_2$$" is an equivalence relation. Hence we only need to solve (\ref{schrod_unit_cell}) once for each equivalence class, because all other representatives of the class have the same energy levels. The smallest convex subset of the Brillouin zone that contains a representative from each orbit is called an irreducible Brillouin zone. (Note: If the crystal lacks inversion symmetry, then $$E(\mathbf{k})$$ and $$E(-\mathbf{k})$$ must be calculated independently, and the irreducible Brillouin zone consists of two convex components which meet at $$\mathbf{k} = 0$$.)

Although we $$\mathcal{H}_{\mathbf{A}\mathbf{k}}$$ and $$\mathcal{H}_{\mathbf{k}}$$ are isospectral, we do not say that $$u_{\mathbf{A}\mathbf{k}}$$ and $$u_{\mathbf{k}}$$ are degenerate--since we reserve that term for linearly independent wavefunctions solving the same Hamiltonian. There are circumstances where $$u_{\mathbf{A}\mathbf{k}}$$ and $$u_{\mathbf{k}}$$ are in fact degenerate: When $$\mathbf{A}\cdot \mathbf{k} = \mathbf{k} + \mathbf{K}$$ where $$\mathbf{K}$$ is a reciprocal lattice vector. This suggests we study the stabilizer group of $$\mathbf{k}$$: \begin{align*} \mathrm{Stab}(\mathbf{k}) := \{ \mathbf{A} \in \mathbf{P}: \mathbf{A}\mathbf{k} = \mathbf{k} + \mathbf{K}\} \end{align*} It is a standard result that the stabilizer is a subgroup of the point group. If $$|\mathrm{Stab}(\mathbf{k})| > 1$$, then we say that $$\mathbf{k}$$ is a high-symmetry point.

High-symmetry points are used to create band structure diagrams. The band structure the information contained in the multivalued function $$E(\mathbf{k})$$. Since $$E(\mathbf{k} + \mathbf{K}) = E(\mathbf{k})$$ for any $$\mathbf{K}$$ in the reciprocal lattice, then we understand the band structure if we understand it in a single Brillouin zone. In addition, since $$E(\mathbf{A}\mathbf{k}) = E(\mathbf{k})$$, we understand the bandstructure if we understand it in the irreducible Brillouin zone ($$\mathrm{IBZ}$$). Unfortunately, even with this simplification, \begin{align*} E\colon \mathrm{IBZ}\subset \mathbb{R}^{3} \to \mathbb{R} \end{align*} so we need 4-dimensional graph paper to plot our bands. The way that physicists have wriggled out of this dilemma is to create k-paths, which are maps $$t \mapsto \mathbf{k}(t)$$. Then the multi-valued 2D graph of $$E(\mathbf{k}(t))$$ vs $$t$$ is displayed. The problem with this is that there is no obvious choice for the k-path of a given $$\mathrm{IBZ}$$. Band structure diagrams computed by bandgap.io use k-paths defined by Hinuma, et. al, but other reasonable choices can be made. One guiding principle of choosing a k-path is that we should connect high-symmetry points by traveling along high-symmetry lines. Since high-symmetry points exhibit more degeneracy than generic points in the $$\mathrm{IBZ}$$, there are fewer bands along these lines, making the task of interpretation of the band structure diagram a little easier. There is no guarantee that all the information of interest is contained along a chosen k-path, and war stories related to confusion from this problem abound. (Note: Hopefully this problem will be solved soon: I'm working on the code to present surfaces above slices through the IBZ. The user will be able to evolve these surfaces by manipulation of the pitch and roll of the slice. Sign up for an account to be notified when this feature drops.)

To illustrate these ideas, we'll consider graphene. Graphene is a great example, because it's a 2D material with a symmorphic space group. In common three-dimensional materials, there are so many group operations that we get worn out long before we can extract some insight from the problem. The point group of graphene is $$D_{6h} := D_{6}\times \{E, \sigma_{h}\}$$, where $$\{E, \sigma_{h}\}$$ is the reflection in the plane containing the carbon atoms. This group is incredibly simple so we can understand its representations immediately. By the dimension formula we know that all its finite-dimensional irreps are 1-dimensional, and there are two of them: The trivial representation $$\Gamma_0(E) = \Gamma_0(\sigma_h) = 1$$ and $$\Gamma_1(\sigma_h) = -1$$. Hence for any solution $$\psi$$ of (\ref{periodic_schrod}) in graphene which transforms as an irreducible representation of $$\{E, \sigma_h\}$$ \begin{align*} P_{\sigma_h}\psi(x,y,z) = \psi(x, y, -z) = \pm \psi(x,y,z) \end{align*} Hence if we restrict ourselves to consideration of solutions which are either even or odd under reflection in the $$z$$-plane, we can understand the representations of $$D_{6h}$$ by understanding representations of $$D_{6}$$. $$D_6$$ is the symmetry group of the regular hexagon. The symmetry operations are the six rotations by multiples of $$2\pi/6$$, the three reflections in the planes which bisect the faces of the hexagon, and the three reflections in the planes that intersect the vertices of the hexagon. The entire multiplication table of $$D_{6}$$ can be generated by two elements $$a, b$$ which obey \begin{align}\label{d6_mults} a^6 = e,\quad b^2 = e,\quad ba = a^{-1}b. \end{align} Using these multiplication rules we find 6 conjugacy classes \begin{align*} \{e\}, \{a^3\}, \{a, a^5\}, \{a^2, a^4\}, \{b, a^2b, a^4b\}, \{ab, a^3b,, a^5b\} \end{align*} The group is order 12, so by the dimension formula \begin{align*} 12 &= 3^2 + 3\cdot 1^2 \\ &= 2\cdot 2^2 + 4\cdot 1^2 \\ &= 2^2 + 8\cdot 1^2 \\ &= 12\cdot 1^2 \end{align*} we have the possible dimensions of the irreducible representations. But since we have 6 conjugacy classes (=#irreps), then we know that in fact the only acceptable solution is $$12 = 2\cdot 2^2 + 4\cdot 1^2$$ (two 2d irreps and four 1d irreps). Hence the possible degeneracies of solutions to (\ref{periodic_schrod}) in graphene are either 1 or 2, with no other possibilities.

References:
• Seitz, Frederick. “On the Reduction of Space Groups.” Annals of Mathematics, vol. 37, no. 1, 1936, pp. 17–28. JSTOR, JSTOR, www.jstor.org/stable/1968683.
• Glazer, Michael, Gerald Burns, and Alexander N. Glazer. Space groups for solid state scientists. Elsevier, 2012.
• Hinuma, Yoyo, et al. "Band structure diagram paths based on crystallography." Computational Materials Science 128 (2017): 140-184.
• Dresselhaus, Mildred S., Gene Dresselhaus, and Ado Jorio. Group theory: application to the physics of condensed matter. Springer Science & Business Media, 2007.
• Tinkham, Michael. Group theory and quantum mechanics. Courier Corporation, 2003.