IntRoduction to solid state physics
Practice Course
Sheng Yun Wu
Practice Course
Sheng Yun Wu
Week 6: Energy Bands in Solids
This example calculates the band gap energy of a semiconductor using the relation Eg=EC−EV is the conduction band minimum and EV is the valence band maximum.
The band gap is the energy difference between the conduction and valence bands in a semiconductor. This example calculates the band gap energy based on the positions of the conduction band minimum and valence band maximum, which is key for understanding semiconductors.
def band_gap_energy(E_C, E_V):
return E_C - E_V
# Example: Conduction band minimum E_C = 1.2 eV, valence band maximum E_V = 0 eV
E_C = 1.2 # eV
E_V = 0 # eV
E_g = band_gap_energy(E_C, E_V)
print(f"Band Gap Energy: {E_g:.2f} eV")
This example generates a basic plot of the energy bands (conduction and valence bands) for a semiconductor.
This example provides a simple visualization of the energy band structure of a semiconductor. It shows the valence band and conduction band as constant energy levels and highlights the band gap between them, helping students understand how energy bands are structured in semiconductors.
import matplotlib.pyplot as plt
import numpy as np
def plot_band_structure(E_V, E_C, k_min, k_max):
k_values = np.linspace(k_min, k_max, 100)
valence_band = E_V * np.ones(100)
conduction_band = E_C * np.ones(100)
plt.plot(k_values, valence_band, label="Valence Band")
plt.plot(k_values, conduction_band, label="Conduction Band")
plt.fill_between(k_values, E_V, E_C, color='grey', alpha=0.3)
plt.xlabel("k (Wave Vector)")
plt.ylabel("Energy (eV)")
plt.title("Simple Band Structure of a Semiconductor")
plt.legend()
plt.show()
# Example: Valence band maximum E_V = 0 eV, conduction band minimum E_C = 1.2 eV, k range from -1 to 1
plot_band_structure(0, 1.2, -1, 1)
This example calculates the density of states (DOS) for a 1D semiconductor using D(E)∝1/Square(E−EV).
The density of states (DOS) describes how many states are available for electrons at each energy level. This example calculates the DOS for a 1D semiconductor, which gives insights into the distribution of energy states above the valence band.
def density_of_states_1d(E, E_V):
if E > E_V:
return 1 / np.sqrt(E - E_V)
else:
return 0
# Example: Energy E = 1.5 eV, valence band maximum E_V = 0 eV
E = 1.5 # eV
E_V = 0 # eV
DOS = density_of_states_1d(E, E_V)
print(f"Density of States: {DOS:.2f} states/eV")
This example calculates the Fermi level in an intrinsic semiconductor using EF=(EC+EV)/2, assuming equal electron and hole concentrations.
The Fermi level in an intrinsic semiconductor lies near the middle of the band gap, as there are equal numbers of electrons and holes. This example calculates the Fermi level based on the conduction and valence band positions, which is essential for understanding semiconductor behavior at thermal equilibrium.
def fermi_level_intrinsic(E_C, E_V):
return (E_C + E_V) / 2
# Example: Conduction band minimum E_C = 1.2 eV, valence band maximum E_V = 0 eV
E_C = 1.2 # eV
E_V = 0 # eV
E_F = fermi_level_intrinsic(E_C, E_V)
print(f"Fermi Level in Intrinsic Semiconductor: {E_F:.2f} eV")
This example generates a plot of the density of states (DOS) for a 3D semiconductor, using D(E)∝1/Square(E−EV).
This example generates a plot showing how the density of states varies with energy in a 3D semiconductor. The DOS increases as the energy increases above the valence band, which is crucial for understanding how electrons fill available states at different energy levels.
def plot_density_of_states_3d(E_min, E_max, E_V):
E_values = np.linspace(E_min, E_max, 100)
DOS = np.sqrt(E_values - E_V) * (E_values > E_V)
plt.plot(E_values, DOS, label="Density of States")
plt.xlabel("Energy (eV)")
plt.ylabel("DOS (states/eV)")
plt.title("Density of States in 3D Semiconductor")
plt.legend()
plt.show()
# Example: Valence band maximum E_V = 0 eV, energy range from 0 to 3 eV
plot_density_of_states_3d(0, 3, 0)
This example calculates the effective mass of an electron in a parabolic energy band.
The effective mass of an electron in a semiconductor is an important parameter that describes how an electron responds to forces, such as electric fields. This example calculates the effective mass in a parabolic band, showing how electron behavior deviates from that of free electrons.
h_bar = 1.0545718e-34 # Reduced Planck's constant in J·s
def effective_mass(E_k, k_values):
dE_dk = np.gradient(E_k, k_values)
d2E_dk2 = np.gradient(dE_dk, k_values)
return h_bar**2 / d2E_dk2[0]
# Example: Parabolic E(k) = 1e-38 * k², k-values from -1 to 1
k_values = np.linspace(-1, 1, 100)
E_k = 1e-38 * k_values**2
m_star = effective_mass(E_k, k_values)
print(f"Effective Mass of Electron: {m_star:.2e} kg")
This example generates a plot showing the energy band structure for a metal, where the Fermi level lies within a partially filled conduction band.
In metals, the Fermi level lies within the conduction band, meaning there are always available energy states for electrons to move. This example visualizes the energy band structure of a metal, helping students understand why metals conduct electricity.
def plot_band_structure_metal(E_F, k_min, k_max):
k_values = np.linspace(k_min, k_max, 100)
conduction_band = E_F + 0.5 * k_values**2
plt.plot(k_values, conduction_band, label="Conduction Band")
plt.axhline(E_F, color='r', linestyle='--', label="Fermi Level")
plt.xlabel("k (Wave Vector)")
plt.ylabel("Energy (eV)")
plt.title("Energy Band Structure of a Metal")
plt.legend()
plt.show()
# Example: Fermi level E_F = 2 eV, k range from -1 to 1
plot_band_structure_metal(2, -1, 1)
This example calculates the probability of an energy state being occupied by an electron at a given temperature using the Fermi-Dirac distribution.
The Fermi-Dirac distribution describes the probability that an energy state is occupied by an electron at a given temperature. This example calculates the probability of electron occupation, which is important for understanding how electrons fill available states in metals, semiconductors, and insulators.
k_B = 8.617333262145e-5 # Boltzmann constant in eV/K
def fermi_dirac(E, E_F, T):
return 1 / (1 + np.exp((E - E_F) / (k_B * T)))
# Example: Energy E = 1.5 eV, Fermi level E_F = 1.0 eV, temperature T = 300 K
E = 1.5 # eV
E_F = 1.0 # eV
T = 300 # Kelvin
prob = fermi_dirac(E, E_F, T)
print(f"Probability of Electron Occupation: {prob:.4f}")
This example calculates the conductivity of a semiconductor using σ=neμ, where n is the carrier concentration, e is the electron charge, and μ is the mobility.
The electrical conductivity of a semiconductor depends on the number of free carriers (electrons or holes) and their mobility. This example calculates the conductivity based on carrier concentration and mobility, helping students understand the factors that influence the electrical properties of semiconductors.
def semiconductor_conductivity(n, e, mu):
return n * e * mu
# Example: Carrier concentration n = 1e16 cm⁻³, mobility μ = 1500 cm²/V·s, charge e = 1.6e-19 C
n = 1e16 * 1e6 # cm⁻³ to m⁻³
mu = 1500 * 1e-4 # cm²/V·s to m²/V·s
e = 1.6e-19 # C
sigma = semiconductor_conductivity(n, e, mu)
print(f"Semiconductor Conductivity: {sigma:.2e} S/m")
This example calculates the carrier concentration in an intrinsic semiconductor
In intrinsic semiconductors, the carrier concentration is determined by the band gap energy and temperature. This example calculates the intrinsic carrier concentration, helping students understand how thermal excitation generates electron-hole pairs in semiconductors.
def intrinsic_carrier_concentration(N_C, N_V, E_g, T):
return np.sqrt(N_C * N_V) * np.exp(-E_g / (2 * k_B * T))
# Example: N_C = N_V = 1e19 cm⁻³, band gap E_g = 1.1 eV, temperature T = 300 K
N_C = 1e19 * 1e6 # cm⁻³ to m⁻³
N_V = 1e19 * 1e6 # cm⁻³ to m⁻³
E_g = 1.1 # eV
T = 300 # Kelvin
n_i = intrinsic_carrier_concentration(N_C, N_V, E_g, T)
print(f"Intrinsic Carrier Concentration: {n_i:.2e} m⁻³")
These 10 Python examples cover important concepts related to Week 6: Energy Bands in Solids, including band gap energy, Fermi level, density of states, effective mass, band structures, carrier concentration, and conductivity. These examples help students explore the fundamental properties of energy bands in conductors, semiconductors, and insulators, providing insights into electron behavior in solids.