Chapter 1: Fundamentals of Quantum Mechanics and Solid-State Physics
Gain intuition about wavefunctions and operators, and become familiar with the language of computational materials science. We also touch upon the concept of approximations.
💡 Note: Mathematical formulas are "compressed representations of phenomena." We cultivate the perspective of "what to omit and what to keep" rather than strict rigor.
Learning Objectives
By reading this chapter, you will master the following: - Understand the physical meaning of the Schrödinger equation and numerical solution methods - Explain why the Born-Oppenheimer approximation forms the foundation of computational materials science - Understand the relationship between solid-state periodicity and Bloch's theorem - Calculate wavefunctions for hydrogen atoms and quantum wells using Python
1.1 Schrödinger Equation: The Fundamental Equation of Quantum Mechanics
Everything in computational materials science begins with the Schrödinger equation. This is the fundamental equation that describes the electronic states of atoms, molecules, and solids.
Time-Dependent Schrödinger Equation
$$ i\hbar \frac{\partial \Psi(\mathbf{r}, t)}{\partial t} = \hat{H} \Psi(\mathbf{r}, t) $$
Where: - $\Psi(\mathbf{r}, t)$: Wavefunction (probability amplitude) - $\hat{H}$: Hamiltonian operator (energy operator) - $\hbar = h/(2\pi)$: Reduced Planck constant - $i$: Imaginary unit
Time-Independent Schrödinger Equation
When dealing with stationary states (energy eigenstates), time dependence can be separated:
$$ \hat{H} \psi(\mathbf{r}) = E \psi(\mathbf{r}) $$
This is an eigenvalue problem: - $\psi(\mathbf{r})$: Energy eigenstate (eigenfunction) - $E$: Energy eigenvalue
Structure of the Hamiltonian
The Hamiltonian for a many-electron system can be written as follows:
$$ \hat{H} = \underbrace{-\frac{\hbar^2}{2m_e}\sum_i \nabla_i^2}_{\text{Electron kinetic energy}} \underbrace{-\frac{\hbar^2}{2}\sum_I \frac{\nabla_I^2}{M_I}}_{\text{Nuclear kinetic energy}} + \underbrace{\frac{1}{2}\sum_{i \neq j} \frac{e^2}{|\mathbf{r}_i - \mathbf{r}_j|}}_{\text{Electron-electron interaction}} + \underbrace{\sum_{i,I} \frac{-Z_I e^2}{|\mathbf{r}_i - \mathbf{R}_I|}}_{\text{Electron-nuclear interaction}} + \underbrace{\frac{1}{2}\sum_{I \neq J} \frac{Z_I Z_J e^2}{|\mathbf{R}_I - \mathbf{R}_J|}}_{\text{Nuclear-nuclear interaction}} $$
Where: - $m_e$: Electron mass - $M_I$: Mass of nucleus $I$ - $\mathbf{r}_i$: Position of electron $i$ - $\mathbf{R}_I$: Position of nucleus $I$ - $Z_I$: Charge of nucleus $I$ (atomic number) - $e$: Elementary charge
Problem Complexity: This Hamiltonian cannot be solved analytically (except for the hydrogen atom). Therefore, approximations are necessary.
1.2 Born-Oppenheimer Approximation
One of the most important approximations in computational materials science is the Born-Oppenheimer approximation (BOA).
Basic Concept
The mass of atomic nuclei is approximately 2000-400000 times that of electrons (H: 1836 times, Fe: 102000 times). Therefore:
- Electrons move much faster than nuclei
- From the electrons' perspective, nuclei are "almost stationary"
- The motion of nuclei and electrons can be separated
Mathematical Formulation
We separate the total wavefunction as follows:
$$ \Psi(\mathbf{r}, \mathbf{R}) \approx \psi_{\text{elec}}(\mathbf{r}; \mathbf{R}) \cdot \chi_{\text{nuc}}(\mathbf{R}) $$
- $\psi_{\text{elec}}(\mathbf{r}; \mathbf{R})$: Electronic wavefunction (includes nuclear position $\mathbf{R}$ as a parameter)
- $\chi_{\text{nuc}}(\mathbf{R})$: Nuclear wavefunction
This allows us to solve the problem in two steps:
Step 1: Electronic State Calculation (Fixed Nuclei)
$$ \hat{H}_{\text{elec}} \psi_{\text{elec}}(\mathbf{r}; \mathbf{R}) = E_{\text{elec}}(\mathbf{R}) \psi_{\text{elec}}(\mathbf{r}; \mathbf{R}) $$
Where the electronic Hamiltonian is:
$$ \hat{H}_{\text{elec}} = -\frac{\hbar^2}{2m_e}\sum_i \nabla_i^2 + \frac{1}{2}\sum_{i \neq j} \frac{e^2}{|\mathbf{r}_i - \mathbf{r}_j|} + \sum_{i,I} \frac{-Z_I e^2}{|\mathbf{r}_i - \mathbf{R}_I|} $$
Step 2: Nuclear Motion (On Potential Energy Surface)
$$ \left[-\frac{\hbar^2}{2}\sum_I \frac{\nabla_I^2}{M_I} + E_{\text{elec}}(\mathbf{R}) + \frac{1}{2}\sum_{I \neq J} \frac{Z_I Z_J e^2}{|\mathbf{R}_I - \mathbf{R}_J|}\right] \chi_{\text{nuc}}(\mathbf{R}) = E_{\text{total}} \chi_{\text{nuc}}(\mathbf{R}) $$
$E_{\text{elec}}(\mathbf{R})$ forms a potential energy surface (PES) as a function of nuclear positions.
Physical Meaning of BOA
- Electrons are always in the ground state for the instantaneous nuclear configuration (adiabatic approximation)
- Nuclei move classically or quantum mechanically on this PES
- This enables separation of DFT calculations (electronic states) and MD calculations (nuclear motion)
Cases Where BOA Breaks Down
BOA becomes inaccurate in the following cases: 1. Transitions between excited states: Light absorption, non-adiabatic processes in chemical reactions 2. Systems with strong electron-phonon correlation: Superconductivity, Jahn-Teller effect 3. Light atoms: Zero-point vibration of hydrogen atoms
1.3 Solution for Hydrogen Atom: The Prototype of Quantum Mechanics
The hydrogen atom is the only Coulombic many-body system that can be solved analytically. Understanding of many-electron systems begins here.
Schrödinger Equation (Hydrogen Atom)
$$ \left[-\frac{\hbar^2}{2m_e}\nabla^2 - \frac{e^2}{r}\right] \psi(\mathbf{r}) = E \psi(\mathbf{r}) $$
Using separation of variables in spherical coordinates $(r, \theta, \phi)$:
$$ \psi_{nlm}(r, \theta, \phi) = R_{nl}(r) Y_l^m(\theta, \phi) $$
- $R_{nl}(r)$: Radial wavefunction (principal quantum number $n$, azimuthal quantum number $l$)
- $Y_l^m(\theta, \phi)$: Spherical harmonic (magnetic quantum number $m$)
Energy Eigenvalues
$$ E_n = -\frac{m_e e^4}{2\hbar^2 n^2} = -\frac{13.6 \text{ eV}}{n^2} $$
$n = 1, 2, 3, \ldots$
Examples of Radial Wavefunctions
Ground state (1s orbital, $n=1, l=0$):
$$ R_{10}(r) = 2\left(\frac{1}{a_0}\right)^{3/2} e^{-r/a_0} $$
Where $a_0 = \hbar^2/(m_e e^2) = 0.529$ Å is the Bohr radius.
Excited state (2p orbital, $n=2, l=1$):
$$ R_{21}(r) = \frac{1}{\sqrt{3}}\left(\frac{1}{2a_0}\right)^{3/2} \frac{r}{a_0} e^{-r/(2a_0)} $$
Computing and Visualizing Wavefunctions in Python
# Requirements:
# - Python 3.9+
# - matplotlib>=3.7.0
# - numpy>=1.24.0, <2.0.0
import numpy as np
import matplotlib.pyplot as plt
from scipy.special import genlaguerre, sph_harm
# Constants
a0 = 0.529 # Bohr radius [Å]
def radial_wavefunction(r, n, l):
"""
Radial wavefunction R_nl(r) for hydrogen atom
Args:
r: Radial coordinate [Å]
n: Principal quantum number (1, 2, 3, ...)
l: Azimuthal quantum number (0, 1, ..., n-1)
Returns:
R_nl(r)
"""
rho = 2 * r / (n * a0)
L = genlaguerre(n - l - 1, 2*l + 1) # Generalized Laguerre polynomial
# Normalization constant
N = np.sqrt((2/(n*a0))**3 * np.math.factorial(n-l-1) /
(2*n*np.math.factorial(n+l)))
R_nl = N * rho**l * np.exp(-rho/2) * L(rho)
return R_nl
# Radial coordinate range
r = np.linspace(0, 20, 1000)
# Plotting
fig, axes = plt.subplots(1, 2, figsize=(12, 5))
# Left: Wavefunction R_nl(r)
axes[0].plot(r, radial_wavefunction(r, 1, 0), label='1s (n=1, l=0)')
axes[0].plot(r, radial_wavefunction(r, 2, 0), label='2s (n=2, l=0)')
axes[0].plot(r, radial_wavefunction(r, 2, 1), label='2p (n=2, l=1)')
axes[0].plot(r, radial_wavefunction(r, 3, 0), label='3s (n=3, l=0)')
axes[0].axhline(0, color='black', linewidth=0.5, linestyle='--')
axes[0].set_xlabel('r [Å]', fontsize=12)
axes[0].set_ylabel('$R\_{nl}(r)$ [Å$^{-3/2}$]', fontsize=12)
axes[0].set_title('Radial Wavefunction of Hydrogen Atom', fontsize=14)
axes[0].legend()
axes[0].grid(alpha=0.3)
# Right: Radial probability density r^2 |R_nl(r)|^2
axes[1].plot(r, r**2 * radial_wavefunction(r, 1, 0)**2, label='1s')
axes[1].plot(r, r**2 * radial_wavefunction(r, 2, 0)**2, label='2s')
axes[1].plot(r, r**2 * radial_wavefunction(r, 2, 1)**2, label='2p')
axes[1].plot(r, r**2 * radial_wavefunction(r, 3, 0)**2, label='3s')
axes[1].set_xlabel('r [Å]', fontsize=12)
axes[1].set_ylabel('$r^2 |R\_{nl}(r)|^2$ [Å$^{-1}$]', fontsize=12)
axes[1].set_title('Radial Probability Density', fontsize=14)
axes[1].legend()
axes[1].grid(alpha=0.3)
plt.tight_layout()
plt.savefig('hydrogen_wavefunctions.png', dpi=150)
plt.show()
# Energy level calculation
print("Energy levels of hydrogen atom:")
for n in range(1, 5):
E_n = -13.6 / n**2
print(f"n={n}: E = {E_n:.3f} eV")
Execution Results:
Energy levels of hydrogen atom:
n=1: E = -13.600 eV
n=2: E = -3.400 eV
n=3: E = -1.511 eV
n=4: E = -0.850 eV
Important Points: - 1s orbital has no nodes (zero points) - 2s orbital has one node (radial direction) - 2p orbital is zero at the origin ($r=0$ where $R_{21}(0)=0$) - The peak of radial probability density corresponds to Bohr's orbital radius
1.4 Periodicity of Solids and Bloch's Theorem
Solids (crystals) are structures where atoms are arranged periodically. This periodicity has a decisive influence on the electronic states of solids.
Crystal Periodicity
Crystal lattices are described by lattice vectors $\mathbf{R}$:
$$ \mathbf{R} = n_1 \mathbf{a}_1 + n_2 \mathbf{a}_2 + n_3 \mathbf{a}_3 $$
- $\mathbf{a}_1, \mathbf{a}_2, \mathbf{a}_3$: Primitive lattice vectors (vectors spanning the unit cell)
- $n_1, n_2, n_3$: Integers
The crystal potential has periodicity:
$$ V(\mathbf{r} + \mathbf{R}) = V(\mathbf{r}) \quad \text{for all } \mathbf{R} $$
Bloch's Theorem
The Schrödinger equation for a crystal:
$$ \left[-\frac{\hbar^2}{2m_e}\nabla^2 + V(\mathbf{r})\right] \psi(\mathbf{r}) = E \psi(\mathbf{r}) $$
If $V(\mathbf{r})$ is periodic, the solution (Bloch function) takes the following form:
$$ \psi_{n\mathbf{k}}(\mathbf{r}) = e^{i\mathbf{k}\cdot\mathbf{r}} u_{n\mathbf{k}}(\mathbf{r}) $$
- $\mathbf{k}$: Wave vector (coordinate in reciprocal space)
- $u_{n\mathbf{k}}(\mathbf{r})$: Periodic function ($u_{n\mathbf{k}}(\mathbf{r}+\mathbf{R}) = u_{n\mathbf{k}}(\mathbf{r})$)
- $n$: Band index
Physical Meaning: - $e^{i\mathbf{k}\cdot\mathbf{r}}$: Plane wave (propagating wave) - $u_{n\mathbf{k}}(\mathbf{r})$: Modulation reflecting crystal lattice periodicity
First Brillouin Zone
All information is contained in the First Brillouin Zone (FBZ). This is the unit cell in reciprocal space.
Simple cubic lattice (lattice constant $a$): - Lattice vectors: $\mathbf{a}_1 = a\hat{\mathbf{x}}, \mathbf{a}_2 = a\hat{\mathbf{y}}, \mathbf{a}_3 = a\hat{\mathbf{z}}$ - Reciprocal lattice vectors: $\mathbf{b}_1 = \frac{2\pi}{a}\hat{\mathbf{x}}, \mathbf{b}_2 = \frac{2\pi}{a}\hat{\mathbf{y}}, \mathbf{b}_3 = \frac{2\pi}{a}\hat{\mathbf{z}}$ - FBZ: $-\frac{\pi}{a} \leq k_x, k_y, k_z \leq \frac{\pi}{a}$
Band Structure
For each band $n$, energy is a function of $\mathbf{k}$:
$$ E_n(\mathbf{k}) $$
This is called the band structure or dispersion relation.
Metals vs Insulators: - Metals: Fermi level $E_F$ exists within a band (partially occupied band) - Insulators/Semiconductors: Fermi level exists within a bandgap (between fully occupied and completely empty bands)
1.5 Computing 1D Crystal Band Structure in Python
Let's actually calculate the band structure of electrons in a 1D periodic potential.
Kronig-Penney Model
1D periodic rectangular potential:
$$ V(x) = \begin{cases} 0 & 0 < x < a \ V_0 & a < x < a+b \end{cases} $$
Repeated with period $d = a + b$.
# Requirements:
# - Python 3.9+
# - matplotlib>=3.7.0
# - numpy>=1.24.0, <2.0.0
import numpy as np
import matplotlib.pyplot as plt
from scipy.linalg import eigh
def kronig_penney_band(N=100, a=1.0, b=0.2, V0=5.0, n_bands=5):
"""
Calculate band structure of Kronig-Penney model
Args:
N: Number of plane wave basis
a: Potential width (well) [Å]
b: Potential width (barrier) [Å]
V0: Barrier height [eV]
n_bands: Number of bands to display
Returns:
k_points: Wave vector
energies: Energy bands
"""
d = a + b # Period
G = 2 * np.pi / d # Reciprocal lattice vector
# k-points in first Brillouin zone
k_points = np.linspace(-np.pi/d, np.pi/d, 200)
energies = np.zeros((len(k_points), n_bands))
# Fourier coefficients of potential (rectangular potential)
def V_G(n):
if n == 0:
return V0 * b / d
else:
return V0 * np.sin(n * G * b / 2) / (n * np.pi) * np.exp(-1j * n * G * (a + b/2))
for ik, k in enumerate(k_points):
# Construct Hamiltonian matrix (plane wave basis)
H = np.zeros((2*N+1, 2*N+1), dtype=complex)
for i in range(-N, N+1):
for j in range(-N, N+1):
if i == j:
# Diagonal component: kinetic energy
H[i+N, j+N] = 0.5 * (k + i*G)**2 # Atomic units
else:
# Off-diagonal component: potential
H[i+N, j+N] = V_G(i - j)
# Solve eigenvalue problem
eigvals, eigvecs = eigh(H)
energies[ik, :] = eigvals[:n_bands]
return k_points, energies
# Calculate band structure
k_points, energies = kronig_penney_band(N=50, a=1.0, b=0.2, V0=5.0, n_bands=6)
# Plotting
plt.figure(figsize=(10, 6))
for n in range(energies.shape[1]):
plt.plot(k_points, energies[:, n], linewidth=2)
plt.xlabel('Wave vector k [Å$^{-1}$]', fontsize=12)
plt.ylabel('Energy [eV]', fontsize=12)
plt.title('Band Structure of 1D Periodic Potential (Kronig-Penney Model)', fontsize=14)
plt.grid(alpha=0.3)
plt.axhline(0, color='black', linewidth=0.5)
plt.xlim([k_points[0], k_points[-1]])
plt.ylim([0, 20])
# High-symmetry point labels
d = 1.2
plt.axvline(-np.pi/d, color='gray', linestyle='--', alpha=0.5)
plt.axvline(0, color='gray', linestyle='--', alpha=0.5)
plt.axvline(np.pi/d, color='gray', linestyle='--', alpha=0.5)
plt.xticks([-np.pi/d, 0, np.pi/d], ['-π/d', 'Γ', 'π/d'])
plt.tight_layout()
plt.savefig('1d_band_structure.png', dpi=150)
plt.show()
# Bandgap analysis
print("\nBandgap analysis:")
k_gamma = np.argmin(np.abs(k_points)) # Γ point (k=0)
for n in range(energies.shape[1] - 1):
E_top = energies[k_gamma, n]
E_bottom = energies[k_gamma, n+1]
gap = E_bottom - E_top
print(f"Gap between band {n} and {n+1}: {gap:.3f} eV")
Interpretation of Execution Results: - Due to periodic potential, energy splits into discrete bands - Bandgaps exist between bands (energy regions where electrons cannot exist) - Band extrema appear at k=0 (Γ point) - The stronger the potential, the larger the bandgap
1.6 Energy Levels of Quantum Wells
As another important example, let's look at the infinite square well potential (quantum well).
Problem Setup
$$ V(x) = \begin{cases} 0 & 0 \leq x \leq L \ \infty & \text{otherwise} \end{cases} $$
Analytical Solution
Wavefunctions and energy eigenvalues are:
$$ \psi_n(x) = \sqrt{\frac{2}{L}} \sin\left(\frac{n\pi x}{L}\right), \quad E_n = \frac{n^2 \pi^2 \hbar^2}{2 m_e L^2} $$
$n = 1, 2, 3, \ldots$
Numerical Calculation in Python
# Requirements:
# - Python 3.9+
# - matplotlib>=3.7.0
# - numpy>=1.24.0, <2.0.0
import numpy as np
import matplotlib.pyplot as plt
def quantum_well(L=10.0, n_states=5):
"""
Wavefunctions and energy levels of infinite square well potential
Args:
L: Well width [Å]
n_states: Number of states to display
Returns:
x: Position coordinate
psi: Wavefunction
E: Energy levels
"""
x = np.linspace(0, L, 500)
# Energy levels (converted to eV)
# hbar^2 / (2*m_e) = 3.81 eV Å^2 (atomic units)
coeff = 3.81
E = np.array([coeff * (n*np.pi/L)**2 for n in range(1, n_states+1)])
# Wavefunctions
psi = np.zeros((n_states, len(x)))
for n in range(1, n_states+1):
psi[n-1, :] = np.sqrt(2/L) * np.sin(n * np.pi * x / L)
return x, psi, E
# Calculation
L = 10.0 # Well width [Å]
x, psi, E = quantum_well(L, n_states=5)
# Plotting
fig, axes = plt.subplots(1, 2, figsize=(12, 5))
# Left: Wavefunctions
for n in range(5):
axes[0].plot(x, psi[n, :] + E[n]/2, label=f'n={n+1}, E={E[n]:.2f} eV')
axes[0].axhline(E[n]/2, color='gray', linestyle='--', alpha=0.3)
axes[0].set_xlabel('Position x [Å]', fontsize=12)
axes[0].set_ylabel('Wavefunction + Energy Level', fontsize=12)
axes[0].set_title('Wavefunctions of Quantum Well', fontsize=14)
axes[0].legend()
axes[0].grid(alpha=0.3)
# Right: Probability density
for n in range(5):
axes[1].plot(x, psi[n, :]**2, label=f'n={n+1}')
axes[1].set_xlabel('Position x [Å]', fontsize=12)
axes[1].set_ylabel('Probability Density |ψ(x)|$^2$ [Å$^{-1}$]', fontsize=12)
axes[1].set_title('Probability Density', fontsize=14)
axes[1].legend()
axes[1].grid(alpha=0.3)
plt.tight_layout()
plt.savefig('quantum_well.png', dpi=150)
plt.show()
# Display energy levels
print("Energy levels of quantum well:")
for n in range(1, 6):
print(f"n={n}: E = {E[n-1]:.3f} eV")
# Analysis of energy intervals
print("\nEnergy intervals:")
for n in range(1, 5):
delta_E = E[n] - E[n-1]
print(f"ΔE({n}→{n+1}) = {delta_E:.3f} eV")
Physical Insights: - Energy is proportional to $n^2$ ($E_n \propto n^2$) - As quantum number $n$ increases, the number of nodes in the wavefunction increases ($n-1$ nodes) - The smaller the well width $L$, the higher the energy levels (quantum confinement effect) - This is the foundation of electronic states in quantum dots and nanowires
1.7 Summary of This Chapter
What We Learned
-
Schrödinger Equation - Fundamental equation of quantum mechanics - Two forms: time-dependent/time-independent - Structure of Hamiltonian (kinetic energy + potential energy)
-
Born-Oppenheimer Approximation - Separation of nuclear and electronic motion - Approximation forming the foundation of computational materials science - Concept of potential energy surface (PES)
-
Hydrogen Atom - The only analytically solvable Coulombic many-body system - Radial wavefunction and spherical harmonics - Energy levels: $E_n = -13.6/n^2$ eV
-
Periodicity of Solids and Bloch's Theorem - Crystal lattice periodicity - Bloch function: $\psi_{n\mathbf{k}}(\mathbf{r}) = e^{i\mathbf{k}\cdot\mathbf{r}} u_{n\mathbf{k}}(\mathbf{r})$ - Band structure: $E_n(\mathbf{k})$ - Difference between metals and insulators through bandgaps
-
Practical Calculations - Computing hydrogen atom wavefunctions in Python - Band structure of 1D periodic potential - Energy levels of quantum wells
Key Points
- Quantum mechanics is the only accurate theory for describing electronic states of atoms, molecules, and solids
- BOA enables separation of electronic and nuclear motion → DFT and MD become possible
- Solid-state periodicity generates band structures
- Numerical calculations can approximately solve electronic states of complex systems
To the Next Chapter
In Chapter 2, we will learn Density Functional Theory (DFT), which is the method for actually calculating electronic states of many-electron systems. DFT is the most important approximation method for practically solving the Schrödinger equation.
Exercise Problems
Problem 1 (Difficulty: easy)
Explain why the Born-Oppenheimer approximation holds, based on the mass difference between nuclei and electrons.
Hint
Consider the ratio of electron mass $m\_e$ to proton mass $m\_p$. $m\_p / m\_e \approx 1836$.Solution
**Why the Born-Oppenheimer Approximation Holds**: 1. **Mass Difference**: - Electron mass: $m\_e = 9.109 \times 10^{-31}$ kg - Proton (hydrogen nucleus) mass: $m\_p = 1.673 \times 10^{-27}$ kg - Mass ratio: $m\_p / m\_e = 1836$ - Iron nucleus (Fe, mass number 56): $M\_{\text{Fe}} / m\_e \approx 102,000$ 2. **Velocity Difference**: - If kinetic energy $E = p^2/(2m)$ is the same, momentum $p = \sqrt{2mE}$ - The larger the mass, the smaller the velocity $v = p/m$ for the same energy - Electrons move about 40 times faster than nuclei ($v\_e / v\_p \sim \sqrt{m\_p/m\_e} \approx 43$) 3. **Time Scale Separation**: - Electronic motion: $\sim 10^{-16}$ seconds (femtosecond scale) - Nuclear motion (vibration): $\sim 10^{-13}$ seconds (picosecond scale) - Time scale difference of about 1000 times 4. **Physical Picture**: - From the electrons' perspective, nuclei are "almost stationary" - Electrons instantly respond to the instantaneous nuclear configuration and relax to the ground state - This approximation enables separation of electronic state calculations (DFT) and nuclear motion (MD) **Exceptions (Cases Where BOA Breaks Down)**: - Light atoms (H, He): Large effect of zero-point vibration - Excited states: Transition time between electronic states comparable to nuclear motion - Strongly correlated systems: Systems with very strong electron-lattice interactionProblem 2 (Difficulty: medium)
The ground state (1s orbital) energy of hydrogen atom is -13.6 eV. Calculate the photon energy (eV) and wavelength (nm) required for the electron to transition from the ground state to the first excited state (2s or 2p).
Hint
Energy levels: $E\_n = -13.6/n^2$ eV Photon energy: $E\_{\text{photon}} = h\nu = hc/\lambda$ Planck constant: $h = 4.136 \times 10^{-15}$ eV·s, speed of light: $c = 3 \times 10^8$ m/sSolution
**Step 1: Energy Level Calculation** Ground state ($n=1$): $$E_1 = -\frac{13.6}{1^2} = -13.6 \text{ eV}$$ First excited state ($n=2$): $$E_2 = -\frac{13.6}{2^2} = -3.4 \text{ eV}$$ **Step 2: Transition Energy** $$\Delta E = E_2 - E_1 = -3.4 - (-13.6) = 10.2 \text{ eV}$$ **Step 3: Photon Wavelength** $$E_{\text{photon}} = \frac{hc}{\lambda}$$ $$\lambda = \frac{hc}{E_{\text{photon}}} = \frac{(4.136 \times 10^{-15} \text{ eV·s}) \cdot (3 \times 10^8 \text{ m/s})}{10.2 \text{ eV}}$$ $$\lambda = \frac{1.241 \times 10^{-6} \text{ eV·m}}{10.2 \text{ eV}} = 1.217 \times 10^{-7} \text{ m} = 121.7 \text{ nm}$$ **Answer**: - Transition energy: **10.2 eV** - Photon wavelength: **121.7 nm** (ultraviolet region, Lyman alpha line) **Physical Meaning**: - This transition is the first line of the **Lyman series** (Lyman alpha line) - Being in the ultraviolet region, it is not observed from ground level (absorbed by atmosphere) - Important emission line in astronomical observations from spaceProblem 3 (Difficulty: hard)
Consider electrons in a 1D periodic potential. Show that in the weak potential limit, using perturbation theory from free electrons ($V=0$), bandgaps arise.
Hint
Free electron energy: $E\_k = \hbar^2 k^2 / (2m\_e)$ Brillouin zone boundary: $k = \pm \pi/a$ Degenerate states: Degeneracy at $E\_k = E\_{-k}$ Perturbation theory lifts degeneracySolution
**Free Electron Case ($V=0$)**: Energy: $$E_k = \frac{\hbar^2 k^2}{2m_e}$$ Wavefunction: $$\psi_k(x) = \frac{1}{\sqrt{L}} e^{ikx}$$ **Degeneracy at Brillouin Zone Boundary**: At $k = \pm \pi/a$ (first Brillouin zone boundary): $$E_{\pi/a} = E_{-\pi/a} = \frac{\hbar^2 \pi^2}{2m_e a^2}$$ These two states are degenerate (equal energy). **Introduction of Weak Periodic Potential**: $$V(x) = V(x + a) = V_0 \cos\left(\frac{2\pi x}{a}\right)$$ Fourier expansion: $$V(x) = \sum_G V_G e^{iGx}, \quad G = \frac{2\pi n}{a}$$ First term: $V\_G = V\_0 / 2$ ($G = \pm 2\pi/a$) **Perturbation Theory (First Order)**: Linear combination of degenerate states: $$\psi = c_1 e^{i\pi x/a} + c_2 e^{-i\pi x/a}$$ Perturbation Hamiltonian matrix: $$H' = \begin{pmatrix} \langle \pi/a | V | \pi/a \rangle & \langle \pi/a | V | -\pi/a \rangle \\ \langle -\pi/a | V | \pi/a \rangle & \langle -\pi/a | V | -\pi/a \rangle \end{pmatrix}$$ Diagonal component: $\langle \pi/a | V | \pi/a \rangle = 0$ (average potential) Off-diagonal component: $$\langle \pi/a | V | -\pi/a \rangle = \frac{1}{L} \int_0^L e^{-i\pi x/a} V_0 \cos\left(\frac{2\pi x}{a}\right) e^{i\pi x/a} dx = \frac{V_0}{2}$$ Matrix: $$H' = \frac{V_0}{2} \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}$$ Eigenvalues: $$E_{\pm} = E_0 \pm \frac{V_0}{2}$$ Where $E\_0 = \hbar^2 \pi^2 / (2m\_e a^2)$ **Bandgap Formation**: $$\Delta E = E_+ - E_- = V_0$$ **Conclusion**: - Periodic potential lifts degeneracy at Brillouin zone boundary - Energy gap (bandgap) arises by $\Delta E = V\_0$ - This is the physical origin creating the difference between metals and insulatorsData Licenses and Citations
Datasets Used
Constants and parameters used in this chapter are based on the following databases/literature:
-
NIST Physical Constants Database (CC0 Public Domain) - Bohr radius, Planck constant, electron mass - URL: https://physics.nist.gov/cuu/Constants/ - Citation: Tiesinga, E., et al. (2021). CODATA Recommended Values. Rev. Mod. Phys., 93, 025010.
-
Materials Project Database (CC BY 4.0) - Si crystal structure data (lattice constant) - URL: https://materialsproject.org - Citation: Jain, A., et al. (2013). The Materials Project. APL Materials, 1, 011002.
Software Licenses
Software used in code examples in this chapter:
- Python 3.11: PSF License (BSD-compatible)
- NumPy 1.26: BSD License
- SciPy 1.11: BSD License
- Matplotlib 3.8: PSF License
All software is available under open-source licenses permitting commercial use.
Code Reproducibility Checklist
When reproducing code examples from this chapter, please verify the following:
Environment Setup
# Python environment (Recommended: Anaconda)
conda create -n quantum-basics python=3.11
conda activate quantum-basics
conda install numpy scipy matplotlib
# Version verification
python --version # 3.11.x
python -c "import numpy; print(numpy.\_\_version\_\_)" # 1.26.x
Execution Notes
-
Numerical Precision - Results may differ slightly due to floating-point rounding errors - Relative error < 1e-6 is normal
-
Graph Display - When using Jupyter Notebook: Add
%matplotlib inline- When running scripts:plt.show()is required -
Computation Time - Example 1.3 (Hydrogen atom wavefunction): ~1 second - Example 1.5 (1D band structure): ~10 seconds (for N=50) - Example 1.6 (Quantum well): ~2 seconds
Troubleshooting
Problem: ImportError: cannot import name 'genlaguerre'
Solution: Reinstall Scipy with conda install scipy
Problem: Japanese text garbled in graphs Solution:
# Requirements:
# - Python 3.9+
# - matplotlib>=3.7.0
"""
Example: Problem: Japanese text garbled in graphsSolution:
Purpose: Demonstrate data visualization techniques
Target: Beginner to Intermediate
Execution time: 2-5 seconds
Dependencies: None
"""
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS', 'Hiragino Sans']
Practical Pitfalls and Countermeasures
1. Numerical Precision Issues
Pitfall: Insufficient wavefunction normalization
# ❌ Wrong: Forgetting normalization
psi = np.exp(-r/a0)
# ✅ Correct: Include normalization constant
N = (1/a0)**1.5 / np.sqrt(np.pi)
psi = N * np.exp(-r/a0)
Verification Method:
# Check wavefunction normalization
integral = np.trapz(4*np.pi*r**2 * psi**2, r)
print(f"Normalization: {integral:.6f}") # Should be close to 1.000000
2. Band Structure Calculation Convergence
Pitfall: Insufficient plane wave basis number
# ❌ Insufficient: N=10 does not converge
energies = kronig\_penney\_band(N=10)
# ✅ Recommended: Check convergence with N=50-100
for N in [10, 30, 50, 100]:
energies = kronig\_penney\_band(N=N)
print(f"N={N}: Gap = {energies[0,1] - energies[0,0]:.4f} eV")
Convergence Criterion: Energy difference < 0.01 eV
3. Importance of k-point Sampling
Pitfall: k-points too coarse, missing bandgap
# ❌ Coarse: 20 points miss structure
k\_points = np.linspace(-np.pi/d, np.pi/d, 20)
# ✅ Recommended: 200 points or more
k\_points = np.linspace(-np.pi/d, np.pi/d, 200)
4. Physical Constraints on Quantum Numbers
Pitfall: Invalid quantum number combinations
# ❌ Physically invalid: l >= n
R\_nl = radial\_wavefunction(r, n=2, l=3) # Error
# ✅ Constraint: l < n
assert 0 <= l < n, "Quantum number constraint: l must be < n"
Quality Assurance Checklist
Validation of Calculation Results
To verify the correctness of calculation results in this chapter, check the following items:
Hydrogen Atom Energy Levels (Section 1.3)
- [ ] n=1: E = -13.600 eV (error < 0.001 eV)
- [ ] n=2: E = -3.400 eV (error < 0.001 eV)
- [ ] Energy increases monotonically with increasing n
- [ ] Wavefunction normalization: ∫|ψ|²dV = 1 (error < 0.01)
1D Band Structure (Section 1.5)
- [ ] Bandgap exists at Γ point (k=0)
- [ ] Gap expands with increasing potential strength V₀
- [ ] Number of bands = 2N+1 (corresponding to plane wave basis number)
- [ ] Energy is periodic with respect to k-points
Quantum Well (Section 1.6)
- [ ] Energy levels are E_n ∝ n²
- [ ] Doubling well width L reduces energy by factor of 1/4
- [ ] Number of nodes in wavefunction = n-1
- [ ] Probability density symmetry (even n is symmetric, odd n is antisymmetric)
Physical Validity Checks
- [ ] All energies are finite (no divergence)
- [ ] Wavefunctions satisfy boundary conditions
- [ ] Bloch theorem periodicity is preserved
- [ ] Symmetries (translational, rotational) are conserved
Code Integrity
- [ ] All code examples execute without warnings
- [ ] No memory leaks (stable with long-term execution)
- [ ] No numerical overflow in calculations
- [ ] Graphs display correctly
References
-
Griffiths, D. J. (2018). Introduction to Quantum Mechanics (3rd ed.). Cambridge University Press. - Standard textbook on quantum mechanics
-
Ashcroft, N. W., & Mermin, N. D. (1976). Solid State Physics. Saunders College Publishing. - Classic masterpiece on solid-state physics
-
Kittel, C. (2004). Introduction to Solid State Physics (8th ed.). Wiley. - Introductory textbook on solid-state physics
-
Martin, R. M. (2004). Electronic Structure: Basic Theory and Practical Methods. Cambridge University Press. - Theoretical foundations of computational materials science
-
Tsuneyuki, S. (2005). Computational Physics. Iwanami Shoten. (Japanese) - Excellent book on computational physics in Japanese
Author Information
Created by: MI Knowledge Hub Content Team Created Date: 2025-10-17 Version: 1.0 Series: Computational Materials Science Basics Introduction v1.0
License: Creative Commons BY-NC-SA 4.0