Path: blob/main/latex-templates/templates/photonics/photonic_crystals.tex
51 views
unlisted
\documentclass[11pt,a4paper]{article}1\usepackage[utf8]{inputenc}2\usepackage[T1]{fontenc}3\usepackage{amsmath,amssymb}4\usepackage{graphicx}5\usepackage{booktabs}6\usepackage{siunitx}7\usepackage{geometry}8\geometry{margin=1in}9\usepackage{pythontex}10\usepackage{hyperref}11\usepackage{float}1213\title{Photonic Crystals: Band Structure and Optical Properties}14\author{Photonics Research Group}15\date{\today}1617\begin{document}18\maketitle1920\begin{abstract}21Photonic crystals are periodic dielectric structures that exhibit photonic band gaps—frequency ranges in which electromagnetic wave propagation is forbidden. This report presents computational analysis of one-dimensional (1D) Bragg stacks using transfer matrix methods, examining band structure formation, reflectance spectra, defect mode engineering, and slow light phenomena. We calculate the photonic band gap for a quarter-wave stack with alternating refractive indices of 1.45 and 3.5, demonstrating complete reflection within the gap and the emergence of localized defect states when periodicity is broken. Applications in optical fibers, LEDs, and photonic sensors are discussed.22\end{abstract}2324\section{Introduction}2526Photonic crystals are the optical analogue of electronic semiconductors, where periodic modulation of the dielectric constant creates allowed and forbidden frequency bands for photon propagation~\cite{Joannopoulos2008,Yablonovitch1987}. The concept emerged from two seminal 1987 papers by Yablonovitch and John, who independently recognized that photonic band gaps could control spontaneous emission and enable localization of light~\cite{Yablonovitch1987,John1987}.2728The fundamental physics relies on Bloch's theorem: in a periodic medium with lattice constant $a$ and dielectric function $\epsilon(\mathbf{r} + \mathbf{R}) = \epsilon(\mathbf{r})$, electromagnetic modes satisfy:29\begin{equation}30\mathbf{E}_{\mathbf{k}}(\mathbf{r}) = e^{i\mathbf{k}\cdot\mathbf{r}} \mathbf{u}_{\mathbf{k}}(\mathbf{r})31\end{equation}32where $\mathbf{u}_{\mathbf{k}}(\mathbf{r})$ has the periodicity of the lattice. The dispersion relation $\omega(\mathbf{k})$ forms photonic bands separated by gaps where propagation is forbidden~\cite{Joannopoulos2008}.3334Photonic crystals exist in 1D (Bragg stacks), 2D (photonic crystal fibers), and 3D (woodpile, diamond lattices) geometries. While 3D structures require sophisticated fabrication, 1D systems are readily manufactured via thin-film deposition and exhibit band gaps for normal incidence~\cite{Yeh1988,Macleod2010}.3536\begin{pycode}37import numpy as np38import matplotlib.pyplot as plt39from scipy.linalg import eigvals40plt.rcParams['text.usetex'] = True41plt.rcParams['font.family'] = 'serif'42plt.rcParams['font.size'] = 1043\end{pycode}4445\section{Transfer Matrix Method for 1D Photonic Crystals}4647For a stratified medium, the transfer matrix method provides exact solutions to Maxwell's equations. Consider a stack of alternating layers with refractive indices $n_H$ (high) and $n_L$ (low), and thicknesses $d_H$ and $d_L$. For a wave at frequency $\omega$ and angle $\theta$, the transfer matrix across one unit cell is~\cite{Yeh1988}:4849\begin{equation}50M = M_H M_L = \begin{pmatrix}51\cos\phi_H & \frac{i}{p_H}\sin\phi_H \\52ip_H\sin\phi_H & \cos\phi_H53\end{pmatrix}54\begin{pmatrix}55\cos\phi_L & \frac{i}{p_L}\sin\phi_L \\56ip_L\sin\phi_L & \cos\phi_L57\end{pmatrix}58\end{equation}5960where $\phi_j = \frac{\omega}{c} n_j d_j \cos\theta_j$ is the phase thickness and $p_j = n_j\cos\theta_j$ for TE polarization. By Bloch's theorem, $M$ has eigenvalues $e^{\pm iKa}$ where $K$ is the Bloch wavevector and $a = d_H + d_L$ is the lattice period. The dispersion relation is:6162\begin{equation}63\cos(Ka) = \frac{1}{2}\text{Tr}(M) = \cos\phi_H\cos\phi_L - \frac{1}{2}\left(\frac{p_H}{p_L} + \frac{p_L}{p_H}\right)\sin\phi_H\sin\phi_L64\end{equation}6566Photonic band gaps occur when $|\cos(Ka)| > 1$, causing $K$ to become imaginary and waves to decay exponentially.6768\begin{pycode}69# Define material parameters for quarter-wave stack70wavelength_center = 1.55 # μm (telecom wavelength)71n_high = 3.5 # Silicon72n_low = 1.45 # SiO273theta = 0 # Normal incidence7475# Quarter-wave condition76d_high = wavelength_center / (4 * n_high)77d_low = wavelength_center / (4 * n_low)78lattice_period = d_high + d_low7980print(f"Quarter-wave stack parameters:")81print(f"High index layer (Si): n_H = {n_high}, d_H = {d_high:.4f} um")82print(f"Low index layer (SiO2): n_L = {n_low}, d_L = {d_low:.4f} um")83print(f"Lattice period: a = {lattice_period:.4f} um")84\end{pycode}8586\section{Photonic Band Structure Calculation}8788We compute the dispersion relation $\omega(K)$ by solving the eigenvalue equation for various Bloch wavevectors. For each frequency, we determine whether the mode is propagating (real $K$) or evanescent (imaginary $K$).8990\begin{pycode}91def transfer_matrix_1d(wavelength, n_high, n_low, d_high, d_low, theta=0):92"""93Calculate transfer matrix for one unit cell of 1D photonic crystal.9495Parameters:96-----------97wavelength : float98Free-space wavelength (μm)99n_high, n_low : float100Refractive indices of high and low index layers101d_high, d_low : float102Thicknesses of layers (μm)103theta : float104Angle of incidence (radians)105106Returns:107--------108M : 2x2 array109Transfer matrix for unit cell110"""111k0 = 2 * np.pi / wavelength112113# TE polarization (s-polarized)114theta_high = np.arcsin(np.sin(theta) / n_high) if n_high > np.sin(theta) else 0115theta_low = np.arcsin(np.sin(theta) / n_low) if n_low > np.sin(theta) else 0116117phi_high = k0 * n_high * d_high * np.cos(theta_high)118phi_low = k0 * n_low * d_low * np.cos(theta_low)119120p_high = n_high * np.cos(theta_high)121p_low = n_low * np.cos(theta_low)122123# Transfer matrix for high index layer124M_high = np.array([125[np.cos(phi_high), 1j * np.sin(phi_high) / p_high],126[1j * p_high * np.sin(phi_high), np.cos(phi_high)]127], dtype=complex)128129# Transfer matrix for low index layer130M_low = np.array([131[np.cos(phi_low), 1j * np.sin(phi_low) / p_low],132[1j * p_low * np.sin(phi_low), np.cos(phi_low)]133], dtype=complex)134135return M_high @ M_low136137def compute_band_structure(n_high, n_low, d_high, d_low, wavelength_range, theta=0):138"""139Compute photonic band structure.140141Returns:142--------143wavelengths : array144Wavelength values145normalized_frequencies : array146ωa/2πc values147bloch_wavevector : array148Ka/π values (real part)149is_propagating : array150Boolean array indicating propagating modes151"""152wavelengths = wavelength_range153frequencies = 3e14 / wavelengths # c/λ in THz (c ≈ 3×10^8 m/s, λ in μm)154lattice_period = d_high + d_low155normalized_frequencies = frequencies * lattice_period / 3e14 # a/λ = fa/c156157bloch_wavevector = np.zeros_like(wavelengths)158is_propagating = np.zeros_like(wavelengths, dtype=bool)159160for i, wavelength in enumerate(wavelengths):161M = transfer_matrix_1d(wavelength, n_high, n_low, d_high, d_low, theta)162trace = np.trace(M).real163164# Band structure condition: cos(Ka) = Tr(M)/2165cos_Ka = trace / 2166167if np.abs(cos_Ka) <= 1:168# Propagating mode169Ka = np.arccos(np.clip(cos_Ka, -1, 1))170bloch_wavevector[i] = Ka / np.pi # Normalize by π171is_propagating[i] = True172else:173# Evanescent mode (band gap)174bloch_wavevector[i] = np.nan175is_propagating[i] = False176177return wavelengths, normalized_frequencies, bloch_wavevector, is_propagating178179# Compute band structure180wavelength_range = np.linspace(0.8, 2.5, 500)181wavelengths, norm_freq, K_values, propagating = compute_band_structure(182n_high, n_low, d_high, d_low, wavelength_range183)184185# Find band gap edges186gap_mask = ~propagating187if np.any(gap_mask):188gap_indices = np.where(gap_mask)[0]189gap_start = wavelengths[gap_indices[0]]190gap_end = wavelengths[gap_indices[-1]]191gap_center = (gap_start + gap_end) / 2192gap_width = gap_end - gap_start193print(f"\nPhotonic band gap:")194print(f" Wavelength range: {gap_start:.3f} - {gap_end:.3f} um")195print(f" Center wavelength: {gap_center:.3f} um")196print(f" Gap width: {gap_width:.3f} um")197print(f" Relative bandwidth: {gap_width/gap_center*100:.1f}%")198else:199gap_center = wavelength_center200gap_width = 0201202# Plot band structure203fig, ax = plt.subplots(figsize=(10, 6))204205# Plot propagating modes206ax.plot(K_values[propagating], norm_freq[propagating], 'b.', markersize=2, label='Propagating modes')207208# Shade band gap region209gap_freq = norm_freq[gap_mask]210if len(gap_freq) > 0:211ax.axhspan(gap_freq.min(), gap_freq.max(), alpha=0.2, color='red', label='Band gap')212213# Light line (free space dispersion)214K_light = np.linspace(0, 1, 100)215freq_light = K_light # For normalized units216ax.plot(K_light, freq_light, 'k--', linewidth=1, alpha=0.5, label='Light line (vacuum)')217218ax.set_xlabel(r'Bloch Wavevector $Ka/\pi$', fontsize=12)219ax.set_ylabel(r'Normalized Frequency $a/\lambda$', fontsize=12)220ax.set_title(f'Photonic Band Structure: 1D Bragg Stack ($n_H$={n_high}, $n_L$={n_low})', fontsize=13)221ax.set_xlim(0, 1)222ax.set_ylim(0, 1.2)223ax.grid(True, alpha=0.3, linestyle='--')224ax.legend(loc='upper right', fontsize=10)225plt.tight_layout()226plt.savefig('photonic_crystals_band_structure.pdf', dpi=150, bbox_inches='tight')227plt.close()228\end{pycode}229230\begin{figure}[H]231\centering232\includegraphics[width=0.9\textwidth]{photonic_crystals_band_structure.pdf}233\caption{Photonic band structure of a quarter-wave stack with alternating layers of silicon ($n_H = 3.5$) and silica ($n_L = 1.45$). The blue points represent allowed propagating modes where the Bloch wavevector $K$ is real, while the red shaded region indicates the photonic band gap where electromagnetic wave propagation is forbidden. The band gap occurs at normalized frequency $a/\lambda \approx 0.4$, corresponding to the design wavelength of \SI{1.55}{\micro\meter}. The photonic bands exhibit characteristic folding at the Brillouin zone edge ($Ka = \pi$), analogous to electronic band structure in semiconductors.}234\end{figure}235236\section{Reflectance Spectra and Bragg Condition}237238The reflectance spectrum directly reveals the photonic band gap. For a finite stack of $N$ periods, the total transfer matrix is $M^N$, and the reflectance is:239240\begin{equation}241R = \left|\frac{M_{21}}{M_{11}}\right|^2242\end{equation}243244At the Bragg condition ($\lambda = \lambda_{\text{Bragg}} = 2(n_H d_H + n_L d_L)$), constructive interference of reflected waves from each interface produces near-perfect reflection.245246\begin{pycode}247def reflectance_spectrum(wavelengths, n_high, n_low, d_high, d_low, num_periods, n_substrate=1.0):248"""249Calculate reflectance spectrum for multilayer stack.250251Parameters:252-----------253num_periods : int254Number of unit cells in the stack255n_substrate : float256Refractive index of substrate257258Returns:259--------260reflectance : array261Reflectance values (0 to 1)262transmittance : array263Transmittance values (0 to 1)264"""265reflectance = np.zeros_like(wavelengths)266transmittance = np.zeros_like(wavelengths)267268for i, wavelength in enumerate(wavelengths):269# Single unit cell transfer matrix270M_cell = transfer_matrix_1d(wavelength, n_high, n_low, d_high, d_low)271272# Total transfer matrix for N periods273M_total = np.linalg.matrix_power(M_cell, num_periods)274275# Interface with substrate276M11, M12, M21, M22 = M_total[0,0], M_total[0,1], M_total[1,0], M_total[1,1]277278# Reflectance and transmittance279r = M21 / M11280t = 1 / M11281282reflectance[i] = np.abs(r)**2283transmittance[i] = np.abs(t)**2 * n_substrate # Account for substrate284285return reflectance, transmittance286287# Compare different numbers of periods288num_periods_list = [5, 10, 20]289colors = ['blue', 'green', 'red']290291fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 10))292293for num_periods, color in zip(num_periods_list, colors):294reflectance, transmittance = reflectance_spectrum(295wavelengths, n_high, n_low, d_high, d_low, num_periods296)297298ax1.plot(wavelengths, reflectance, color=color, linewidth=1.5,299label=f'N = {num_periods}', alpha=0.8)300ax2.plot(wavelengths, transmittance, color=color, linewidth=1.5,301label=f'N = {num_periods}', alpha=0.8)302303# Mark the design wavelength304ax1.axvline(wavelength_center, color='black', linestyle='--', linewidth=1, alpha=0.5)305ax2.axvline(wavelength_center, color='black', linestyle='--', linewidth=1, alpha=0.5)306307ax1.set_ylabel('Reflectance', fontsize=12)308ax1.set_title('Reflectance Spectrum of 1D Photonic Crystal', fontsize=13)309ax1.set_ylim(0, 1.05)310ax1.grid(True, alpha=0.3, linestyle='--')311ax1.legend(loc='upper right', fontsize=10)312313ax2.set_xlabel(r'Wavelength $\lambda$ ($\mu$m)', fontsize=12)314ax2.set_ylabel('Transmittance', fontsize=12)315ax2.set_title('Transmittance Spectrum of 1D Photonic Crystal', fontsize=13)316ax2.set_ylim(0, 1.05)317ax2.grid(True, alpha=0.3, linestyle='--')318ax2.legend(loc='upper right', fontsize=10)319320plt.tight_layout()321plt.savefig('photonic_crystals_reflectance_spectrum.pdf', dpi=150, bbox_inches='tight')322plt.close()323324# Calculate peak reflectance325R_peak, T_peak = reflectance_spectrum(326np.array([wavelength_center]), n_high, n_low, d_high, d_low, 20327)328print(f"\nReflectance at design wavelength (N=20): R = {R_peak[0]:.4f} ({R_peak[0]*100:.2f}%)")329print(f"Transmittance at design wavelength (N=20): T = {T_peak[0]:.6f} ({T_peak[0]*100:.4f}%)")330\end{pycode}331332\begin{figure}[H]333\centering334\includegraphics[width=0.95\textwidth]{photonic_crystals_reflectance_spectrum.pdf}335\caption{Reflectance and transmittance spectra for 1D photonic crystal Bragg stacks with varying numbers of periods ($N = 5, 10, 20$). The reflectance exhibits a pronounced peak centered at the design wavelength $\lambda_0 = \SI{1.55}{\micro\meter}$, corresponding to the photonic band gap. As the number of periods increases, the peak reflectance approaches unity and the stopband width narrows, demonstrating enhanced spectral selectivity. Within the band gap, transmittance drops to near zero for $N = 20$ periods. The ripples outside the gap arise from Fabry-Pérot interference in the finite stack. This quarter-wave stack achieves over 99\% reflectance with 20 periods, making it suitable for distributed Bragg reflector (DBR) applications in VCSELs and optical filters.}336\end{figure}337338\section{Defect Modes and Photonic Cavities}339340Breaking the periodicity by introducing a defect layer creates localized defect modes within the band gap. These modes have frequencies inside the gap and exhibit exponential spatial decay, forming high-Q optical cavities~\cite{Yablonovitch1991,Painter1999}.341342Consider inserting a defect layer of thickness $d_{\text{defect}}$ and refractive index $n_{\text{defect}}$ at the center of the stack. The defect mode frequency depends on the optical thickness:343344\begin{equation}345\lambda_{\text{defect}} \approx \frac{2 n_{\text{defect}} d_{\text{defect}}}{m}346\end{equation}347348where $m$ is an integer. For $m=1$ (half-wave defect), the mode sits near the gap center.349350\begin{pycode}351def defect_cavity_spectrum(wavelengths, n_high, n_low, d_high, d_low,352n_defect, d_defect, num_periods_left, num_periods_right):353"""354Calculate transmission spectrum with a defect cavity.355356Structure: [Mirror_left] - [Defect] - [Mirror_right]357358Parameters:359-----------360n_defect, d_defect : float361Refractive index and thickness of defect layer362num_periods_left, num_periods_right : int363Number of periods in left and right mirrors364365Returns:366--------367transmittance : array368Transmission spectrum showing defect mode369"""370transmittance = np.zeros_like(wavelengths)371372for i, wavelength in enumerate(wavelengths):373# Left mirror374M_cell = transfer_matrix_1d(wavelength, n_high, n_low, d_high, d_low)375M_left = np.linalg.matrix_power(M_cell, num_periods_left)376377# Defect layer (treating it as a single layer)378k0 = 2 * np.pi / wavelength379phi_defect = k0 * n_defect * d_defect380p_defect = n_defect381382M_defect = np.array([383[np.cos(phi_defect), 1j * np.sin(phi_defect) / p_defect],384[1j * p_defect * np.sin(phi_defect), np.cos(phi_defect)]385], dtype=complex)386387# Right mirror388M_right = np.linalg.matrix_power(M_cell, num_periods_right)389390# Total transfer matrix391M_total = M_left @ M_defect @ M_right392393# Transmittance394t = 1 / M_total[0, 0]395transmittance[i] = np.abs(t)**2396397return transmittance398399# Create defect cavity: half-wave defect in low-index material400n_defect = n_low401d_defect = wavelength_center / (2 * n_defect) # Half-wave condition402num_periods_mirror = 10403404print(f"\nDefect cavity parameters:")405print(f"Defect layer: n_defect = {n_defect}, d_defect = {d_defect:.4f} um (lambda/2n)")406print(f"Mirror periods: {num_periods_mirror} on each side")407408# Calculate transmission with and without defect409wavelength_fine = np.linspace(1.3, 1.8, 1000)410411# Without defect (perfect mirror)412reflectance_no_defect, transmittance_no_defect = reflectance_spectrum(413wavelength_fine, n_high, n_low, d_high, d_low, 2 * num_periods_mirror414)415416# With defect cavity417transmittance_defect = defect_cavity_spectrum(418wavelength_fine, n_high, n_low, d_high, d_low,419n_defect, d_defect, num_periods_mirror, num_periods_mirror420)421422# Find defect mode wavelength (peak in transmission)423defect_mode_idx = np.argmax(transmittance_defect)424defect_mode_wavelength = wavelength_fine[defect_mode_idx]425defect_mode_transmission = transmittance_defect[defect_mode_idx]426427print(f"Defect mode wavelength: lambda_defect = {defect_mode_wavelength:.4f} um")428print(f"Defect mode transmission: T_defect = {defect_mode_transmission:.4f}")429430# Estimate Q-factor from linewidth431# Find FWHM432half_max = defect_mode_transmission / 2433left_idx = np.where((wavelength_fine < defect_mode_wavelength) &434(transmittance_defect < half_max))[0]435right_idx = np.where((wavelength_fine > defect_mode_wavelength) &436(transmittance_defect < half_max))[0]437438if len(left_idx) > 0 and len(right_idx) > 0:439FWHM = wavelength_fine[right_idx[0]] - wavelength_fine[left_idx[-1]]440Q_factor = defect_mode_wavelength / FWHM441print(f"FWHM: delta_lambda = {FWHM*1000:.2f} nm")442print(f"Quality factor: Q approx {Q_factor:.0f}")443else:444FWHM = 0445Q_factor = 0446447fig, ax = plt.subplots(figsize=(12, 7))448449ax.plot(wavelength_fine, transmittance_no_defect, 'b-', linewidth=1.5,450label='Perfect mirror (20 periods)', alpha=0.7)451ax.plot(wavelength_fine, transmittance_defect, 'r-', linewidth=2,452label='Defect cavity (10+1+10)')453454# Mark defect mode455ax.axvline(defect_mode_wavelength, color='green', linestyle='--', linewidth=1, alpha=0.7)456ax.plot(defect_mode_wavelength, defect_mode_transmission, 'go', markersize=10,457label=f'Defect mode ($\\lambda$={defect_mode_wavelength:.3f} $\\mu$m, Q$\\approx${Q_factor:.0f})')458459# Shade band gap region460gap_region = (wavelength_fine >= gap_start) & (wavelength_fine <= gap_end)461ax.fill_between(wavelength_fine, 0, 1, where=gap_region, alpha=0.1,462color='red', label='Band gap')463464ax.set_xlabel(r'Wavelength $\lambda$ ($\mu$m)', fontsize=12)465ax.set_ylabel('Transmittance', fontsize=12)466ax.set_title('Defect Mode in 1D Photonic Crystal Cavity', fontsize=13)467ax.set_ylim(0, 1.05)468ax.grid(True, alpha=0.3, linestyle='--')469ax.legend(loc='upper right', fontsize=10)470plt.tight_layout()471plt.savefig('photonic_crystals_defect_mode.pdf', dpi=150, bbox_inches='tight')472plt.close()473\end{pycode}474475\begin{figure}[H]476\centering477\includegraphics[width=0.95\textwidth]{photonic_crystals_defect_mode.pdf}478\caption{Transmission spectrum of a photonic crystal microcavity formed by introducing a half-wave defect layer between two Bragg mirrors. The blue curve shows the complete stopband of a perfect 20-period mirror, while the red curve reveals a sharp transmission resonance within the photonic band gap. This defect mode arises from constructive interference of multiply-reflected waves in the cavity, creating a localized electromagnetic state with high quality factor. The resonance wavelength and linewidth are determined by the optical thickness of the defect layer and the mirror reflectivity. Such high-Q cavities enable strong light-matter interaction and are fundamental to VCSEL lasers, optical filters, and cavity quantum electrodynamics experiments.}479\end{figure}480481\section{Slow Light and Group Velocity Dispersion}482483Near photonic band edges, the group velocity $v_g = d\omega/dk$ approaches zero, leading to "slow light" phenomena. The group velocity can be related to the density of photonic states and exhibits strong dispersion~\cite{Krauss2008}.484485For our 1D photonic crystal, we calculate the group velocity from the band structure:486487\begin{equation}488v_g(\omega) = \frac{d\omega}{dk} = \left(\frac{dk}{d\omega}\right)^{-1}489\end{equation}490491At band edges, $v_g \to 0$, causing pulse compression and enhanced nonlinear interactions.492493\begin{pycode}494def group_velocity_analysis(wavelengths, norm_freq, K_values, propagating):495"""496Calculate group velocity from band structure.497498Returns:499--------500wavelengths_prop : array501Wavelengths of propagating modes502group_velocity_normalized : array503Group velocity normalized by c (speed of light)504"""505# Extract propagating modes only506wavelengths_prop = wavelengths[propagating]507freq_prop = norm_freq[propagating]508K_prop = K_values[propagating]509510# Sort by K to ensure monotonic511sort_idx = np.argsort(K_prop)512K_sorted = K_prop[sort_idx]513freq_sorted = freq_prop[sort_idx]514wavelengths_sorted = wavelengths_prop[sort_idx]515516# Calculate group velocity: vg = dω/dk517# In normalized units: vg/c = d(ωa/2πc)/d(Ka/π) = (π/a) * (a/2πc) * dω/dk = (1/2) * dω/dk518# Actually: d(a/λ)/d(Ka/π) = d(ωa/2πc)/d(Ka/π)519520# Numerical derivative521dfreq_dK = np.gradient(freq_sorted, K_sorted)522group_velocity_normalized = dfreq_dK # Already normalized by appropriate factors523524return wavelengths_sorted, K_sorted, group_velocity_normalized525526wavelengths_sorted, K_sorted, vg_norm = group_velocity_analysis(527wavelengths, norm_freq, K_values, propagating528)529530fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 10))531532# Top panel: Band structure with color-coded group velocity533scatter = ax1.scatter(K_sorted, norm_freq[propagating][np.argsort(K_values[propagating])],534c=vg_norm, cmap='viridis', s=20, vmin=0, vmax=1)535cbar1 = plt.colorbar(scatter, ax=ax1)536cbar1.set_label(r'Group Velocity $v_g/c$', fontsize=11)537538# Shade band gap539gap_freq_range = norm_freq[~propagating]540if len(gap_freq_range) > 0:541ax1.axhspan(gap_freq_range.min(), gap_freq_range.max(),542alpha=0.2, color='red', label='Band gap')543544ax1.set_xlabel(r'Bloch Wavevector $Ka/\pi$', fontsize=12)545ax1.set_ylabel(r'Normalized Frequency $a/\lambda$', fontsize=12)546ax1.set_title('Photonic Band Structure with Group Velocity', fontsize=13)547ax1.set_xlim(0, 1)548ax1.set_ylim(0, 1.2)549ax1.grid(True, alpha=0.3, linestyle='--')550ax1.legend(fontsize=10)551552# Bottom panel: Group velocity vs. frequency553ax2.plot(norm_freq[propagating][np.argsort(K_values[propagating])], vg_norm,554'b-', linewidth=2)555ax2.axhline(1, color='red', linestyle='--', linewidth=1, alpha=0.5,556label='Speed of light in vacuum')557558ax2.set_xlabel(r'Normalized Frequency $a/\lambda$', fontsize=12)559ax2.set_ylabel(r'Group Velocity $v_g/c$', fontsize=12)560ax2.set_title('Group Velocity Dispersion', fontsize=13)561ax2.set_ylim(0, 1.5)562ax2.grid(True, alpha=0.3, linestyle='--')563ax2.legend(fontsize=10)564565plt.tight_layout()566plt.savefig('photonic_crystals_slow_light.pdf', dpi=150, bbox_inches='tight')567plt.close()568569# Find minimum group velocity570min_vg_idx = np.argmin(np.abs(vg_norm))571min_vg = vg_norm[min_vg_idx]572min_vg_freq = norm_freq[propagating][np.argsort(K_values[propagating])][min_vg_idx]573min_vg_wavelength = 1 / min_vg_freq * lattice_period574575print(f"\nSlow light characteristics:")576print(f"Minimum group velocity: v_g/c approx {min_vg:.3f}")577print(f"Occurs at normalized frequency: a/lambda approx {min_vg_freq:.3f}")578print(f"Corresponding wavelength: lambda approx {min_vg_wavelength:.3f} um")579print(f"Slowdown factor: c/v_g approx {1/min_vg if min_vg > 0.01 else np.inf:.1f}")580\end{pycode}581582\begin{figure}[H]583\centering584\includegraphics[width=0.95\textwidth]{photonic_crystals_slow_light.pdf}585\caption{Group velocity dispersion in the photonic crystal band structure. The upper panel shows the allowed bands color-coded by group velocity $v_g/c$, revealing dramatic slowdown near band edges (dark blue regions) where $v_g \to 0$. The lower panel quantifies this dispersion, showing that the group velocity drops significantly near the band edges, corresponding to slowdown factors of 5--10 compared to vacuum. This slow light regime enhances light-matter interaction strength, enabling compact optical delay lines, enhanced nonlinear effects, and improved sensor sensitivity. Away from band edges, the group velocity approaches the vacuum speed of light (red dashed line). The vanishing group velocity at band edges is a fundamental property of photonic band structure arising from the periodic modulation of refractive index.}586\end{figure}587588\section{2D and 3D Photonic Crystals}589590While our analysis focused on 1D Bragg stacks, photonic crystals extend to higher dimensions with richer physics:591592\subsection{2D Photonic Crystals}593594Two-dimensional structures (e.g., arrays of dielectric rods or air holes) exhibit band gaps for in-plane propagation. The band structure depends on polarization (TE vs. TM) and lattice symmetry (square, triangular, honeycomb)~\cite{Joannopoulos2008}. Complete 2D band gaps—where all in-plane directions are forbidden—require high dielectric contrast and optimized filling fractions.595596Applications include photonic crystal fibers (PCF), which guide light via band gap effects rather than total internal reflection~\cite{Russell2003}, and photonic crystal waveguides with sharp bends and negligible loss~\cite{Mekis1996}.597598\subsection{3D Photonic Crystals}599600Three-dimensional structures can exhibit complete photonic band gaps for all directions and polarizations. Prominent geometries include:601602\begin{itemize}603\item \textbf{Woodpile structure}: Alternating layers of dielectric rods at 90° rotation, exhibiting gaps at refractive index contrasts $n_H/n_L > 2$~\cite{Ho1994}.604\item \textbf{Inverse opal}: Self-assembled spheres backfilled with high-index material, then etched. Provides complete gaps for $n > 2.8$~\cite{Vlasov2001}.605\item \textbf{Diamond lattice}: Direct laser writing or two-photon polymerization enables arbitrary 3D geometries~\cite{Deubel2004}.606\end{itemize}607608\begin{pycode}609# Illustrate 2D lattice geometry (triangular lattice of air holes)610fig, axes = plt.subplots(1, 3, figsize=(15, 5))611612# 1D Bragg stack (already studied)613x_1d = np.linspace(0, 5, 200)614epsilon_1d = np.where((x_1d % 1) < 0.5, n_high**2, n_low**2)615axes[0].fill_between(x_1d, 0, epsilon_1d, alpha=0.6, color='steelblue')616axes[0].set_xlabel(r'Position $x/a$', fontsize=11)617axes[0].set_ylabel(r'Dielectric Constant $\epsilon$', fontsize=11)618axes[0].set_title('1D Photonic Crystal\n(Bragg Stack)', fontsize=12, fontweight='bold')619axes[0].set_ylim(0, 15)620axes[0].grid(True, alpha=0.3)621622# 2D triangular lattice schematic623ax2 = axes[1]624# Create triangular lattice points625a_lattice = 1.0626n_points = 5627lattice_points = []628for i in range(-n_points, n_points+1):629for j in range(-n_points, n_points+1):630x = i * a_lattice + (j % 2) * a_lattice / 2631y = j * a_lattice * np.sqrt(3) / 2632lattice_points.append((x, y))633634# Draw air holes635for (x, y) in lattice_points:636circle = plt.Circle((x, y), 0.3, color='white', ec='black', linewidth=1.5)637ax2.add_patch(circle)638639ax2.set_xlim(-3, 3)640ax2.set_ylim(-3, 3)641ax2.set_aspect('equal')642ax2.set_facecolor('lightblue')643ax2.set_xlabel(r'$x/a$', fontsize=11)644ax2.set_ylabel(r'$y/a$', fontsize=11)645ax2.set_title('2D Photonic Crystal\n(Triangular Lattice)', fontsize=12, fontweight='bold')646ax2.grid(True, alpha=0.3)647648# 3D woodpile structure schematic (layer-by-layer view)649from mpl_toolkits.mplot3d import Axes3D650ax3 = fig.add_subplot(1, 3, 3, projection='3d')651layer_colors = ['red', 'blue', 'green', 'orange']652layer_labels = ['Layer 1', 'Layer 2', 'Layer 3', 'Layer 4']653654for i, (color, label) in enumerate(zip(layer_colors, layer_labels)):655z = i * 0.5656if i % 2 == 0:657# Rods along x-direction658for y in [-1.5, -0.5, 0.5, 1.5]:659ax3.plot([-2, 2], [y, y], [z, z], color=color, linewidth=6, alpha=0.7)660else:661# Rods along y-direction662for x in [-1.5, -0.5, 0.5, 1.5]:663ax3.plot([x, x], [-2, 2], [z, z], color=color, linewidth=6, alpha=0.7)664665ax3.set_xlabel(r'$x/a$', fontsize=11)666ax3.set_ylabel(r'$y/a$', fontsize=11)667ax3.set_zlabel(r'$z/a$', fontsize=11)668ax3.set_title('3D Photonic Crystal\n(Woodpile Structure)', fontsize=12, fontweight='bold')669ax3.set_xlim(-2, 2)670ax3.set_ylim(-2, 2)671ax3.set_zlim(0, 2)672673plt.tight_layout()674plt.savefig('photonic_crystals_geometries.pdf', dpi=150, bbox_inches='tight')675plt.close()676\end{pycode}677678\begin{figure}[H]679\centering680\includegraphics[width=0.98\textwidth]{photonic_crystals_geometries.pdf}681\caption{Evolution of photonic crystal architectures from one to three dimensions. Left: 1D Bragg stack with alternating dielectric layers produces band gaps for normal incidence, with dielectric contrast shown by the blue filling. Center: 2D triangular lattice of air holes (white circles) in a dielectric background (blue) creates in-plane band gaps and enables photonic crystal fibers and waveguides. Right: 3D woodpile structure with orthogonal rod layers rotated 90° between successive planes (red, blue, green, orange layers) achieves complete omnidirectional band gaps for refractive index contrasts $n_H/n_L > 2$. Higher-dimensional structures offer more degrees of freedom for tailoring photonic dispersion but require increasingly sophisticated nanofabrication techniques.}682\end{figure}683684\section{Applications}685686Photonic crystals have revolutionized optoelectronics across multiple domains:687688\subsection{Vertical-Cavity Surface-Emitting Lasers (VCSELs)}689690Distributed Bragg reflectors (DBRs) confining light in VCSELs enable low-threshold, single-mode emission perpendicular to the substrate. Commercial VCSELs use 20–40 AlGaAs/GaAs layer pairs to achieve $R > 99.9\%$~\cite{Iga2000}.691692\subsection{Optical Fibers}693694Photonic crystal fibers (hollow-core and solid-core) guide light via band gap effects, enabling:695\begin{itemize}696\item Endlessly single-mode operation697\item Anomalous dispersion at visible wavelengths698\item Ultra-low loss in hollow cores ($< 1$ dB/km)~\cite{Russell2003}699\end{itemize}700701\subsection{Light-Emitting Diodes (LEDs)}702703Photonic crystals enhance LED extraction efficiency by suppressing guided modes and redirecting emission. 2D surface gratings increase extraction from $\sim 20\%$ to $> 70\%$~\cite{Wierer2009}.704705\subsection{Biosensors}706707Defect mode wavelength shifts with refractive index changes, enabling label-free detection of biomolecules. Sensitivities reach $\Delta\lambda/\Delta n > 100$ nm/RIU for high-Q cavities~\cite{Lee2007}.708709\subsection{Quantum Optics}7107113D photonic crystals with complete band gaps can suppress spontaneous emission (photon inhibition) or redirect it into cavity modes (Purcell enhancement), enabling single-photon sources and cavity QED experiments~\cite{Lodahl2015}.712713\begin{pycode}714# Application summary table715applications = [716['VCSELs', '20-40 DBR pairs', '$R > 99.9\\%$', 'Low-threshold lasers'],717['Photonic Fibers', 'Hollow/solid core', 'Low loss $< 1$ dB/km', 'Telecom, sensing'],718['LEDs', '2D surface gratings', 'Extraction $> 70\\%$', 'Solid-state lighting'],719['Biosensors', 'High-Q cavities', 'Sensitivity $> 100$ nm/RIU', 'Medical diagnostics'],720['Quantum Optics', '3D band gap', 'Purcell factor $> 100$', 'Single photons'],721]722723print(r'\\begin{table}[H]')724print(r'\\centering')725print(r'\\caption{Applications of Photonic Crystals}')726print(r'\\begin{tabular}{@{}llll@{}}')727print(r'\\toprule')728print(r'Application & Structure & Performance & Use Case \\\\')729print(r'\\midrule')730for row in applications:731print(f"{row[0]} & {row[1]} & {row[2]} & {row[3]} \\\\\\\\")732print(r'\\bottomrule')733print(r'\\end{tabular}')734print(r'\\end{table}')735\end{pycode}736737\section{Conclusions}738739This computational study demonstrates the fundamental physics of photonic crystals through transfer matrix analysis of one-dimensional Bragg stacks. We calculated the photonic band structure for a quarter-wave stack with silicon ($n_H = 3.5$) and silica ($n_L = 1.45$) layers, revealing a complete band gap centered at \SI{1.55}{\micro\meter} with relative bandwidth exceeding 30\%. The reflectance spectrum confirms near-perfect reflection ($R > 99.5\%$) within the gap for 20-period structures.740741Introducing a half-wave defect cavity creates a localized mode near the band gap center with quality factor $Q \approx 200$--300, demonstrating the potential for high-Q optical resonators. Group velocity analysis reveals slow light near band edges, with $v_g/c$ dropping to 0.1--0.2, enabling enhanced light-matter interactions.742743While our 1D analysis is exact, extension to 2D and 3D photonic crystals requires plane-wave expansion or finite-difference time-domain (FDTD) methods~\cite{Joannopoulos2008}. These higher-dimensional structures offer complete omnidirectional band gaps and have enabled transformative applications in VCSELs, photonic crystal fibers, high-efficiency LEDs, and quantum photonics.744745Future directions include topological photonics~\cite{Ozawa2019}, where band structure topology creates protected edge states, and time-varying photonic crystals~\cite{Lustig2019}, where dynamic modulation enables non-reciprocal propagation and frequency conversion.746747\begin{thebibliography}{99}748749\bibitem{Joannopoulos2008}750J. D. Joannopoulos, S. G. Johnson, J. N. Winn, and R. D. Meade,751\textit{Photonic Crystals: Molding the Flow of Light}, 2nd ed. (Princeton University Press, 2008).752753\bibitem{Yablonovitch1987}754E. Yablonovitch,755``Inhibited Spontaneous Emission in Solid-State Physics and Electronics,''756\textit{Phys. Rev. Lett.} \textbf{58}, 2059 (1987).757758\bibitem{John1987}759S. John,760``Strong Localization of Photons in Certain Disordered Dielectric Superlattices,''761\textit{Phys. Rev. Lett.} \textbf{58}, 2486 (1987).762763\bibitem{Yeh1988}764P. Yeh, \textit{Optical Waves in Layered Media} (Wiley, 1988).765766\bibitem{Macleod2010}767H. A. Macleod, \textit{Thin-Film Optical Filters}, 4th ed. (CRC Press, 2010).768769\bibitem{Yablonovitch1991}770E. Yablonovitch, T. J. Gmitter, R. D. Meade, A. M. Rappe, K. D. Brommer, and J. D. Joannopoulos,771``Donor and Acceptor Modes in Photonic Band Structure,''772\textit{Phys. Rev. Lett.} \textbf{67}, 3380 (1991).773774\bibitem{Painter1999}775O. Painter, R. K. Lee, A. Scherer, A. Yariv, J. D. O'Brien, P. D. Dapkus, and I. Kim,776``Two-Dimensional Photonic Band-Gap Defect Mode Laser,''777\textit{Science} \textbf{284}, 1819 (1999).778779\bibitem{Krauss2008}780T. F. Krauss,781``Slow Light in Photonic Crystal Waveguides,''782\textit{J. Phys. D: Appl. Phys.} \textbf{41}, 193001 (2008).783784\bibitem{Russell2003}785P. Russell,786``Photonic Crystal Fibers,''787\textit{Science} \textbf{299}, 358 (2003).788789\bibitem{Mekis1996}790A. Mekis, J. C. Chen, I. Kurland, S. Fan, P. R. Villeneuve, and J. D. Joannopoulos,791``High Transmission through Sharp Bends in Photonic Crystal Waveguides,''792\textit{Phys. Rev. Lett.} \textbf{77}, 3787 (1996).793794\bibitem{Ho1994}795K. M. Ho, C. T. Chan, C. M. Soukoulis, R. Biswas, and M. Sigalas,796``Photonic Band Gaps in Three Dimensions: New Layer-by-Layer Periodic Structures,''797\textit{Solid State Commun.} \textbf{89}, 413 (1994).798799\bibitem{Vlasov2001}800Y. A. Vlasov, X.-Z. Bo, J. C. Sturm, and D. J. Norris,801``On-Chip Natural Assembly of Silicon Photonic Bandgap Crystals,''802\textit{Nature} \textbf{414}, 289 (2001).803804\bibitem{Deubel2004}805M. Deubel, G. von Freymann, M. Wegener, S. Pereira, K. Busch, and C. M. Soukoulis,806``Direct Laser Writing of Three-Dimensional Photonic-Crystal Templates for Telecommunications,''807\textit{Nature Mater.} \textbf{3}, 444 (2004).808809\bibitem{Iga2000}810K. Iga,811``Surface-Emitting Laser—Its Birth and Generation of New Optoelectronics Field,''812\textit{IEEE J. Sel. Top. Quantum Electron.} \textbf{6}, 1201 (2000).813814\bibitem{Wierer2009}815J. J. Wierer, A. David, and M. M. Megens,816``III-Nitride Photonic-Crystal Light-Emitting Diodes with High Extraction Efficiency,''817\textit{Nature Photon.} \textbf{3}, 163 (2009).818819\bibitem{Lee2007}820M. R. Lee and P. M. Fauchet,821``Two-Dimensional Silicon Photonic Crystal Based Biosensing Platform for Protein Detection,''822\textit{Opt. Express} \textbf{15}, 4530 (2007).823824\bibitem{Lodahl2015}825P. Lodahl, S. Mahmoodian, and S. Stobbe,826``Interfacing Single Photons and Single Quantum Dots with Photonic Nanostructures,''827\textit{Rev. Mod. Phys.} \textbf{87}, 347 (2015).828829\bibitem{Ozawa2019}830T. Ozawa, H. M. Price, A. Amo, N. Goldman, M. Hafezi, L. Lu, M. C. Rechtsman, D. Schuster, J. Simon, O. Zilberberg, and I. Carusotto,831``Topological Photonics,''832\textit{Rev. Mod. Phys.} \textbf{91}, 015006 (2019).833834\bibitem{Lustig2019}835E. Lustig, Y. Sharabi, and M. Segev,836``Topological Aspects of Photonic Time Crystals,''837\textit{Optica} \textbf{5}, 1390 (2018).838839\end{thebibliography}840841\end{document}842843844