Skip to content
Snippets Groups Projects
Forked from Solid state physics / lectures
2089 commits behind the upstream repository.
from matplotlib import pyplot

import numpy as np

from common import draw_classic_axes, configure_plotting

configure_plotting()

(based on chapter 4 of the book)

!!! summary "Learning goals"

After this lecture you will be able to:

- calculate the electron density of states in 1D, 2D, and 3D using the Sommerfeld free-electron model.
- express the number and energy of electrons in a system in terms of integrals over k-space.
- use the Fermi distribution to extend the previous learning goal to finite T.
- calculate the electron contribution to the specific heat of a solid.
- describe central terms such as the Fermi energy, Fermi temperature, and Fermi wavevector.

Sommerfeld theory (free electron model)

Atoms in a metal provide conduction electrons from their outer shells (often s-shells). These can be described as waves in the crystal, analogous to phonons. Hamiltonian of a free electron:

H=p22m=22m(2x2+2y2+2z2)  ε=22m(kx2+ky2+kz2) \mathcal{H}=\frac{ {\bf p}^2}{2m}=-\frac{\hbar^2}{2m}\left( \frac{\partial^2}{\partial x^2}+\frac{\partial^2}{\partial y^2}+\frac{\partial^2}{\partial z^2} \right)\ \Rightarrow\ \varepsilon=\frac{\hbar^2}{2m}\left( k_x^2+k_y^2+k_z^2 \right)

Take periodic boundary conditions:

ψ(x,y,z)=ψ(x+l,y+L,z+L)\psi(x,y,z)=\psi(x+l,y+L,z+L)
:

kx=2πpL, ky=2πqL, kz=2πrL  ε=2π22mL2(p2+q2+r2) k_x=\frac{2\pi p}{L},\ k_y=\frac{2\pi q}{L},\ k_z=\frac{2\pi r}{L}\ \Rightarrow\ \varepsilon=\frac{2\pi^2\hbar^2}{mL^2}\left( p^2+q^2+r^2 \right)

kf = 3;
extrapol = 1.1;
ks = np.arange(-kf, kf+1);
kcont = np.linspace(-extrapol*kf, extrapol*kf, 200);

Edis = ks**2;
Econt = kcont**2;

fig = pyplot.figure();
ax = fig.add_subplot(111);
ax.plot(kcont, Econt);
ax.plot(ks, Edis, 'k.', markersize=10);
for i in range(2*kf + 1):
    ax.plot([ks[i], ks[i]], [0.0, Edis[i]], 'k:');
ax.set_xlim(-3.75, 3.75);
ax.set_ylim(0.0, 11);

ax.set_xlabel(r"$k \enspace \left[ \frac{2 \pi}{L} \right]$");
ax.set_ylabel(r"$\varepsilon$");

ax.set_xticklabels([""] + ks.tolist() + [""]);
ax.set_yticks([]);

draw_classic_axes(ax, xlabeloffset=.6);

Comparable to phonons, but: electrons are fermions.

  • Only 2 (due to spin) allowed per
    kk
    -value
  • Fill up from the lowest energy until you run out of electrons

\rightarrow
Calculate when you are out of electrons
\rightarrow
Fermi energy.

In order to compute the density of states, we need to perform an integration of k-space. Assuming three dimensions and spherical symmetry (the dispersion in the free electron model is isotropic) we find for the total number of states:

N=2(L2π)3dk=2(L2π)34πk2dk=Vπ2k2dk, N=2\left(\frac{L}{2\pi}\right)^3\int{\rm d}{\bf k}=2 \left(\frac{L}{2\pi}\right)^34\pi\int k^2{\rm d}k=\frac{V}{\pi^2}\int k^2{\rm d}k ,

where the factor 2 represents spin degeneracy. Using

k=2mεk=\frac{\sqrt{2m\varepsilon}}{\hbar}
and
dk=1m2εdε{\rm d}k=\frac{1}{\hbar}\sqrt{\frac{m}{2\varepsilon}}{\rm d}\varepsilon
we can rewrite this as:

N=Vπ22mε3m2εdε=Vm3/2π232ε dε N=\frac{V}{\pi^2}\int\frac{2m\varepsilon}{\hbar^3}\sqrt{\frac{m}{2\varepsilon}}{\rm d}\varepsilon=\frac{Vm^{3/2}}{\pi^2\hbar^3}\int\sqrt{2\varepsilon}\ {\rm d}\varepsilon

So we find for the density of states:

g(ε)=dNdε=Vm3/22επ23ε g(\varepsilon)=\frac{ {\rm d}N}{ {\rm d}\varepsilon}=\frac{Vm^{3/2}\sqrt{2\varepsilon}}{\pi^2\hbar^3}\propto\sqrt{\varepsilon}

