-
Sathish Kumar RK authoredSathish Kumar RK authored
Solutions for Sommerfeld model exercises
Exercise 1: potassium
Alkali metals mostly have a spherical fermi surface. Their energy depends only on the magnitude of the Fermi wavevector.
Refer to the lecture notes.
Electrons are fermions and obeys pauli exclusion principle. As electrons cannot occupy the same state, they are forced to occupy higher energy states resulting in high Fermi energy and high Fermi temperature.
where
Comparing total and free electron density, only few electrons are available for conduction which is roughly 1 free electron per potassium atom.
Exercise 2: the n-dimensional free electron model
Distance between nearest k-points is
Check how to convert volume to surface intergral and surface to line integral.
3, 4.
Total energy: $E = \int_{0}^{\infty}g(E)f(E)EdE $
Exercise 3: a hypothetical material
Substitute T=0 in the integral expression for total energy to find the ground state energy.
4, 6.
Check the source code written in python for solving integral using midpoint rule
mu = 5.2
kB = 8.617343e-5
T = 1000 #kelvin
import numpy as np
np.seterr(over='ignore')
# Fermi-Dirac distribution
def f(E, T):
return 1 / (np.exp((E - mu)/(kB*T)) + 1)
# Density of states
def g(E):
return 2e10 * np.sqrt(E)
#integration function
def integral(E, T):
return f(E, T)*g(E)*E
## Solve integral using midpoint rule
elements = np.linspace(0, 1e6, 1e7) #Free to choose the number of discrete steps
dE = np.sum(integral(elements, T))*((1e6 - 0)/len(elements)) - 0.8e10 * 5.2**(5./2)
dT = 0.001
dEplus = np.sum(integral(elements, 1000+dT))*((1e6 - 0)/len(elements)) - 0.8e10 * 5.2**(5./2)
dEmin = np.sum(integral(elements, 1000-dT))*((1e6 - 0)/len(elements)) - 0.8e10 * 5.2**(5./2)
CV = (dEplus - dEmin) / (2*dT);
Exercise 4: graphene
x = np.linspace(-1, 1, 100)
fig, ax = plt.subplots(figsize=(7, 5))
ax.plot(x, x, 'b')
ax.plot(x,-x, 'b')
ax.spines['left'].set_position('center')
ax.spines['bottom'].set_position(('data', 0.0))
# Eliminate upper and right axes
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.set_xticks([])
ax.set_yticks([])
ax.set_xlabel(r'$\mid \vec k \mid$', fontsize=14)
ax.set_ylabel('$\epsilon$', fontsize=18, rotation='horizontal')
ax.yaxis.set_label_coords(0.5,1)
ax.xaxis.set_label_coords(1.0, 0.49)
In two dimensions:
Substituting