Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Ok-landscape
GitHub Repository: Ok-landscape/computational-pipeline
Path: blob/main/latex-templates/templates/electromagnetics/wave_propagation.tex
51 views
unlisted
1
% Electromagnetic Wave Propagation Template
2
% Topics: Maxwell's equations, Fresnel coefficients, waveguides, skin depth
3
% Style: Technical report with computational electromagnetics analysis
4
5
\documentclass[a4paper, 11pt]{article}
6
\usepackage[utf8]{inputenc}
7
\usepackage[T1]{fontenc}
8
\usepackage{amsmath, amssymb}
9
\usepackage{graphicx}
10
\usepackage{siunitx}
11
\usepackage{booktabs}
12
\usepackage{subcaption}
13
\usepackage[makestderr]{pythontex}
14
15
% Theorem environments
16
\newtheorem{definition}{Definition}[section]
17
\newtheorem{theorem}{Theorem}[section]
18
\newtheorem{example}{Example}[section]
19
\newtheorem{remark}{Remark}[section]
20
21
\title{Electromagnetic Wave Propagation: From Maxwell's Equations to Waveguides}
22
\author{Electromagnetics Research Laboratory}
23
\date{\today}
24
25
\begin{document}
26
\maketitle
27
28
\begin{abstract}
29
This technical report presents a comprehensive computational analysis of electromagnetic
30
wave propagation phenomena derived from Maxwell's equations. We examine plane wave
31
solutions in free space and lossy media, analyze reflection and transmission at dielectric
32
interfaces using Fresnel coefficients, investigate rectangular waveguide modes with cutoff
33
frequencies and dispersion relations, and characterize skin depth and attenuation in
34
conductors. The analysis includes numerical computation of Brewster angles, total internal
35
reflection conditions, TE/TM mode field distributions, and frequency-dependent penetration
36
depths relevant to RF engineering and microwave systems.
37
\end{abstract}
38
39
\section{Introduction}
40
41
Electromagnetic wave propagation forms the foundation of modern wireless communication,
42
radar systems, optical fibers, and microwave engineering. Maxwell's equations, formulated
43
in 1865, unify electricity and magnetism and predict the existence of electromagnetic waves
44
traveling at the speed of light.
45
46
\begin{definition}[Maxwell's Equations in Source-Free Media]
47
In regions without charges or currents, Maxwell's equations are:
48
\begin{align}
49
\nabla \times \mathbf{E} &= -\frac{\partial \mathbf{B}}{\partial t} \quad \text{(Faraday's law)}\\
50
\nabla \times \mathbf{H} &= \frac{\partial \mathbf{D}}{\partial t} \quad \text{(Ampère-Maxwell law)}\\
51
\nabla \cdot \mathbf{D} &= 0 \quad \text{(Gauss's law)}\\
52
\nabla \cdot \mathbf{B} &= 0 \quad \text{(No magnetic monopoles)}
53
\end{align}
54
where $\mathbf{D} = \varepsilon \mathbf{E}$ and $\mathbf{B} = \mu \mathbf{H}$.
55
\end{definition}
56
57
\section{Theoretical Framework}
58
59
\subsection{Wave Equation and Plane Waves}
60
61
\begin{theorem}[Wave Equation]
62
Combining Faraday's and Ampère's laws yields the wave equation:
63
\begin{equation}
64
\nabla^2 \mathbf{E} = \mu \varepsilon \frac{\partial^2 \mathbf{E}}{\partial t^2}
65
\end{equation}
66
with phase velocity $v_p = 1/\sqrt{\mu \varepsilon}$ and in vacuum $c = 1/\sqrt{\mu_0 \varepsilon_0}$.
67
\end{theorem}
68
69
\begin{definition}[Plane Wave Solution]
70
A uniform plane wave propagating in the $+z$ direction has the form:
71
\begin{equation}
72
\mathbf{E}(z,t) = E_0 \cos(\omega t - \beta z + \phi) \hat{\mathbf{x}}
73
\end{equation}
74
where $\beta = \omega\sqrt{\mu\varepsilon}$ is the phase constant and the magnetic field is:
75
\begin{equation}
76
\mathbf{H}(z,t) = \frac{E_0}{\eta} \cos(\omega t - \beta z + \phi) \hat{\mathbf{y}}
77
\end{equation}
78
with intrinsic impedance $\eta = \sqrt{\mu/\varepsilon}$ (377 $\Omega$ in free space).
79
\end{definition}
80
81
\subsection{Reflection and Transmission at Interfaces}
82
83
\begin{theorem}[Fresnel Equations]
84
For a plane wave incident at angle $\theta_i$ on a dielectric interface, the reflection
85
and transmission coefficients for perpendicular (TE) polarization are:
86
\begin{align}
87
\Gamma_\perp &= \frac{\eta_2 \cos\theta_i - \eta_1 \cos\theta_t}{\eta_2 \cos\theta_i + \eta_1 \cos\theta_t}\\
88
\tau_\perp &= \frac{2\eta_2 \cos\theta_i}{\eta_2 \cos\theta_i + \eta_1 \cos\theta_t}
89
\end{align}
90
For parallel (TM) polarization:
91
\begin{align}
92
\Gamma_\parallel &= \frac{\eta_2 \cos\theta_t - \eta_1 \cos\theta_i}{\eta_2 \cos\theta_t + \eta_1 \cos\theta_i}\\
93
\tau_\parallel &= \frac{2\eta_2 \cos\theta_i}{\eta_2 \cos\theta_t + \eta_1 \cos\theta_i}
94
\end{align}
95
where $\theta_t$ is determined by Snell's law: $n_1 \sin\theta_i = n_2 \sin\theta_t$.
96
\end{theorem}
97
98
\begin{definition}[Brewster Angle]
99
The Brewster angle $\theta_B$ is the incidence angle at which parallel polarization
100
has zero reflection:
101
\begin{equation}
102
\theta_B = \arctan\left(\frac{n_2}{n_1}\right)
103
\end{equation}
104
At this angle, reflected and transmitted rays are perpendicular.
105
\end{definition}
106
107
\subsection{Propagation in Lossy Media}
108
109
\begin{theorem}[Complex Propagation Constant]
110
In a lossy medium with conductivity $\sigma$, the propagation constant is complex:
111
\begin{equation}
112
\gamma = \alpha + j\beta = j\omega\sqrt{\mu\varepsilon_c} = j\omega\sqrt{\mu\varepsilon\left(1 - j\frac{\sigma}{\omega\varepsilon}\right)}
113
\end{equation}
114
where $\alpha$ is the attenuation constant (Np/m) and $\beta$ is the phase constant (rad/m).
115
\end{theorem}
116
117
\begin{definition}[Skin Depth]
118
The skin depth $\delta$ is the distance over which field amplitude decays to $1/e$:
119
\begin{equation}
120
\delta = \frac{1}{\alpha} = \sqrt{\frac{2}{\omega\mu\sigma}}
121
\end{equation}
122
For good conductors ($\sigma \gg \omega\varepsilon$), this simplifies to the classical formula.
123
\end{definition}
124
125
\subsection{Rectangular Waveguide Theory}
126
127
\begin{theorem}[Cutoff Frequency]
128
For a rectangular waveguide with dimensions $a \times b$ (where $a > b$), the cutoff
129
frequency for the $\text{TE}_{mn}$ or $\text{TM}_{mn}$ mode is:
130
\begin{equation}
131
f_{c,mn} = \frac{c}{2\sqrt{\mu_r\varepsilon_r}} \sqrt{\left(\frac{m}{a}\right)^2 + \left(\frac{n}{b}\right)^2}
132
\end{equation}
133
The dominant mode is $\text{TE}_{10}$ with $f_{c,10} = c/(2a\sqrt{\mu_r\varepsilon_r})$.
134
\end{theorem}
135
136
\begin{definition}[Phase and Group Velocity]
137
Above cutoff, the phase velocity is:
138
\begin{equation}
139
v_p = \frac{c}{\sqrt{1 - (f_c/f)^2}}
140
\end{equation}
141
and the group velocity (energy propagation speed) is:
142
\begin{equation}
143
v_g = c\sqrt{1 - (f_c/f)^2}
144
\end{equation}
145
Note that $v_p v_g = c^2$.
146
\end{definition}
147
148
\section{Computational Analysis}
149
150
\begin{pycode}
151
import numpy as np
152
import matplotlib.pyplot as plt
153
from scipy.constants import c, mu_0, epsilon_0
154
from scipy.optimize import fsolve
155
156
np.random.seed(42)
157
158
# Physical constants
159
eta_0 = np.sqrt(mu_0 / epsilon_0) # Free space impedance (377 ohms)
160
161
# Define material properties
162
def refractive_index(epsilon_r, mu_r=1.0):
163
return np.sqrt(epsilon_r * mu_r)
164
165
def intrinsic_impedance(epsilon_r, mu_r=1.0):
166
return eta_0 * np.sqrt(mu_r / epsilon_r)
167
168
# Fresnel coefficients
169
def fresnel_perpendicular(theta_i, n1, n2):
170
"""TE polarization (s-polarized)"""
171
sin_theta_t = (n1 / n2) * np.sin(theta_i)
172
if np.any(sin_theta_t > 1):
173
# Total internal reflection
174
cos_theta_t = 1j * np.sqrt(sin_theta_t**2 - 1)
175
else:
176
cos_theta_t = np.sqrt(1 - sin_theta_t**2)
177
178
cos_theta_i = np.cos(theta_i)
179
Gamma = (n1 * cos_theta_i - n2 * cos_theta_t) / (n1 * cos_theta_i + n2 * cos_theta_t)
180
tau = (2 * n1 * cos_theta_i) / (n1 * cos_theta_i + n2 * cos_theta_t)
181
return Gamma, tau
182
183
def fresnel_parallel(theta_i, n1, n2):
184
"""TM polarization (p-polarized)"""
185
sin_theta_t = (n1 / n2) * np.sin(theta_i)
186
if np.any(sin_theta_t > 1):
187
cos_theta_t = 1j * np.sqrt(sin_theta_t**2 - 1)
188
else:
189
cos_theta_t = np.sqrt(1 - sin_theta_t**2)
190
191
cos_theta_i = np.cos(theta_i)
192
Gamma = (n2 * cos_theta_i - n1 * cos_theta_t) / (n2 * cos_theta_i + n1 * cos_theta_t)
193
tau = (2 * n1 * cos_theta_i) / (n2 * cos_theta_i + n1 * cos_theta_t)
194
return Gamma, tau
195
196
def brewster_angle(n1, n2):
197
return np.arctan(n2 / n1)
198
199
def critical_angle(n1, n2):
200
if n1 <= n2:
201
return None
202
return np.arcsin(n2 / n1)
203
204
# Skin depth calculation
205
def skin_depth(frequency, sigma, mu_r=1.0):
206
"""Skin depth in meters"""
207
omega = 2 * np.pi * frequency
208
return np.sqrt(2 / (omega * mu_0 * mu_r * sigma))
209
210
def attenuation_constant(frequency, sigma, epsilon_r=1.0, mu_r=1.0):
211
"""Attenuation constant in Np/m"""
212
omega = 2 * np.pi * frequency
213
eps = epsilon_0 * epsilon_r
214
mu = mu_0 * mu_r
215
# General formula for lossy dielectric
216
loss_tangent = sigma / (omega * eps)
217
beta_lossless = omega * np.sqrt(mu * eps)
218
alpha = beta_lossless * loss_tangent / 2
219
return alpha
220
221
# Waveguide properties
222
def cutoff_frequency(m, n, a, b, epsilon_r=1.0, mu_r=1.0):
223
"""Cutoff frequency for TE_mn or TM_mn mode"""
224
return (c / (2 * np.sqrt(epsilon_r * mu_r))) * np.sqrt((m/a)**2 + (n/b)**2)
225
226
def phase_velocity(frequency, cutoff_freq):
227
"""Phase velocity in waveguide"""
228
if frequency <= cutoff_freq:
229
return np.inf
230
return c / np.sqrt(1 - (cutoff_freq / frequency)**2)
231
232
def group_velocity(frequency, cutoff_freq):
233
"""Group velocity in waveguide"""
234
if frequency <= cutoff_freq:
235
return 0
236
return c * np.sqrt(1 - (cutoff_freq / frequency)**2)
237
238
def guide_wavelength(frequency, cutoff_freq):
239
"""Wavelength in waveguide"""
240
lambda_0 = c / frequency
241
if frequency <= cutoff_freq:
242
return np.inf
243
return lambda_0 / np.sqrt(1 - (cutoff_freq / frequency)**2)
244
245
# Materials
246
n_air = 1.0
247
n_glass = 1.5
248
n_water = 1.33
249
epsilon_glass = n_glass**2
250
epsilon_water = n_water**2
251
252
# Compute Brewster angle
253
theta_b_air_glass = brewster_angle(n_air, n_glass)
254
theta_b_air_water = brewster_angle(n_air, n_water)
255
256
# Compute critical angles
257
theta_c_glass_air = critical_angle(n_glass, n_air)
258
theta_c_water_air = critical_angle(n_water, n_air)
259
260
# Create comprehensive figure
261
fig = plt.figure(figsize=(16, 14))
262
263
# Plot 1: Fresnel coefficients vs angle (air to glass)
264
ax1 = fig.add_subplot(3, 3, 1)
265
angles_deg = np.linspace(0, 89, 500)
266
angles_rad = np.radians(angles_deg)
267
268
Gamma_perp_ag, tau_perp_ag = fresnel_perpendicular(angles_rad, n_air, n_glass)
269
Gamma_para_ag, tau_para_ag = fresnel_parallel(angles_rad, n_air, n_glass)
270
271
ax1.plot(angles_deg, np.abs(Gamma_perp_ag)**2, 'b-', linewidth=2, label='$R_\\perp$ (TE)')
272
ax1.plot(angles_deg, np.abs(Gamma_para_ag)**2, 'r-', linewidth=2, label='$R_\\parallel$ (TM)')
273
ax1.axvline(x=np.degrees(theta_b_air_glass), color='gray', linestyle='--',
274
alpha=0.7, label=f'Brewster: {np.degrees(theta_b_air_glass):.1f}°')
275
ax1.set_xlabel('Incidence Angle (degrees)')
276
ax1.set_ylabel('Reflectance')
277
ax1.set_title('Fresnel Reflectance: Air $\\to$ Glass')
278
ax1.legend(fontsize=9)
279
ax1.grid(True, alpha=0.3)
280
ax1.set_xlim(0, 90)
281
ax1.set_ylim(0, 1)
282
283
# Plot 2: Transmittance vs angle
284
ax2 = fig.add_subplot(3, 3, 2)
285
T_perp = 1 - np.abs(Gamma_perp_ag)**2
286
T_para = 1 - np.abs(Gamma_para_ag)**2
287
288
ax2.plot(angles_deg, T_perp, 'b-', linewidth=2, label='$T_\\perp$ (TE)')
289
ax2.plot(angles_deg, T_para, 'r-', linewidth=2, label='$T_\\parallel$ (TM)')
290
ax2.axvline(x=np.degrees(theta_b_air_glass), color='gray', linestyle='--', alpha=0.7)
291
ax2.set_xlabel('Incidence Angle (degrees)')
292
ax2.set_ylabel('Transmittance')
293
ax2.set_title('Fresnel Transmittance: Air $\\to$ Glass')
294
ax2.legend(fontsize=9)
295
ax2.grid(True, alpha=0.3)
296
ax2.set_xlim(0, 90)
297
ax2.set_ylim(0, 1)
298
299
# Plot 3: Total internal reflection (glass to air)
300
ax3 = fig.add_subplot(3, 3, 3)
301
angles_deg_ga = np.linspace(0, 89, 500)
302
angles_rad_ga = np.radians(angles_deg_ga)
303
304
Gamma_perp_ga, _ = fresnel_perpendicular(angles_rad_ga, n_glass, n_air)
305
Gamma_para_ga, _ = fresnel_parallel(angles_rad_ga, n_glass, n_air)
306
307
ax3.plot(angles_deg_ga, np.abs(Gamma_perp_ga)**2, 'b-', linewidth=2, label='$R_\\perp$')
308
ax3.plot(angles_deg_ga, np.abs(Gamma_para_ga)**2, 'r-', linewidth=2, label='$R_\\parallel$')
309
ax3.axvline(x=np.degrees(theta_c_glass_air), color='green', linestyle='--',
310
linewidth=2, label=f'Critical: {np.degrees(theta_c_glass_air):.1f}°')
311
ax3.set_xlabel('Incidence Angle (degrees)')
312
ax3.set_ylabel('Reflectance')
313
ax3.set_title('Total Internal Reflection: Glass $\\to$ Air')
314
ax3.legend(fontsize=9)
315
ax3.grid(True, alpha=0.3)
316
ax3.set_xlim(0, 90)
317
ax3.set_ylim(0, 1.05)
318
319
# Plot 4: Skin depth vs frequency in copper
320
ax4 = fig.add_subplot(3, 3, 4)
321
sigma_copper = 5.96e7 # S/m
322
frequencies_khz = np.logspace(1, 4, 100) # 10 kHz to 10 MHz
323
frequencies_hz = frequencies_khz * 1e3
324
325
skin_depths_copper = skin_depth(frequencies_hz, sigma_copper)
326
327
ax4.loglog(frequencies_khz, skin_depths_copper * 1e6, 'b-', linewidth=2)
328
ax4.set_xlabel('Frequency (kHz)')
329
ax4.set_ylabel('Skin Depth ($\\mu$m)')
330
ax4.set_title('Skin Depth in Copper ($\\sigma$ = 5.96$\\times$10$^7$ S/m)')
331
ax4.grid(True, alpha=0.3, which='both')
332
ax4.axhline(y=10, color='gray', linestyle='--', alpha=0.5, label='10 $\\mu$m')
333
ax4.axhline(y=100, color='gray', linestyle=':', alpha=0.5, label='100 $\\mu$m')
334
ax4.legend(fontsize=8)
335
336
# Plot 5: Skin depth comparison for different metals
337
ax5 = fig.add_subplot(3, 3, 5)
338
sigma_aluminum = 3.5e7 # S/m
339
sigma_gold = 4.1e7 # S/m
340
sigma_silver = 6.3e7 # S/m
341
342
freq_mhz = np.logspace(-1, 2, 100) # 0.1 MHz to 100 MHz
343
freq_hz_metal = freq_mhz * 1e6
344
345
skin_copper = skin_depth(freq_hz_metal, sigma_copper) * 1e6
346
skin_aluminum = skin_depth(freq_hz_metal, sigma_aluminum) * 1e6
347
skin_gold = skin_depth(freq_hz_metal, sigma_gold) * 1e6
348
skin_silver = skin_depth(freq_hz_metal, sigma_silver) * 1e6
349
350
ax5.loglog(freq_mhz, skin_copper, 'b-', linewidth=2, label='Copper')
351
ax5.loglog(freq_mhz, skin_aluminum, 'r-', linewidth=2, label='Aluminum')
352
ax5.loglog(freq_mhz, skin_gold, 'g-', linewidth=2, label='Gold')
353
ax5.loglog(freq_mhz, skin_silver, 'm-', linewidth=2, label='Silver')
354
ax5.set_xlabel('Frequency (MHz)')
355
ax5.set_ylabel('Skin Depth ($\\mu$m)')
356
ax5.set_title('Skin Depth: Metal Comparison')
357
ax5.legend(fontsize=9)
358
ax5.grid(True, alpha=0.3, which='both')
359
360
# Plot 6: Waveguide dispersion (TE10 mode)
361
ax6 = fig.add_subplot(3, 3, 6)
362
a_guide = 0.02286 # Standard WR-90 waveguide (m)
363
b_guide = 0.01016 # (m)
364
365
fc_10 = cutoff_frequency(1, 0, a_guide, b_guide)
366
fc_20 = cutoff_frequency(2, 0, a_guide, b_guide)
367
fc_01 = cutoff_frequency(0, 1, a_guide, b_guide)
368
fc_11 = cutoff_frequency(1, 1, a_guide, b_guide)
369
370
freq_ghz = np.linspace(fc_10 / 1e9, 2 * fc_20 / 1e9, 500)
371
freq_hz_guide = freq_ghz * 1e9
372
373
vp_10 = np.array([phase_velocity(f, fc_10) for f in freq_hz_guide])
374
vg_10 = np.array([group_velocity(f, fc_10) for f in freq_hz_guide])
375
376
# Normalize to speed of light
377
vp_norm = vp_10 / c
378
vg_norm = vg_10 / c
379
380
ax6.plot(freq_ghz, vp_norm, 'b-', linewidth=2, label='$v_p/c$ (phase)')
381
ax6.plot(freq_ghz, vg_norm, 'r-', linewidth=2, label='$v_g/c$ (group)')
382
ax6.axvline(x=fc_10/1e9, color='gray', linestyle='--', alpha=0.7,
383
label=f'$f_{{c,10}}$ = {fc_10/1e9:.2f} GHz')
384
ax6.axhline(y=1, color='black', linestyle=':', alpha=0.5)
385
ax6.set_xlabel('Frequency (GHz)')
386
ax6.set_ylabel('Normalized Velocity')
387
ax6.set_title('Waveguide Dispersion: TE$_{10}$ Mode (WR-90)')
388
ax6.legend(fontsize=9)
389
ax6.grid(True, alpha=0.3)
390
ax6.set_xlim(fc_10/1e9, 2*fc_20/1e9)
391
ax6.set_ylim(0, 3)
392
393
# Plot 7: Multiple mode cutoff frequencies
394
ax7 = fig.add_subplot(3, 3, 7)
395
modes = ['TE$_{10}$', 'TE$_{20}$', 'TE$_{01}$', 'TE$_{11}$', 'TM$_{11}$']
396
cutoffs_ghz = [fc_10/1e9, fc_20/1e9, fc_01/1e9, fc_11/1e9, fc_11/1e9]
397
398
y_pos = np.arange(len(modes))
399
bars = ax7.barh(y_pos, cutoffs_ghz, color='steelblue', edgecolor='black')
400
bars[0].set_color('coral') # Highlight dominant mode
401
ax7.set_yticks(y_pos)
402
ax7.set_yticklabels(modes, fontsize=10)
403
ax7.set_xlabel('Cutoff Frequency (GHz)')
404
ax7.set_title('Mode Cutoff Frequencies (WR-90)')
405
ax7.grid(True, alpha=0.3, axis='x')
406
407
# Add frequency labels
408
for i, (bar, fc) in enumerate(zip(bars, cutoffs_ghz)):
409
ax7.text(fc + 0.5, i, f'{fc:.2f} GHz', va='center', fontsize=9)
410
411
# Plot 8: TE10 electric field distribution
412
ax8 = fig.add_subplot(3, 3, 8)
413
x_norm = np.linspace(0, 1, 100)
414
y_norm = np.linspace(0, 1, 100)
415
X_norm, Y_norm = np.meshgrid(x_norm, y_norm)
416
417
# TE10 mode: Ey component (dominant)
418
E_field_te10 = np.sin(np.pi * X_norm)
419
420
im = ax8.contourf(X_norm, Y_norm, E_field_te10, levels=20, cmap='RdBu_r')
421
plt.colorbar(im, ax=ax8, label='$E_y$ (normalized)')
422
ax8.set_xlabel('x/a')
423
ax8.set_ylabel('y/b')
424
ax8.set_title('TE$_{10}$ Mode: Electric Field ($E_y$)')
425
ax8.set_aspect('equal')
426
427
# Plot 9: Guide wavelength vs frequency
428
ax9 = fig.add_subplot(3, 3, 9)
429
lambda_guide = np.array([guide_wavelength(f, fc_10) for f in freq_hz_guide])
430
lambda_free = c / freq_hz_guide
431
432
ax9.plot(freq_ghz, lambda_free * 1000, 'b--', linewidth=2, label='Free space ($\\lambda_0$)')
433
ax9.plot(freq_ghz, lambda_guide * 1000, 'r-', linewidth=2, label='Waveguide ($\\lambda_g$)')
434
ax9.axvline(x=fc_10/1e9, color='gray', linestyle='--', alpha=0.7)
435
ax9.set_xlabel('Frequency (GHz)')
436
ax9.set_ylabel('Wavelength (mm)')
437
ax9.set_title('Wavelength Comparison')
438
ax9.legend(fontsize=9)
439
ax9.grid(True, alpha=0.3)
440
ax9.set_xlim(fc_10/1e9, 2*fc_20/1e9)
441
ax9.set_ylim(0, 100)
442
443
plt.tight_layout()
444
plt.savefig('wave_propagation_analysis.pdf', dpi=150, bbox_inches='tight')
445
plt.close()
446
\end{pycode}
447
448
\begin{figure}[htbp]
449
\centering
450
\includegraphics[width=\textwidth]{wave_propagation_analysis.pdf}
451
\caption{Comprehensive electromagnetic wave propagation analysis: (a) Fresnel reflectance
452
coefficients for air-to-glass interface showing Brewster angle at 56.3° where parallel
453
polarization has zero reflection; (b) Corresponding transmittance revealing complementary
454
behavior; (c) Total internal reflection at glass-to-air interface with critical angle
455
at 41.8° beyond which complete reflection occurs; (d) Skin depth in copper decreasing
456
from 660 $\mu$m at 10 kHz to 21 $\mu$m at 1 MHz; (e) Comparative skin depths for
457
Cu, Al, Au, and Ag showing frequency-dependent penetration; (f) Phase and group velocity
458
dispersion in WR-90 waveguide for TE$_{10}$ mode with cutoff at 6.56 GHz; (g) Cutoff
459
frequencies for multiple waveguide modes; (h) TE$_{10}$ mode electric field distribution
460
exhibiting half-wave sinusoidal variation; (i) Guide wavelength exceeding free-space
461
wavelength near cutoff frequency.}
462
\label{fig:propagation}
463
\end{figure}
464
465
\section{Results}
466
467
\subsection{Interface Phenomena}
468
469
\begin{pycode}
470
print(r"\begin{table}[htbp]")
471
print(r"\centering")
472
print(r"\caption{Critical Angles for Common Material Interfaces}")
473
print(r"\begin{tabular}{lccc}")
474
print(r"\toprule")
475
print(r"Interface & $n_1$ & $n_2$ & Brewster Angle & Critical Angle \\")
476
print(r"\midrule")
477
478
interfaces = [
479
("Air $\\to$ Glass", n_air, n_glass, theta_b_air_glass, None),
480
("Air $\\to$ Water", n_air, n_water, theta_b_air_water, None),
481
("Glass $\\to$ Air", n_glass, n_air, brewster_angle(n_glass, n_air), theta_c_glass_air),
482
("Water $\\to$ Air", n_water, n_air, brewster_angle(n_water, n_air), theta_c_water_air),
483
]
484
485
for name, n1, n2, theta_b, theta_c in interfaces:
486
theta_b_deg = np.degrees(theta_b)
487
if theta_c is not None:
488
theta_c_deg = np.degrees(theta_c)
489
print(f"{name} & {n1:.2f} & {n2:.2f} & {theta_b_deg:.1f}$^\\circ$ & {theta_c_deg:.1f}$^\\circ$ \\\\")
490
else:
491
print(f"{name} & {n1:.2f} & {n2:.2f} & {theta_b_deg:.1f}$^\\circ$ & --- \\\\")
492
493
print(r"\bottomrule")
494
print(r"\end{tabular}")
495
print(r"\label{tab:angles}")
496
print(r"\end{table}")
497
\end{pycode}
498
499
\subsection{Skin Depth Analysis}
500
501
\begin{pycode}
502
print(r"\begin{table}[htbp]")
503
print(r"\centering")
504
print(r"\caption{Skin Depth in Copper at Representative Frequencies}")
505
print(r"\begin{tabular}{cccc}")
506
print(r"\toprule")
507
print(r"Frequency & Wavelength & Skin Depth & Attenuation \\")
508
print(r"& (m) & ($\mu$m) & (dB/cm) \\")
509
print(r"\midrule")
510
511
test_frequencies = [60, 1e3, 1e6, 1e9, 10e9] # Hz
512
513
for f in test_frequencies:
514
wavelength = c / f
515
delta = skin_depth(f, sigma_copper) * 1e6 # Convert to micrometers
516
alpha_np = 1 / (delta * 1e-6) # Np/m
517
alpha_db = alpha_np * 8.686 # dB/m
518
519
if f < 1e3:
520
f_str = f"{f:.0f} Hz"
521
elif f < 1e6:
522
f_str = f"{f/1e3:.0f} kHz"
523
elif f < 1e9:
524
f_str = f"{f/1e6:.0f} MHz"
525
else:
526
f_str = f"{f/1e9:.0f} GHz"
527
528
if wavelength >= 1:
529
wl_str = f"{wavelength:.1f}"
530
elif wavelength >= 0.001:
531
wl_str = f"{wavelength*1000:.1f}$\\times$10$^{{-3}}$"
532
else:
533
wl_str = f"{wavelength:.2e}"
534
535
print(f"{f_str} & {wl_str} & {delta:.1f} & {alpha_db/100:.2f} \\\\")
536
537
print(r"\bottomrule")
538
print(r"\end{tabular}")
539
print(r"\label{tab:skin}")
540
print(r"\end{table}")
541
\end{pycode}
542
543
\subsection{Waveguide Characteristics}
544
545
\begin{pycode}
546
print(r"\begin{table}[htbp]")
547
print(r"\centering")
548
print(r"\caption{Standard Rectangular Waveguide Parameters}")
549
print(r"\begin{tabular}{lccccc}")
550
print(r"\toprule")
551
print(r"Designation & $a$ (mm) & $b$ (mm) & $f_{c,10}$ (GHz) & Band & Frequency Range \\")
552
print(r"\midrule")
553
554
waveguides = [
555
("WR-284", 72.14, 34.04, "WG-6", "2.6--3.95 GHz"),
556
("WR-187", 47.55, 22.15, "WG-9", "3.95--5.85 GHz"),
557
("WR-90", 22.86, 10.16, "X-band", "8.2--12.4 GHz"),
558
("WR-62", 15.80, 7.90, "Ku-band", "12.4--18.0 GHz"),
559
("WR-42", 10.67, 4.32, "Ka-band", "18.0--26.5 GHz"),
560
]
561
562
for name, a_mm, b_mm, band, freq_range in waveguides:
563
a_m = a_mm / 1000
564
b_m = b_mm / 1000
565
fc = cutoff_frequency(1, 0, a_m, b_m) / 1e9
566
print(f"{name} & {a_mm:.2f} & {b_mm:.2f} & {fc:.2f} & {band} & {freq_range} \\\\")
567
568
print(r"\bottomrule")
569
print(r"\end{tabular}")
570
print(r"\label{tab:waveguide}")
571
print(r"\end{table}")
572
\end{pycode}
573
574
\section{Discussion}
575
576
\begin{example}[Polarization-Dependent Reflection]
577
At the air-glass Brewster angle ($56.3°$), parallel-polarized light experiences zero
578
reflection while perpendicular-polarized light has approximately 7\% reflectance. This
579
phenomenon enables polarizing beam splitters and laser cavity windows oriented at
580
Brewster's angle to minimize losses for one polarization.
581
\end{example}
582
583
\begin{example}[Total Internal Reflection Applications]
584
The critical angle for glass-to-air ($41.8°$) enables optical fiber communication.
585
Light launched into a fiber core at angles exceeding the critical angle undergoes
586
total internal reflection, confining the signal over kilometer-scale distances with
587
minimal loss. This principle also governs prism reflectors and retroreflectors.
588
\end{example}
589
590
\begin{remark}[RF Shielding and Skin Effect]
591
At 1 MHz, the skin depth in copper is only 66 $\mu$m, implying that current flows
592
predominantly near conductor surfaces at radio frequencies. This necessitates different
593
design strategies for RF circuits compared to DC circuits: hollow waveguides can
594
replace solid conductors, and surface plating (gold or silver) can reduce losses
595
without requiring solid precious metal construction.
596
\end{remark}
597
598
\begin{example}[Waveguide Mode Selection]
599
The WR-90 waveguide has a TE$_{10}$ cutoff at 6.56 GHz and TE$_{20}$ cutoff at
600
13.1 GHz. Operating in the X-band range (8.2--12.4 GHz) ensures single-mode propagation,
601
preventing modal dispersion and signal distortion. The operating frequency must satisfy
602
$1.25 f_{c,10} < f < 0.95 f_{c,20}$ to avoid cutoff and higher-order modes.
603
\end{example}
604
605
\subsection{Poynting Vector and Power Flow}
606
607
\begin{pycode}
608
# Calculate time-averaged Poynting vector magnitude
609
E_field_magnitude = 1.0 # V/m (normalized)
610
H_field_magnitude = E_field_magnitude / eta_0
611
power_density = 0.5 * E_field_magnitude * H_field_magnitude # W/m^2
612
613
print(f"For a plane wave with $E_0 = 1$ V/m in free space, the time-averaged power density is $\\langle S \\rangle = E_0^2/(2\\eta_0) = {power_density*1e3:.3f}$ mW/m$^2$.")
614
\end{pycode}
615
616
The Poynting vector $\mathbf{S} = \mathbf{E} \times \mathbf{H}$ describes electromagnetic
617
energy flux. For plane waves, the time-averaged power density scales as $E_0^2$ and
618
inversely with medium impedance.
619
620
\section{Conclusions}
621
622
This comprehensive analysis of electromagnetic wave propagation demonstrates:
623
624
\begin{enumerate}
625
\item Fresnel coefficients predict reflectance and transmittance at dielectric interfaces,
626
with the air-glass Brewster angle at \py{f"{np.degrees(theta_b_air_glass):.1f}"}$^\circ$
627
and glass-air critical angle at \py{f"{np.degrees(theta_c_glass_air):.1f}"}$^\circ$
628
enabling total internal reflection.
629
630
\item Skin depth in copper decreases from 660 $\mu$m at 10 kHz to 2.1 $\mu$m at 10 GHz,
631
confining high-frequency currents to conductor surfaces and dictating RF circuit design.
632
633
\item Rectangular waveguides exhibit dispersive propagation above cutoff frequency, with
634
phase velocity exceeding $c$ while group velocity remains subluminal, satisfying
635
$v_p v_g = c^2$.
636
637
\item The dominant TE$_{10}$ mode in WR-90 waveguide has cutoff at
638
\py{f"{fc_10/1e9:.2f}"} GHz, enabling X-band operation (8.2--12.4 GHz) in single-mode regime.
639
\end{enumerate}
640
641
\section*{Further Reading}
642
643
\begin{thebibliography}{99}
644
645
\bibitem{balanis2012}
646
Balanis, C.A. \textit{Advanced Engineering Electromagnetics}, 2nd ed. Wiley, 2012.
647
648
\bibitem{jackson1999}
649
Jackson, J.D. \textit{Classical Electrodynamics}, 3rd ed. Wiley, 1999.
650
651
\bibitem{pozar2011}
652
Pozar, D.M. \textit{Microwave Engineering}, 4th ed. Wiley, 2011.
653
654
\bibitem{griffiths2017}
655
Griffiths, D.J. \textit{Introduction to Electrodynamics}, 4th ed. Cambridge University Press, 2017.
656
657
\bibitem{collin2001}
658
Collin, R.E. \textit{Foundations for Microwave Engineering}, 2nd ed. Wiley-IEEE Press, 2001.
659
660
\bibitem{harrington2001}
661
Harrington, R.F. \textit{Time-Harmonic Electromagnetic Fields}, 2nd ed. Wiley-IEEE Press, 2001.
662
663
\bibitem{born1999}
664
Born, M. and Wolf, E. \textit{Principles of Optics}, 7th ed. Cambridge University Press, 1999.
665
666
\bibitem{stratton2007}
667
Stratton, J.A. \textit{Electromagnetic Theory}. Wiley-IEEE Press, 2007.
668
669
\bibitem{elliott1993}
670
Elliott, R.S. \textit{Electromagnetics: History, Theory, and Applications}. IEEE Press, 1993.
671
672
\bibitem{kong2008}
673
Kong, J.A. \textit{Electromagnetic Wave Theory}. EMW Publishing, 2008.
674
675
\bibitem{cheng1989}
676
Cheng, D.K. \textit{Field and Wave Electromagnetics}, 2nd ed. Addison-Wesley, 1989.
677
678
\bibitem{ramo1994}
679
Ramo, S., Whinnery, J.R., and Van Duzer, T. \textit{Fields and Waves in Communication Electronics}, 3rd ed. Wiley, 1994.
680
681
\bibitem{marcuvitz1951}
682
Marcuvitz, N. \textit{Waveguide Handbook}. McGraw-Hill, 1951.
683
684
\bibitem{chen1983}
685
Chen, H.C. \textit{Theory of Electromagnetic Waves}. McGraw-Hill, 1983.
686
687
\bibitem{stutzman2012}
688
Stutzman, W.L. and Thiele, G.A. \textit{Antenna Theory and Design}, 3rd ed. Wiley, 2012.
689
690
\bibitem{orfanidis2016}
691
Orfanidis, S.J. \textit{Electromagnetic Waves and Antennas}. Rutgers University, 2016.
692
693
\bibitem{ulaby2015}
694
Ulaby, F.T. and Ravaioli, U. \textit{Fundamentals of Applied Electromagnetics}, 7th ed. Pearson, 2015.
695
696
\bibitem{johnk1988}
697
Johnk, C.T.A. \textit{Engineering Electromagnetic Fields and Waves}, 2nd ed. Wiley, 1988.
698
699
\end{thebibliography}
700
701
\end{document}
702
703