-
Anton Akhmerov authoredAnton Akhmerov authored
import matplotlib
from matplotlib import pyplot
import numpy as np
from common import draw_classic_axes, configure_plotting
configure_plotting()
pi = np.pi
The nearly free electron model & Bloch theorem
(based on chapter 15 of the book)
!!! success "Expected prior knowledge"
Before the start of this lecture, you should be able to:
- Write down the dispersion and wavefunction of an electron in free space (solving the Schrödinger equation).
- Describe how the periodicity of a band structure (= dispersion) is related to the reciprocal lattice.
- Write down a Fourier series representation of a periodic function.
- Diagonalize a 2x2 matrix (i.e., find its eigenvalues and eigenfunctions).
!!! summary "Learning goals"
After this lecture you should be able to:
- Derive the electron band structure when the interaction with the lattice is weak using the **Nearly free electron model**.
- Describe what momentum states of particles in a crystal may couple through the periodic lattice potential.
- Formulate a general way of computing the electron band structure - the **Bloch theorem**.
- Recall that in a periodic potential, all electron states are Bloch waves.
??? info "Lecture video"
<iframe width="100%" height="315" src="https://www.youtube-nocookie.com/embed/8Sbm4TFRjGc" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
Let's summarize what we learned about electrons so far:
- Free electrons are described by plane waves with a quadratic dispersion and form a Fermi sea (lecture 4)
- Electrons on isolated atoms live in discrete orbitals (lecture 5)
- When orbitals hybridize we get LCAO or tight-binding band structures (lecture 7)
In this lecture, we will analyze how electrons behave in solids using the nearly-free electron model. This model considers electrons as plane waves (as in the free electron model) that are weakly perturbed by the periodic potential associated with the atoms in a solid. This approach is opposite to that of the tight-binding model, where our starting point was that the electrons are strongly bound to the individual atoms and we included hopping to other atoms as a small effect. Perhaps surprisingly, we will find that the nearly-free electron model gives very similar results to the tight binding model: it also leads to the formation of energy bands, and these bands are separated by band gaps - regions in the band structure where there are no allowed energy states.
Nearly free electron model
In the free electron model, the dispersion is E = \hbar^2 |\mathbf{k}|^2/2m. The corresponding eigenfunctions |\mathbf{k}\rangle are plane waves with a real-space representation \psi(\mathbf{r}) \propto e^{i\mathbf{k}\cdot \mathbf{r}}. We note that in the free electron model,
- there is only one band
- the band structure is not periodic in k-space
- i.e., the Brillouin zone is infinite in k-space
Within the nearly free electron model we start from the dispersion relation of free electrons and analyze the effect of introducing a weak lattice potential. The logic is very similar to getting optical and acoustic phonon branches by changing atom masses (and thereby reducing the size of the Brillouin zone). The lattice potential results in a band structure that is periodic in k-space, with a period given by the period of the reciprocal lattice:
# Use colors from the default color cycle
default_colors = pyplot.rcParams['axes.prop_cycle'].by_key()['color']
blue, orange, *_ = default_colors
def energy(k, V=1):
k = (k + pi) % (2*pi) - pi
k_vals = k + 2*pi * np.arange(-1, 2)
h = np.diag(k_vals**2) + V * (1 - np.identity(3))
return np.linalg.eigvalsh(h)
energy = np.vectorize(energy, signature="(),()->(m)")
fig, ax = pyplot.subplots(1, 1)
momenta = np.linspace(-3*pi, 3*pi, 400)
energies = energy(momenta, 0)
max_en = 60
energies[energies > max_en] = np.nan
ax.plot(momenta, energies, c=blue)
energies = energy(momenta, 3)
max_en = 60
energies[energies > max_en] = np.nan
ax.plot(momenta, energies, c=orange)
ax.set_xlabel("$ka$")
ax.set_ylabel("$E$")
ax.set_ylim(-.5, max_en + 5)
ax.set_xticks(pi * np.arange(-3, 4))
ax.set_xticklabels(fr"${i}\pi$".replace("1", "") if i else "$0$" for i in range(-3, 4))
draw_classic_axes(ax, xlabeloffset=4)
In this figure, the orange curves represent the nearly-free electron dispersion, which differs from the free-electron dispersion (blue curves) because of the interaction with the lattice. We see that band gaps open where two copies of the free-electron dispersion cross. A key goal of this lecture is to understand how the weak interaction with the lattice leads to this modified band structure.
Analyzing the avoided crossings
Remark: An avoided crossing is an important concept in quantum mechanics that can be analyzed using perturbation theory. You will only learn this theory later in QMIII, so we will need to postulate some important facts here.
To analyze what happens near the crossings, we first neglect the lattice potential and consider the free-electron dispersion near the crossing at k=\pi/a in 1D. Near this crossing, we see that two copies of the dispersion come together (one copy centered at k=0, the other at k=2\pi/a). We call the corresponding plane-wave eigenfunctions |k\rangle and |k'\rangle =|k-2\pi/a\rangle. We now express the wavefunction near this crossing as a linear superposition |\psi\rangle = \alpha |k\rangle + \beta |k'\rangle. Note that this wave function is very similar to that used in the LCAO model, except there we used linear combinations of the orbitals |1\rangle and |2\rangle instead of the plane waves |k\rangle and |k'\rangle.
We express the Hamiltonian near the crossing as a matrix, using | k \rangle and | k' \rangle as the basis states. The matrix elements are given by \langle k |H|k\rangle = E_0 + v \hbar \delta k and \langle k' |H|k'\rangle = E_0 - v \hbar \delta k, where \delta k = k-\pi/a is the distance from the center of the crossing and we approximated the dispersion near the crossing by a linear term. In matrix form, this yields
H\begin{pmatrix}\alpha \\ \beta \end{pmatrix} = \begin{pmatrix} E_0 + v \hbar \delta k & 0 \\ 0 & E_0 - v \hbar \delta k\end{pmatrix} \begin{pmatrix}\alpha \\ \beta \end{pmatrix}.
Note that this Hamiltonian is diagonal, so the eigenenergies are on the diagonal and the eigenfunctions are simply the |k\rangle and |k'\rangle basis states.
??? question "calculate E_0 and the velocity v" The edge of the Brilloin zone has k = \pi/a. Substituting this in the free electron dispersion E = \hbar^2 k^2/2m we get E_0 = \hbar^2 \pi^2/2 m a^2, and v=\hbar k/m=\hbar \pi/ma.
As we will see below, the lattice potential V(x) can couple the states |k\rangle and |k'\rangle. The coupling between these states is given by the matrix element W=\langle k | V | k'\rangle. Including this coupling into the Hamiltonian:
H\begin{pmatrix}\alpha \\ \beta \end{pmatrix} = \begin{pmatrix} E_0 + v \hbar \delta k & W \\ W^* & E_0 - v \hbar \delta k\end{pmatrix} \begin{pmatrix}\alpha \\ \beta \end{pmatrix},
(This is where we applied perturbation theory, and this is very similar to the LCAO Hamiltonian where the coupling was given by -t=\langle 1 | H | 2 \rangle).
Dispersion near the avoided level crossing
To find the dispersion near k=\pi/a, we need to diagonalize this 2x2 matrix Hamiltonian. The solutions for the eigenvalues are E(\delta k) = E_0 \pm \sqrt{v^2\hbar^2\delta k^2 + |W|^2}
(Check out section 15.1.1 of the book for the details of this calculation). This equation describes the avoided crossing. We observe that the gap that has opened at \delta k=0 is equal to 2W.
Calculating the magnitude of the gaps
We will now show that W=\langle k | V |k' \rangle represents a Fourier component of the lattice potential. To see this, we express the lattice potential (which is periodic with V(x)=V(x+a)) as a Fourier series
V(x) = \sum_{n=-\infty}^{\infty} V_n e^{2\pi i n x/a}
and recall that such a series has Fourier components V_n given by
V_n = \frac{1}{a}\int_0^a e^{- i n 2\pi x /a} V(x) dx
Calculating W, we find
W = \langle k | V | k' \rangle = \frac{1}{a}\int_0^{a} e^{-i k x} V(x) e^{i k'x} dx = \frac{1}{a}\int_0^a e^{-i 2\pi x /a} V(x) dx = V_1
where we have used that k-k' =2\pi/a because we are analyzing the first crossing. We see that the first component of the Fourier-series representation of V(x) determines the gap near the first crossing.
Crossings between the higher bands
Everything we did can also be applied to the higher-energy crossings seen in the figure above. We note that all crossings occur between parabola's that are shifted by integer multiples of reciprocal lattice vectors n 2\pi/a. The first crossing corresponds to n=1, and we found that the magnitude of the gap is given by V_1. Similarly, V_2 determines the gap between the second and third bands, V_3 for the crossing between third and fourth, etc.
The key conclusion is that the lattice potential couples plane-wave states that differ by integer multiples of reciprocal lattice vectors. This coupling alters the band structure most strongly where the free-electron eigenenergies cross, opening up gaps of which the magnitudes are determined by the Fourier components of the lattice potential.
??? question "Suppose the lattice potential is V(x)=A\cos(2\pi/ax). At what locations in the dispersion does V(x) lead to the formation of gaps?" Hint: The Fourier series of V(x) is V(x)=A(e^{i2\pi/ax}+e^{-i2\pi/ax})/2, so the only non-zero Fourier components are V_1=V_{-1} = A/2.
General description of a band structure in a crystal - Bloch theorem
The different models considered thus far can be organized as a function of the strength of the lattice potential V(x):
We have seen that in the nearly-free electron model, the electrons behave as plane waves that are only slightly perturbed by the lattice potential. How is it possible that an electron that can scatter off all the atoms in a solid can even remotely look like a plane wave? The answer lies in that the periodic potential of the atoms can only scatter an electron between momentum states |\mathbf{k}\rangle and |\mathbf{k'}\rangle if these momenta differ by a reciprocal lattice vector. This condition is very similar to the Laue condition of X-ray scattering. In this lecture we have explicitly analyzed it in the context of the nearly-free electron model. The condition is known as the conservation of crystal momentum and is central to Bloch's theorem, which provides a general framework for computing band structures in crystals.
Bloch theorem:
All Hamiltonian eigenstates in a crystal have the form
\psi^\alpha(\mathbf{r}) = u^\alpha(\mathbf{r})e^{i\mathbf{k}\cdot \mathbf{r}}
with u^\alpha(\mathbf{r}) having the same periodicity as the lattice potential V(\mathbf{r}), and index \alpha labeling electron bands with energies E^\alpha(\mathbf{k}).
In other words: any electron wave function in a crystal is a product of a periodic part that describes electron motion within a unit cell and a plane wave. In both the tight-binding and the nearly-free electron models, the wave functions we considered are consistent with Bloch's theorem.
??? question "Does our nearly-free electron wavefunction |\psi\rangle = \alpha|k\rangle + \beta|k'\rangle satisfy the Bloch theorem? What is u(x) in this case?" The wave function has a form \psi(x) = \alpha \exp[ikx] + \beta \exp[i(k - 2\pi/a)x] (here k = \pi/a + \delta k). Choosing u(x) = \alpha + \beta \exp(2\pi i x/a) we see that \psi(x) = u(x) \exp(ikx).
Extra remarks
The wave function u^\alpha(\mathbf{r})e^{i\mathbf{k} \cdot \mathbf{r}} is called a Bloch wave.
The u^\alpha(\mathbf{r}) part is some unknown function. To calculate it we need to solve the Schrödinger equation. It is hard in general, but there are two limits when U is "weak" and U is "large" that provide us with most intuition.
If we change \mathbf{k} by a reciprocal lattice vector \mathbf{k} \rightarrow \mathbf{k} + h\mathbf{b}_1 + k\mathbf{b}_2 + l\mathbf{b}_3, and we change u^\alpha(\mathbf{r}) \rightarrow u^\alpha(\mathbf{r})\exp\left[i(-h\mathbf{b}_1 - k\mathbf{b}_2 - l\mathbf{b}_3)\cdot \mathbf{r}\right] (also periodic!), we obtain the same wave function. Therefore energies of all bands E^\alpha(\mathbf{k}) are periodic in reciprocal space with the periodicity of the reciprocal lattice.
An alternative way for expressing the Bloch wave is obtained by formulating u^\alpha(r) as a Fourier series:
u^\alpha(r) = \sum_\mathbf{G} u^{\alpha}_\mathbf{G}e^{i\mathbf{G}\cdot\mathbf{r}}
where u^{\alpha}_\mathbf{G} are the Fourier coefficients. Substituting this into our expression for the Bloch wave, we get
\psi^\alpha(r) = \sum_\mathbf{G} u^{\alpha}_\mathbf{G} e^{i(\mathbf{k}+\mathbf{G})\cdot\mathbf{r}}
which shows that each Bloch wave can be written as a sum over plane waves that differ by a reciprocal lattice vector.
??? question "Does the tight-binding wavefunction |\psi\rangle = \sum_n e^{ikna}(\phi_0|n,1\rangle+\psi_0|n,2\rangle) (see exercise 2 in Lecture 8) satisfy the Bloch theorem? What part of |\psi\rangle describes u(x) in this case? Try to describe in words how this Bloch wave is built up."
Repeated vs reduced vs extended Brillouin zone
There are several common ways to plot the same dispersion relation (no difference in physical information).
Repeated BZ (all possible Bloch bands):
fig
- Contains redundant information
- May be easier to count/follow the bands
Reduced BZ (all bands within 1st BZ):
fig, ax = pyplot.subplots(1, 1)
momenta = np.linspace(-pi, pi, 400)
energies = energy(momenta, 0)
max_en = 60
energies[energies > max_en] = np.nan
ax.plot(momenta, energies, c=blue)
energies = energy(momenta, 3)
max_en = 60
energies[energies > max_en] = np.nan
ax.plot(momenta, energies, c=orange)
ax.set_xlabel("$ka$")
ax.set_ylabel("$E$")
ax.set_ylim(-.5, max_en + 5)
ax.set_xticks(pi * np.arange(-1, 2))
ax.set_xticklabels(r"$-\pi$ $0$ $\pi$".split())
draw_classic_axes(ax, xlabeloffset=4)
- No redundant information
- Hard to relate to original dispersion
Extended BZ (n-th band within n-th BZ):