8.1 有限差分时域法(FDTD)


8.1 有限差分时域法(FDTD)

Kane Yee 在 1966 年提出的方法如今是 CEM 的"大众情人":一行时间步进就能看到波在结构里传播、反射、谐振的全过程。本节讲清它的三件核心:Yee 网格的空间交错、时间上的蛙跳推进、以及稳定性与数值色散这两道"保修条款"。

Yee 网格:把旋度方程请进格子

FDTD 直接离散麦克斯韦两条旋度方程(法拉第+安培-麦克斯韦)。Yee 的巧思在空间交错:每个网格单元里,E 的三个分量放在棱边中点、H 的三个分量放在面心——恰使每个 E 分量被四个环绕的 H 分量"包围",法拉第定律的环路积分离散成一圈差分,正是第 3 章"磁力线绕电流打转"的数字化版本。

时间上蛙跳推进:n 时刻的 E 推进出 n+1/2 时刻的 H,H 又推进出 n+1 时刻的 E——E 与 H 永远错开半步,中央差分的精度免费拿满,且两方程的"互相生成"结构原样保留(这正是第 4 章"负号配对"的时域电影)。

一维情形把机制看透(E_x、H_y 沿 z 传播):

H_y^(n+1/2)(k+1/2) = H_y^(n−1/2)(k+1/2) + (Δt/μΔz)·[E_x^n(k+1) − E_x^n(k)]
E_x^(n+1)(k) = E_x^n(k) + (Δt/εΔz)·[H_y^(n+1/2)(k+1/2) − H_y^(n+1/2)(k−1/2)]

每格的更新只依赖左右邻居——不需要解方程组,一个 for 循环扫过全场,这是 FDTD"简单粗暴"的全部含义。

两道保修条款

CFL 稳定性条件:时间步必须满足 c·Δt ≤ 1/√(1/Δx² + 1/Δy² + 1/Δz²)(三维),即一个时间步内信息不能跑过一格。违反它,误差像滚雪球一样指数爆炸,几百步内 NaN 淹没一切。物理上这是"因果律的离散化":差分格式的"声速"不得低于真实光速的传播速度,否则数值超光速摧毁稳定性。

数值色散:即使稳定,离散网格上相速也依赖频率与传播方向(连续方程本无此性)——一个脉冲走得越远,被网格色散抹得越宽。对策是网格加密(经验:每最短波长 ≥ 10–20 格)与非均匀网格(场变剧烈处加密、空旷区放粗)。第 7 章阵列对幅相误差敏感,长距离传播的 FDTD 仿真必须报告网格密度,否则结果的旁瓣不可信。

边界处理:FDTD 的网格有限而波要"感觉"到无穷远。吸收边界(Mur 一阶、以及事实标准 PML 完美匹配层——在边界区给介质赋上精心设计的复各向异性参数,让波"无反射地消失")把开放问题关进有限网格。PML 的设计本身就是第 5 章"阻抗匹配"思想的一次华丽变奏。

演练:30 行 FDTD 看反射与驻波

# 一维 FDTD:高斯脉冲打到金属面,观察反射与驻波 import numpy as np import matplotlib.pyplot as plt N, T = 200, 700 ez = np.zeros(N); hy = np.zeros(N) # E_x, H_y imp0 = 377.0 for t in range(T): # 磁场更新(除最后一格,右端吸收简化) hy[:-1] += (ez[1:] - ez[:-1]) / imp0 # 电场更新(第0格注入高斯脉冲的软源) ez[1:] += (hy[1:] - hy[:-1]) * imp0 / 1.0 * (1/1) # εr=μr=1 ez[0] = np.exp(-((t-30)/12)**2) ez[-1] = 0.0 # 右端 PEC:E 切向为零 plt.plot(ez); plt.title(f't={T}'); plt.show() # 现象:脉冲右行→PEC 全反射反相→与后续入射叠加出驻波纹

运行后你会看到高斯脉冲右行、撞到右端(切向 E 为零的完美导体)被反相反射——这正是第 6 章 Γ = −1 的时域电影;反射波与后续波形叠加出驻波包络。改动两行就能做两个实验:把 ez[-1]=0 改为吸收条件(如 ez[-1]=ez[-2]),反射消失(粗配吸收边界);在中间插入一段 εr=4 的区域(更新公式乘 1/εr),看到脉冲在介电界面部分反射、透射变慢变密——第 5 章斯涅尔定律的一维现场版。

FDTD 的性格与适用面

优点:一次仿真覆盖超宽带(脉冲含全谱,傅里叶变换后每个频点都有答案);算法天然并行(每格独立更新,GPU 加速几乎线性);对色散/非线性材料的时间局部性算法友好。

代价:全场离散——计算量随体积增长,电大尺寸问题(目标尺寸数百波长)内存爆炸;几何拟合受矩形网格限制(阶梯近似曲面,除非用共形技术补救)。典型主场:超宽带天线、电磁兼容(第 9 章的机箱屏蔽、PCB 辐射)、生物电磁剂量(SAR 计算)、光子器件。

易错点

时间步"差不多就行":CFL 是硬红线,差 1% 的越界也会在几千步后爆炸;改网格尺寸后必须重算 Δt 上限。

脉冲频谱与网格分辨率脱节:高斯脉冲太窄(高频丰富)而网格按低频设计,高频段被数值色散污染——注入脉冲的带宽必须与"每最短波长 10 格以上"的网格联合设计。

把 PML 当完美的:PML 吸收有限(典型 −60 至 −100 dB 反射),且对低掠射角、修逝波效果下降;谐振腔 Q 值仿真时 PML 残余反射可能是误差主源,需要收敛性研究。

补充辨析:三道是非题划清边界

第一道:"FDTD 一次仿真得到全频段结果,所以永远优先选它"——不对:宽带优势只在激励频谱与网格分辨率匹配时成立;窄带高 Q 问题(腔体滤波器)用 FDTD 要等谐振建立,时域漫长,频域 FEM 反而快。第二道:"网格加密总能让结果收敛到真解"——在模型正确的前提下是;但材料参数、边界条件、几何简化的误差不会随网格消失,收敛的只是"离散误差"这一项。第三道:"CFL 条件只是数值技巧,物理上无意义"——它可解读为"数值信息速度不得低于物理信息速度"的因果要求,与狭义相对论的精神同源(第 10 章将看到光速作为因果上限的深意);数值方法的稳定性条件背后常站着一条物理原理,这是 CEM 最耐人寻味的风景之一。最后建议动手把 8.1 的最小代码扩展成二维:加一排 y 方向 E 分量、放一个介质圆柱,高斯脉冲绕过圆柱的散射波形立刻可见——百行以内的"个人雷达实验室",是理解第 9 章 EMC 仿真报告的最好预习。

数字感受:一个 10×10×10 波长的三维 FDTD 模型按每波长 15 格剖分即 150³ ≈ 340 万网格、内存数 GB、单频结果需数分钟到数小时——"电大尺寸"的内存墙由此可感。理解这个数量级,就理解了本章三种方法与高频近似为何必须分工存在:不是算法不够聪明,是问题规模在按立方暴涨。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U