E = np.linspace(0, 2, 500)
fig, ax = pyplot.subplots()

ax.plot(E, np.sqrt(E))

ax.set_ylabel(r"$g(\varepsilon)$")
ax.set_xlabel(r"$\varepsilon$")
draw_classic_axes(ax, xlabeloffset=.2)

Similarly,

  • For 1D:
    g(ε)=2Vπdkdε1/εg(\varepsilon) = \frac{2 V}{\pi} \frac{ {\rm d}k}{ {\rm d}\varepsilon} \propto 1/\sqrt{\varepsilon}
  • For 2D:
    g(ε)=kVπdkdεconstantg(\varepsilon) = \frac{k V}{\pi} \frac{ {\rm d}k}{ {\rm d}\varepsilon} \propto \text{constant}

Total number of electrons:

N=0εFg(ε)dε, N=\int_0^{\varepsilon_{\rm F}}g(\varepsilon){\rm d}\varepsilon,

with

εF\varepsilon_{\rm F}
the Fermi energy = highest filled energy at
T=0T=0
.

εF=22m(3π2NV)2/32kF22m, kF=(3π2NV)1/3 \varepsilon_{\rm F}=\frac{\hbar^2}{2m}\left( 3\pi^2\frac{N}{V} \right)^{2/3}\equiv \frac{\hbar^2 k_{\rm F}^2}{2m},\ k_{\rm F}=\left( 3\pi^2\frac{N}{V} \right)^{1/3}

The quantity

kF=2πλFk_{\rm F}=\frac{2\pi}{\lambda_{\rm F}}
is called the Fermi wavevector, where
λF\lambda_{\rm F}
is the Fermi wavelength, which is typically in the order of the atomic spacing.

For copper, the Fermi energy is ~7 eV. It would take a temperature of

\sim 70 000
K for electrons to gain such energy through a thermal excitation! The Fermi velocity
v_{\rm F}=\frac{\hbar k_{\rm F}}{m}\approx
1750 km/s
\rightarrow
electrons run with a significant fraction of the speed of light, only because lower energy states are already filled by other electrons.

The total number of electrons can be expressed as

N=\frac{2}{3}\varepsilon_{\rm F}g(\varepsilon_{\rm F})
.

kf = 3.0;
extrapol = 4.0/3.0;
kfilled = np.linspace(-kf, kf, 500);
kstates = np.linspace(-extrapol*kf, extrapol*kf, 500);

Efilled = kfilled**2;
Estates = kstates**2;

fig = pyplot.figure();
ax = fig.add_subplot(111);
ax.fill_between(kfilled, Efilled, kf*kf, alpha=0.5);
ax.plot([kf, kf], [0.0, kf*kf], 'k:');
ax.plot(kstates, Estates, 'k--');
ax.plot(kfilled, Efilled, linewidth=4);
ax.axhline(kf*kf, linestyle="dotted", color='k');

ax.set_xticks([kf]);
ax.set_yticks([kf*kf + 0.4]);
ax.set_xticklabels([r"$k_F$"]);
ax.set_yticklabels([r"$\varepsilon_F$"]);

ax.set_xlabel(r"$k$");
ax.set_ylabel(r"$\varepsilon$");

ax.set_xlim(-kf*extrapol, kf*extrapol);
ax.set_ylim(0.0, kf*kf*extrapol);
draw_classic_axes(ax, xlabeloffset=.6);

The bold line represents all filled states at

T=0
. This is called the Fermi sea. Conduction takes place only at the Fermi surface: everything below
\varepsilon_{\rm F}-\frac{eV}{2}
is compensated.

Now: Finite temperature

\rightarrow
probability distribution to occupy certain states.

Fermi-Dirac distribution:

f(\varepsilon,T)=\frac{1}{ {\rm e}^{(\varepsilon-\mu)/k_{\rm B}T}+1}

fig = pyplot.figure()
ax = fig.add_subplot(1,1,1)
xvals = np.linspace(0, 2, 200)
mu = .75
beta = 20
ax.plot(xvals, xvals < mu, ls='dashed', label='$T=0$')
ax.plot(xvals, 1/(np.exp(beta * (xvals-mu)) + 1),
        ls='solid', label='$T>0$')
ax.set_xlabel(r'$\varepsilon$')
ax.set_ylabel(r'$f(\varepsilon, T)$')
ax.set_yticks([0, 1])
ax.set_yticklabels(['$0$', '$1$'])
ax.set_xticks([mu])
ax.set_xticklabels([r'$\mu$'])
ax.set_ylim(-.1, 1.1)
ax.legend()
draw_classic_axes(ax)
pyplot.tight_layout()

