
做光学仿真的人迟早会撞上“亚波长”这三个字。我第一次意识到必须上“严格模拟”这个手段是在设计一款周期400 nm左右的硅基反射光栅时用标量衍射理论算出来的零级效率足足比实验低了一截当时以为是加工侧壁没做干净折腾了很长时间后来用严格耦合波分析一跑才发现问题出在高衍射角度下倏逝波和偏振耦合效应——这根本不在标量近似的射程内。从那次之后凡是遇到特征尺寸接近或小于工作波长的结构我都老老实实走严格求解路线。这篇就把“对光学系统中亚波长结构的严格模拟”这件事从头到尾捋一遍。内容不局限于某一款商业软件而是把严格模拟的物理边界、主流方法、建模参数、收敛性判据和排障思路拆开来聊适合正在做超表面、衍射光栅、抗反射结构、偏振器件或者任何被“结构尺寸小到没法用几何光学解释”困扰的工程师和研究人员。1. 亚波长结构的“严格”二字到底在跟谁较劲要理解严格模拟的必要性先得知道我们的日常直觉是从哪来的。大部分光学设计工具分为两大类几何光学追迹依赖光线概念认为光在均匀介质中直线传播遇到界面按折射定律偏折标量衍射理论则把光当作标量场处理只关心振幅和相位不区分偏振。这两套框架处理宏观尺寸时非常高效但一旦结构尺寸进入亚波长范围它们的底层假设就集体失效了。1.1 什么时候亚波长近似会失灵判断是否“亚波长”最简单粗暴的方式是比较特征尺寸和工作波长的比值。当结构的周期或者关键几何尺寸大于波长好几倍时衍射级次很多标量理论误差小设计余量也大但当周期和波长相当甚至更小的时候会出现两类标量理论完全解释不了的现象。第一类是偏振分裂。TE偏振电场平行于光栅槽和TM偏振磁场平行于光栅槽在亚波长光栅上的有效折射率差会非常大导致相位延迟、衍射效率的偏振依赖到了不可忽略的程度。标量理论不区分偏振所以算出的衍射效率只是两个偏振态的一个笼统平均值恰好掩盖了实际器件最关键的偏振特性。第二类是倏逝波参与耦合。亚波长周期结构的衍射级里通常包含大量倏逝模式这些模式在结构近场呈指数衰减不携带远场能量但它们会重新分布近场能量影响各传播级次的振幅分配。严格模拟之所以“严格”核心就在于完整保留了这些倏逝模式的贡献并把电磁场边界条件在每个界面上精确匹配。1.2 有效介质理论的适用范围以及它解决不了什么有一类更轻量的近似叫有效介质理论把亚波长光栅等效为一块具有人工折射率的均匀薄膜。对零级衍射、抗反射设计这类问题有效介质理论快、直观用起来很顺手。比如蛾眼结构的渐变折射率抗反射层用等效介质近似就能估算出不错的反射率趋势。但有效介质理论的本质是零级近似——它默认结构周期小到所有高阶衍射和倏逝耦合都消失。当你需要在光栅中设计异常衍射方向、激发共振模式、利用高Q连续域束缚态BIC这类效应时有效介质理论完全没有建模能力。它假设的“均匀层”物理图景本身就抹平了产生共振的机制。用一句话概括有效介质理论回答“整体上看像什么”严格模拟回答“每个界面上电磁场到底怎么匹配的”。做实用器件设计前者的价值在于快速估算但最终标定和优化往往需要后者来兜底。1.3 Maxwell方程组严格求解的物理图景严格模拟起点就是Maxwell方程组没有引入额外的近似。频域方法把入射平面波拆成一组离散的衍射级和倏逝级在结构各层内部写出满足边界条件的通解然后逐层匹配时域方法则直接在空间网格上推进电磁场的时间演化让结构对入射光的响应在时间轴上自然形成。无论哪种策略都是在数值精度允许的范围内逼近“真实物理过程”。这里有一个容易误解的点严格模拟不等于“没有误差”。它只是不做物理上的冒进简化但数值层面的离散误差、截断误差仍然存在。后面会专门讲收敛性测试就是在回答“你算出这个数到底准不准”。2. 严格求解的两条主流路线频域展开与时域推进严格模拟大类下工程里最常用的是两种方法严格耦合波分析RCWA也叫傅里叶模态法和时域有限差分FDTD。两者学的都是Maxwell方程组但解决问题的路径完全不同选择哪条路取决于你的结构形态和关心的物理量。2.1 RCWA把结构切成层把场展开成平面波RCWA的基本思路可以概括为“分层展开”。把一个连续剖面沿厚度方向切成若干薄层每一层内认为材料参数不变电磁场用平面波基展开沿周期方向满足Bloch条件然后每层内部求解本征模式再通过散射矩阵或者传递矩阵把各层串起来匹配相邻界面的切向场连续条件。严格耦合波分析的层数越多对倾斜侧壁和连续折射率轮廓的还原就越接近实际加工形貌。核心计算量集中在每层求解本征值问题层数增多会让内存占用和计算时间显著上升但它的优势是精度可控、可重复性高尤其适合周期性结构——光栅、超表面单元阵列、光子晶体用RCWA非常顺手。需要注意RCWA处理TM偏振时有一个经典陷阱直接在实空间对介电常数做傅里叶展开会遇到傅里叶级数收敛缓慢甚至错误的问题。上世纪90年代Li等人给出了倒空间介电常数矩阵的正确规则所以现在实现RCWA时处理TM模需要遵循傅里叶展开因式分解规则Li规则这也是RCWA的代码不像看起来那么简单的主要原因。2.2 FDTD在时间轴上网格推进电磁场FDTD走的是另一条路它在空间上划分Yee元胞电场和磁场分量在空间上交替排布、在时间上交替更新按照Maxwell旋度方程一步一步把波推下去。它的适应面很广非周期结构、有限尺寸器件、复杂三维几何、非线性材料FDTD都能建模。你不需要像RCWA那样要求结构严格周期用FDTD可以处理单个纳米天线、波导端面耦合、超表面的某个超胞边界可以用周期边界或者完美匹配层PML来截断。FDTD的代价在于计算量和色散误差。为了稳定推进时间步长必须满足Courant稳定性条件整体网格必须足够密才能降低数值色散。在处理高折射率差、深亚波长细节时网格尺寸常常要压到特征尺寸的十分之一以下三维仿真的内存和时间消耗会非常可观。RCWA和FDTD的本质比较用一个生活类比可能更好理解RCWA像是给结构拍X光片把光看作一组携带动量的平面波看它们如何被每一层结构衍射和散射重点在频域分辨FDTD则像是往池塘里扔石头直接观察波纹在水面上随时间怎么传播、怎么绕过一个障碍物时域看得清清楚楚。2.3 站内选型参考按结构和物理量决定路线工程中我不太愿意在方法上搞“信仰”更倾向于按场景选。下面这张表是我在实际项目中的选择逻辑场景推荐方法理由周期性光栅/超表面重点看衍射效率RCWA频域直接给出各级次效率收敛测试方便有限尺寸器件如单天线、耦合器、微腔FDTD天然处理非周期散射PML边界方便倾斜侧壁、连续折射率轮廓RCWA/FDTD均可RCWA需要增加分层数FDTD要用共形网格宽带光谱扫描FDTD宽带脉冲/RCWA扫频FDTD一次可得多波长响应RCWA需逐点扫金属强色散结构FDTD相对更直接材料色散模型易嵌入频域方法需处理极点商业软件里Lumerical FDTD、COMSOL用的人多开源工具如Reticolo、S4、GratingSim等也能做严格耦合波分析选择取决于你是否需要和其他模块联用以及团队对代码的掌控诉求。没有哪个方法在所有维度都是最优解选错了方向后面会浪费大量时间。3. 从几何输入到仿真输出的完整建模链路关键参数与常见坑标题里的“严格”二字不仅指算法严格也指建模过程必须尽量贴近真实结构。仿真结果和实验结果对不上很多时候不是算法问题而是模型输入太理想化了。3.1 几何模型的表达差异从设计版图到仿真剖面RCWA作法是把结构沿厚度方向切层切得越细对梯形侧壁、圆角过渡、底部蚀刻沟槽这些实际形貌特征的还原越准确。理想矩形剖面容易建模但反应离子刻蚀出来的光栅侧壁常有几十纳米以内的倾斜角度这个微小的倾斜会改变高阶衍射的相位匹配条件导致效率曲线偏移。所以拿到设计版图后先别急着仿真而是问一句加工出来的形貌到底是矩形还是梯形ETCH角度是多少FDTD则不需要层状化切分是直接以网格拟合几何形状。但矩形网格在斜侧壁界面处会产生阶梯状近似网格粗的时候这个误差相当明显。经验做法是凡是倾斜面、曲面区域要么局部加密网格要么使用共形网格技术否则仿真结果会出现假性的散射增强。我的习惯是建一个“标称形貌”和一个“极限工艺偏差形貌”两个模型。标称形貌用于评估中心性能极限偏差形貌用于评估容差范围。运行两次仿真得到的效率区间比单纯跑一组标称参数对工艺指导意义大得多。3.2 材料色散模型的选择与判断依据亚波长结构对材料色散异常敏感因为相位积累与折射率直接相关折射率偏差带来的相位误差会随厚度累积。尤其在硅、氮化硅、氧化钛、非晶硅这类高折射率材料上可见光和近红外波段的折射率变化不可忽略。常用的色散模型有Cauchy公式、Sellmeier公式、Lorentz-Drude模型、Palik查表数据。选择标准是你的仿真波长范围在哪那个范围内的实验数据是否可靠。对金属金、银、铝Lorentz-Drude模型能在可见光范围给出比较合理的介电常数趋势但要特别注意薄膜实测值与块体数据之间常有明显偏差——纳米级金属薄膜的介电常数受颗粒形貌、氧化层影响很大。有条件时尽量用自己实验室椭偏仪测出来的数据。一个典型的坑有人把玻璃衬底的折射率设为常数1.45在可见光波段问题不大但在近红外或者中红外波段SiO₂吸收边附近色散不可忽略这时候用常数折射率会让反射光谱的Fabry-Perot振荡周期整体偏离实验看起来像是结构尺寸错了实际上是材料参数没设对。3.3 边界条件与截断区域周期结构不能乱截周期性结构沿周期方向一般用Bloch周期边界入射角和波长决定Bloch波矢的相位偏移。很多初学者犯的错误是结构是周期的但入射光是斜入射直接把相对的两个边界设成普通周期边界忽略了相位因子导致衍射级次的幅值分配完全错误。正确做法是把入射角、波长换算成Bloch边界相位。非周期结构用PML截断时PML离结构太近会吸收掉倏逝场改变近场分布离得太远则计算域变大、耗时增加。我的经验法是PML内边界离结构至少半个工作波长最好一个波长以上并且PML层数按软件默认再往上加几层。这个经验值可以通过“移动PML位置看结果是否变化”来验证如果结果变了说明PML太近。3.4 激励源与偏振模式不纯会让效率数据失真激励源方向、偏振方向和相位前沿对结果影响非常大。模拟周期性结构时用平面波激励注意设置正确的偏振方向模拟单波导或耦合器时可用模式光源去激励波导模式保证入射端的模式纯度。如果激励源里混入了其他模式衍射效率计算就会失真。另外相位前沿的倾斜也会引入额外的角谱宽度。严格模拟往往假设入射波是无限平面波角谱宽度为零。如果激励源尺寸太小或使用高斯光源截断等效角谱宽度会扩大导致效率曲线出现圆滑化。在我做过的超表面单元库扫描中最佳偏振设置问题还带出过一个实际问题针对椭圆偏振或圆偏振入射的光学系统严格模拟需要把两个正交偏振分量的响应同时算出来再在后处理中合成。很多软件默认只算线偏振如果你忘了这一步算出的效率在天线交叉极化转换器件中可能会被严重低估。4. 结果准不准用收敛性测试回答严格模拟的结果不是天然可信的它需要被验证。收敛性测试是最直接、最可靠的方式也是很多人最容易跳过的一步。4.1 傅里叶阶数收敛测试RCWA的核心实验RCWA中最重要的收敛参数是傅里叶谐波阶数它决定沿周期方向分解成多少平面波分量。阶数太低倏逝级和高阶衍射级描述不完整效率值会偏差阶数太高计算内存激增。正确做法是递增阶数并观察目标物理量是否趋于稳定。举个例子对一个周期800 nm、波长633 nm的介质光栅以1级衍射效率为目标量分别用5阶、20阶、50阶、100阶算一遍。结果可能是傅里叶阶数1级衍射效率%相对变化568.2-2071.54.8%5072.00.7%10072.10.1%50阶到100阶变化小于0.1%说明结果已经收敛。此时再用50阶算效率相当于在保证精度的情况下控制计算量。注意金属结构和高折射率差结构的倏逝级衰减慢通常需要比介质光栅更多的谐波数才能收敛不能拿上一次的阶数直接套用。4.2 网格收敛测试FDTD与FEM的普适流程FDTD的收敛参数主要是网格尺寸。常规做法是取一个基础网格尺寸加密一倍再看结果是否变化。如果加密后效率变化大于你接受的误差范围继续加密直到两次相邻网格尺寸的计算结果差异小于目标精度。这里有个容易忽略的点网格加密时光源波长、PML尺寸等也需要同步检查。只加密网格不调整时间步长的话数值色散误差和稳定性条件会共同影响最终精度容易让人误判为“网格不收敛”。实际项目中我的习惯是先跑一版粗网格快速扫描结构和材料参数找到大致的峰值区域后再在最优候选点附近做网格收敛验证。如果每次扫描都按极密网格跑很容易把优化周期拖长数倍。必要的两段式策略能显著提高效率。4.3 标量理论先走一遍作为严格模拟的对照锚点严格模拟不是完全抛弃近似工具而是让近似工具停留在合理的位置。我经常做的是先用标量衍射理论或有效介质理论粗算一遍拿到一个趋势性的结果这个结果像“粗略的指南针”。严格模拟则是在这个方向上进行精细校正。两者相差很大的时候需要搞清楚原因是偏振效应、倏逝波耦合、材料色散还是共振激发这个“为什么差”的诊断过程常常比最终算准的那个效率值更有价值因为它告诉你是哪种物理机制在主导器件性能。这个信息对器件设计优化至关重要——知道了主导机制才能有针对性地调结构参数。5. 结果反常时如何系统排查问题四个实际案例仿真结果看起来“不对”的时候先别急着怀疑算法或软件大部分问题出在模型设置上。这里记录几个我自己踩过、也帮别人排查过的典型问题都带有一定的共性。5.1 案例A周期光栅的多级效率出现虚假振荡现象是零级效率随波长变化的曲线不光滑出现高频振荡。排查过程一开始怀疑是傅里叶阶数太低从30阶提高到80阶曲线仍然有抖动后来检查发现是RCWA模型中切层数太少了。对于矩形光栅轮廓层数不需要很多但对于梯形侧壁每层之间切向场匹配的误差会累加尤其在共振波长附近层数不足会让效率出现虚假振荡。解决方案很直接把层数从每层100 nm加密到每层10 nm再配合傅里叶收敛测试振荡就消失了。之后我把“效率曲线不光滑”当成两个问题的信号要么谐波阶数不够要么切层太粗两者都要检查。5.2 案例B金属超表面的反射光谱整体蓝移设计一个纳米金颗粒阵列仿真得到的反射峰比预期波长蓝移了30 nm。一开始怀疑是结构尺寸偏小检查几何后发现尺寸没错后来核对材料参数才发现用的是块状金的色散数据而实际上实验中由电子束蒸发制备的金薄膜存在大量的晶界缺陷等效介电常数虚部偏高、谐振响应展宽。换用椭偏仪实测的金薄膜数据后蓝移问题不再出现。金属结构的严格模拟必须穿透“材料参数-工艺状态”这条链路用块体光学常数直接套薄膜结构是大忌。这类“材料参数与工艺状态不匹配”的坑最难察觉因为看几何模型和边界条件没有明显问题。5.3 案例C和D偏振响应不对称与远场图样错误一个正交光栅结构仿真设置TE和TM完全对称的几何但结果两个偏振的效率差很多。排查发现入射角不为零时边界条件中没有正确施加Bloch相位因子导致两个偏振的衍射相位匹配条件不一致。极化不等于结构对称还要看入射方向和边界条件是否对称。另一个案例是计算超表面的远场图样时近场数据导出的平面不对导致远场传播方向算错。这个问题本质上是后处理坐标选择问题。远场变换时近场记录面必须垂直于预期传播方向否则波矢分量投影就会错误得到的图样必然是歪的。5.4 排查清单仿真出现问题时按顺序核对为了节省排查时间我把长期积累的经验整理成了一份排查清单自己每次遇到仿真结果对不上预期时就按这个顺序过一遍序号检查项做法1单位换算确认模型尺寸、波长的单位一致nm还是μm2材料色散数据核对是否用了块体数据而非薄膜实测值3边界条件周期边界相位是否含入射角的Bloch因子PML距边界是否够远4收敛性测试傅里叶阶数/网格加密后目标量变化是否在误差带内5激励源偏振方向是否设置正确光源是否覆盖目标波长段6层数/网格RCWA切层是否够细FDTD网格是否加密到细节尺寸以下7后处理效率归一化方式、远场记录面方向、相位基准选择这套步骤看起来简单但每次排查都能命中一个环节也说明大多数所谓“异常结果”都是因为某个环节没有做到严格建模而不是算法的锅。从最初那个让效率偏差困扰我很久的反射光栅项目开始暗地里走过的弯路不算少。最深刻的体会是严格模拟的价值不在于“算出答案”而在于让你清楚地看到每个物理近似被去掉之后结果发生了什么变化。做光学设计的人与其迷信某一个工具的输出不如对自己模型的每一个前提保持怀疑。这种怀疑才是把“严格模拟”从口号变成实际设计能力的关键。