🌐 EN | 🇯🇵 JP | Last sync: 2025-11-16

Chapter 1: Fundamentals of Quantum Mechanics and Solid-State Physics

From Schrödinger Equation to Crystal Band Structures

📖 Reading Time: 20-25 min 📊 Level: Intermediate 💻 Code Examples: 7 📝 Exercises: 0

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:

  1. Electrons move much faster than nuclei
  2. From the electrons' perspective, nuclei are "almost stationary"
  3. 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}) $$

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

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) $$

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 $$

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}) $$

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

  1. Schrödinger Equation - Fundamental equation of quantum mechanics - Two forms: time-dependent/time-independent - Structure of Hamiltonian (kinetic energy + potential energy)

  2. Born-Oppenheimer Approximation - Separation of nuclear and electronic motion - Approximation forming the foundation of computational materials science - Concept of potential energy surface (PES)

  3. Hydrogen Atom - The only analytically solvable Coulombic many-body system - Radial wavefunction and spherical harmonics - Energy levels: $E_n = -13.6/n^2$ eV

  4. 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

  5. Practical Calculations - Computing hydrogen atom wavefunctions in Python - Band structure of 1D periodic potential - Energy levels of quantum wells

Key Points

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 interaction

Problem 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/s
Solution **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 space

Problem 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 degeneracy
Solution **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 insulators

Data Licenses and Citations

Datasets Used

Constants and parameters used in this chapter are based on the following databases/literature:

  1. 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.

  2. 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:

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

  1. Numerical Precision - Results may differ slightly due to floating-point rounding errors - Relative error < 1e-6 is normal

  2. Graph Display - When using Jupyter Notebook: Add %matplotlib inline - When running scripts: plt.show() is required

  3. 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)

1D Band Structure (Section 1.5)

Quantum Well (Section 1.6)

Physical Validity Checks

Code Integrity


References

  1. Griffiths, D. J. (2018). Introduction to Quantum Mechanics (3rd ed.). Cambridge University Press. - Standard textbook on quantum mechanics

  2. Ashcroft, N. W., & Mermin, N. D. (1976). Solid State Physics. Saunders College Publishing. - Classic masterpiece on solid-state physics

  3. Kittel, C. (2004). Introduction to Solid State Physics (8th ed.). Wiley. - Introductory textbook on solid-state physics

  4. Martin, R. M. (2004). Electronic Structure: Basic Theory and Practical Methods. Cambridge University Press. - Theoretical foundations of computational materials science

  5. 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

Disclaimer