4、FDTD仿真入门:FDTD方法原理、仿真区域设置、边界条件(PML、周期、Bloch)、网格精度与收敛性
FDTD(时域有限差分法)是光芯片与波导仿真中最核心的数值方法之一。与频域方法(如有限元法)不同,FDTD直接在时域对麦克斯韦方程组进行离散求解,通过一次仿真即可获得宽谱响应,非常适合分析波导模式、透射/反射谱、Q值、远场分布等关键参数。然而,FDTD的精度与效率高度依赖于仿真区域设置、边界条件选择以及网格划分策略。本章将从原理出发,系统讲解仿真区域构建、PML/周期/Bloch边界条件的适用场景,以及网格精度与收敛性验证方法,帮助读者建立一套可落地的仿真调试流程。
上图展示了FDTD仿真中四个核心要素的关联关系:FDTD原理是基础,决定了仿真区域如何构建;仿真区域的大小和形状直接影响边界条件的选择;而边界条件与网格划分共同决定了仿真的精度与收敛性。下面逐一展开。
4.1 FDTD方法核心原理
FDTD方法由K.S. Yee于1966年提出,其核心思想是将空间划分为Yee网格,电场和磁场分量在空间上交替排列,在时间上采用蛙跳式步进。每个电场分量由周围四个磁场分量更新,反之亦然。这种离散方式天然满足麦克斯韦方程的旋度关系,无需矩阵求逆,适合并行计算。
在Lumerical FDTD中,时间步长由Courant稳定性条件决定:
dt ≤ 1 / (c * sqrt(1/dx² + 1/dy² + 1/dz²))
其中c为光速,dx、dy、dz为网格步长。实际软件会自动计算并设置安全系数(通常为0.99)。
FDTD的典型工作流程包括:
- 定义材料(折射率、色散模型、各向异性等);
- 构建几何结构(波导、谐振腔、光栅等);
- 设置光源(偶极子、模式光源、平面波、高斯光束等);
- 添加监视器(时间监视器、频域监视器、折射率监视器等);
- 设置仿真区域和边界条件;
- 划分网格并运行仿真;
- 分析结果(透射率、场分布、远场等)。
核心要点:FDTD一次仿真可覆盖宽谱范围(如1.3μm-1.6μm),适合分析波导色散、模式耦合、谐振波长等。但需要注意,FDTD是体积离散方法,对于高Q值结构(Q>10⁵)或超大尺寸结构(>100λ),计算资源消耗会急剧增加。
4.2 仿真区域设置
仿真区域(Simulation Region)定义了FDTD计算的空间范围。区域设置直接影响计算量、边界条件类型以及结果的物理意义。Lumerical中仿真区域为矩形盒,可设置x、y、z三个方向的尺寸。
区域尺寸选择原则:
- 波导类结构:区域应覆盖波导芯层及足够多的包层(通常至少1-2μm),确保倏逝场被充分捕获;
- 谐振腔类:区域需包含腔体及周围场分布区域,PML边界距离腔体至少λ/2;
- 周期性结构:区域只需包含一个周期单元,配合周期边界条件即可。
仿真区域中还需放置光源和监视器。光源位置应远离结构边界,避免激励高阶模式;监视器(如透射率监视器)应放置在波导截面处,并确保截面完全覆盖模式场分布。
| 区域类型 | 典型尺寸 | 适用场景 | 注意事项 |
|---|---|---|---|
| 波导截面 | 2-4μm × 2-4μm | 单模/多模波导 | 包层厚度需足够 |
| 谐振腔 | 5-10μm × 5-10μm | 微环、光子晶体腔 | PML距离≥λ/2 |
| 光栅周期单元 | 周期×周期×厚度 | 光栅耦合器、超表面 | 配合周期/Bloch边界 |
| 大尺寸结构 | >50μm | MMI、Y分支 | 需考虑内存限制 |
4.3 边界条件:PML、周期、Bloch
边界条件决定了仿真区域边缘处电磁场的处理方式。Lumerical提供多种边界条件,选择不当会导致非物理反射或错误结果。
4.3.1 PML(完美匹配层)
PML是一种吸收边界,用于模拟开放空间。它通过在边界处添加人工吸收介质,使入射波无反射地进入PML并被衰减。PML适用于波导、谐振腔等孤立结构。
- PML层数默认12层,可调整;
- PML与结构之间需留出至少λ/4的间隔;
- 对于高折射率对比度结构,建议增加PML层数至16-20层。
4.3.2 周期边界条件
周期边界适用于结构在某一方向无限周期重复的情况。它要求电场在周期边界上满足:
E(x+L) = E(x) * exp(-i*kx*L)
当kx=0时即为普通周期边界;当kx≠0时即为Bloch边界。周期边界适合垂直入射的光栅、超表面等;Bloch边界适合斜入射情况。
4.3.3 对称/反对称边界
当结构具有对称性时,可使用对称(Perfect E)或反对称(Perfect H)边界来减小仿真区域。例如,对称波导可设置x方向为对称边界,将区域减半。
风险提示:使用对称边界时,必须确保光源和监视器也满足相应的对称性。否则会得到错误结果。例如,偶极子光源在对称边界处可能被抑制。
4.4 网格精度与收敛性
网格划分是FDTD仿真中精度与效率的平衡点。网格越细,精度越高,但计算时间与内存消耗呈立方增长。
网格设置策略:
- 全局网格:设置基础网格步长,通常为λ/(10n)~λ/(20n),其中n为材料折射率;
- 网格细化区域:在结构边界、高场梯度区域(如金属表面、波导芯层)添加网格细化,步长可设为全局的1/2~1/5;
- 渐变网格:Lumerical支持自动渐变网格,在远离结构处自动增大步长,节省计算资源。
收敛性验证方法:
- 运行粗网格仿真,记录关键结果(如透射率、谐振波长);
- 将网格细化(步长减半),重新仿真;
- 对比两次结果,若变化<1%,则认为收敛;
- 若不收敛,继续细化,直到满足精度要求。
| 网格步长 | 相对误差 | 计算时间 | 适用场景 |
|---|---|---|---|
| λ/10 | ~5% | 1× | 初步验证 |
| λ/20 | ~1% | 8× | 标准仿真 |
| λ/40 | ~0.1% | 64× | 高精度需求 |
4.5 实战案例:硅波导透射率仿真与收敛性分析
以SOI(绝缘体上硅)条形波导为例,波导宽度500nm,高度220nm,包层为SiO₂(n=1.44),芯层为Si(n=3.48),工作波长1550nm。目标:计算TE0模式的透射率,并验证网格收敛性。
初始设置:
- 仿真区域:x=2μm,y=2μm,z=3μm(沿传播方向);
- 边界条件:x、y方向PML(12层),z方向PML;
- 光源:模式光源,位于z=0.5μm处,激励TE0模式;
- 监视器:透射率监视器位于z=2.5μm处。
网格设置:全局网格步长dx=dy=dz=50nm(约λ/20),在波导芯层添加细化区域,步长20nm。
收敛性测试:
- 第一次仿真:全局50nm,细化20nm,透射率T1=0.923;
- 第二次仿真:全局40nm,细化15nm,透射率T2=0.931;
- 第三次仿真:全局30nm,细化10nm,透射率T3=0.934。
对比T2与T3,变化为(0.934-0.931)/0.931≈0.3%<1%,认为收敛。最终采用全局40nm、细化15nm的网格设置,兼顾精度与效率。
经验总结:对于硅波导,建议全局网格步长不超过λ/(15n_eff),其中n_eff为模式有效折射率(约2.5-3.0)。细化区域应覆盖波导芯层及上下各100nm范围。
4.6 常见误区与复盘
误区1:PML距离结构太近。当PML距离波导过近时,倏逝场会被PML吸收,导致透射率偏低。解决:PML与结构之间至少留λ/2间隔。
误区2:周期边界误用于非周期结构。若结构在x方向不周期,却使用周期边界,会产生虚假的周期性耦合。解决:确认结构周期性后再使用。
误区3:网格细化区域不足。仅设置全局网格,未在波导边界细化,导致模式场分布失真。解决:在折射率突变处添加细化区域。
误区4:忽略收敛性验证。直接使用默认网格,结果可能偏差5%以上。解决:至少进行两次网格对比。
误区5:对称边界使用不当。对称边界要求光源和监视器也对称,否则结果错误。解决:不确定时使用PML。