Chemical potential

\mu=\varepsilon_{\rm F}
if
T=0
. Typically
\varepsilon_{\rm F}/k_{\rm B}
~70 000 K (~7 eV), whereas room temperature is only 300 K (~30 meV)
\rightarrow
thermal smearing occurs only very close to Fermi surface.

At finite temperature, the total number of electrons

N
should be:

N=\int_0^\infty f(\varepsilon,T)g(\varepsilon){\rm d}\varepsilon=\int_0^\infty n(\varepsilon,T){\rm d}\varepsilon

We can use this to calculate the electronic contribution to the heat capacity.

E = np.linspace(0, 2, 500)
fig, ax = pyplot.subplots()
ax.plot(E, np.sqrt(E), linestyle='dashed')
ax.text(1.7, 1.4, r'$g(\varepsilon)\propto \sqrt{\varepsilon}$', ha='center')
ax.fill_between(E, np.sqrt(E) * (E < 1), alpha=.3)

n = np.sqrt(E) / (1 + np.exp(20*(E-1)))
ax.plot(E, n)
ax.fill_between(E, n, alpha=.5)
w = .17
ax.annotate(s='', xy=(1, 1), xytext=(1-w, 1),
            arrowprops=dict(arrowstyle='<->', shrinkA=0, shrinkB=0))
ax.text(1-w/2, 1.1, r'$\sim k_BT$', ha='center')
ax.plot([1-w, 1+w], [1, 0], c='k', linestyle='dashed')
ax.annotate(s='', xy=(1, 0), xytext=(1, 1),
            arrowprops=dict(arrowstyle='<->', shrinkA=0, shrinkB=0))
ax.text(1.2, .7, r'$g(\varepsilon_F)$', ha='center')
ax.set_xticks([1])
ax.set_xticklabels([r'$\varepsilon_F$'])

ax.set_ylabel(r"$g(\varepsilon)$")
ax.set_xlabel(r"$\varepsilon$")
draw_classic_axes(ax, xlabeloffset=.2)

Electrons in the top triangle are being excited to the bottom triangle due to temperature increase. Number of excited electrons

\approx\frac{1}{4}g(\varepsilon_{\rm F})k_{\rm B}T=n_{\rm exc}
. Total extra energy
E(T)-E(0)=n_{\rm exc}k_{\rm B}T=\frac{1}{4}g(\varepsilon_{\rm F})k_{\rm B}^2T^2
.

C_{V,e}=\frac{ {\rm d}E}{ {\rm d}T}=\frac{1}{2}g(\varepsilon_{\rm F})k_{\rm B}^2T=\ ...\ =\frac{3}{4}Nk_{\rm B}\frac{T}{T_{\rm F}}\propto T

T_{\rm F}=\frac{\varepsilon_{\rm F}}{k_{\rm B}}
is the Fermi temperature.

How does

C_{V,e}
relate to the phonon contribution
C_{V,p}
?

  • At room temperature,
    C_{V,p}=3Nk_{\rm B}\gg C_{V,e}
  • Near
    T=0
    ,
    C_{V,p}\propto T^3
    and
    C_{V,e}\propto T
    \rightarrow
    competition.

New concept: Fermi surface = all points in k-space with

\varepsilon=\varepsilon_{\rm F}
. For free electrons, the Fermi surface is a sphere.

N=2\frac{\frac{4}{3}\pi k_{\rm F}^3}{\left( \frac{2\pi}{L} \right)^3}=\frac{k_{\rm F}^3V}{3\pi^2}\ \Rightarrow\ k_{\rm F}=\left( 3\pi^2\frac{N}{V} \right)^{1/3}

The orange circle represents the Fermi surface at finite current

\rightarrow
this circle will shift only slightly before the electrons reach terminal velocity
\rightarrow
all transport takes place near the Fermi surface.

Useful trick: scaling of
C_V

Behavior of

C_V
can be very quickly memorized or understood using the following mnemonic rule

Particles with energy E \leq kT are thermally excited, and each carries extra energy kT.

Example 1: electrons

g(E_F) roughly constant ⇒ total energy in the thermal state is T \times [T\times g(E_F)]C_V \propto T.

Example 2: graphene with E_F=0 (midterm 2018)

g(E) \propto E ⇒ total energy is T \times T^2C_V \propto T^2.

Example 3: phonons in 3D at low temperatures.

g(E) \propto E^2 ⇒ total energy is T \times T^3C_V \propto T^3.