锦
锦思新知编辑组
发布时间:2026/11/9 10:53:10
来源:锦思新知
阅读:知识向官网定制

光学仿真这个圈子里有个挺有意思的现象做传统光子器件的人往往对“拓扑”两个字既好奇又发怵好奇的是它确实能带来一些反直觉的鲁棒特性发怵的是文献里动不动就是哈密顿量、陈数、能带翻转仿佛不先把凝聚态物理啃一遍就没法动手。我最初接触拓扑光子仿真的时候也走过这个弯路抱着几篇理论文章硬读了两周结果打开仿真软件还是一脸茫然——因为理论文章告诉你“要寻找狄拉克点”但没人告诉你网格步长设多少、边界条件怎么选、光源放哪里才能在透射谱里看到那个该死的谷。这篇前言就是想把这条路重新铺一遍。我不打算从布洛赫定理讲起而是从“你打开FDTD软件之后第一分钟该干什么”讲起。核心关键词是FDTD仿真、拓扑光子、能带结构、边界条件和鲁棒性验证这几个词基本串起了整个工作的主线。适合的读者是有基本电磁仿真经验、听说过拓扑绝缘体但没真正算过、想用FDTD把理论上的拓扑边界态在时域里“看”出来的人。如果你连FDTD的激励源怎么加都还不熟建议先补一补基础操作再回来因为拓扑结构的仿真对参数设置比常规波导要敏感得多。我先把结论性的判断放在前面FDTD不是算能带的首选工具但它是验证拓扑边界态鲁棒性最直观的工具。能带图用频域方法比如平面波展开或者本征模求解算起来又快又干净而FDTD的价值在于当你把两种拓扑性质不同的晶格拼在一起、在界面处放一个点源、然后看电磁波怎么沿着界面绕过一个缺陷继续走——这个画面是任何能带图都给不了你的。所以整个系列的分工是能带用频域算时域传播用FDTD验两者互相印证。这篇前言先把FDTD这条线的准备工作讲透。1. 为什么拓扑光子的验证非要落到时域仿真上1.1 能带图能告诉你“有态”但告诉不了你“有多稳”很多人第一次接触拓扑光子是从一张能带图开始的两条能带在某个点交叉打开简并之后中间出现带隙然后在带隙里画出一条连接上下能带的边界态色散曲线。这张图确实漂亮也确实说明了边界态的存在。但问题在于能带图是一个无限周期结构的本征值问题它假设你的结构在两个方向上都是无限延伸的或者至少是严格周期边界。真实器件是有边界的边界上有没有缺陷、缺陷有多大、缺陷会不会破坏边界态能带图一概不回答。拓扑边界态的核心卖点恰恰是“对缺陷免疫”。这个免疫不是说缺陷不存在而是说只要缺陷不破坏系统整体的拓扑性质比如不引入背散射通道边界态就能绕过去继续传播。要验证这一点你必须让电磁波真的在有限结构里跑一遍看它在遇到缺陷前后的透射率变化、看场分布有没有被反射回来。这就是时域仿真的用武之地。我做过一个对比实验同一个界面结构用频域本征模求解算出来的边界态色散和用FDTD点源激发测出来的透射谱在带隙位置上是吻合的但FDTD的透射谱在缺陷引入后会出现一些频域方法看不到的细节——比如某些频率上透射率掉得比预期多回头查场分布才发现是缺陷附近的局部谐振把能量“吸”走了。这种信息对器件设计非常关键而它只存在于时域仿真里。1.2 FDTD看的是“过程”频域方法看的是“结果”打个比方频域方法像是给结构拍一张静态照片告诉你哪些频率能存在、哪些不能FDTD像是拍一段视频你能看到波从源出发、碰到界面、沿着界面爬行、遇到拐角转弯、最后从另一端出来的全过程。对于拓扑光子这种强调“传播行为”的课题视频的信息量远大于照片。具体到操作层面FDTD里你可以放多个时间监视器记录波前到达不同位置的时间从而算出群速度你可以放场分布监视器看能量是不是真的被束缚在界面附近而不是泄漏到体材料里你还可以在界面路径上故意挖一个空腔或者加一段无序然后对比有无缺陷时的透射谱。这些操作在频域框架下要么做不了要么需要额外的微扰计算而在FDTD里就是加几个监视器的事。当然FDTD的代价是计算量大。一个二维拓扑界面结构网格步长取到波长的二十分之一仿真区域几个波长见方跑一次透射谱可能要几分钟到几十分钟取决于你的硬件和收敛设置。这个代价是值得的因为你要的正是那些频域方法给不了的过程信息。1.3 时域仿真里“看见”拓扑保护的三个判据我在实际项目里总结了一套判断标准用来确认FDTD结果里看到的确实是拓扑边界态而不是别的什么局域模式。这三个判据缺一不可单向性在界面一端激发能量主要从另一端出来反向泄漏很小。这排除了普通驻波模式。绕过缺陷的连续性在界面路径上放一个尺寸明显大于波长的障碍物比如一个介质柱或者一段空气槽透射谱在带隙内的下降幅度有限场分布显示波前绕过了障碍物。体材料里的衰减场分布在垂直于界面的方向上应该快速衰减衰减长度和带隙大小相关。如果场一直延伸到体材料深处那说明你看到的可能是体态而不是边界态。这三个判据在后面的实操章节里会对应到具体的监视器设置和数据处理方法。这里先点出来是为了让你在动手之前心里有个“要看到什么”的预期而不是跑完仿真对着一堆曲线发呆。2. 动手之前必须想清楚的几个建模决策2.1 二维还是三维先别急着上三维拓扑光子的经典模型大多是二维的比如蜂窝晶格、正方晶格加人工规范场、以及各种基于介质柱或空气孔的排列。二维仿真的计算量比三维小一到两个数量级而且二维结构在实验上也有对应的实现方式比如平板刻蚀或者介质柱阵列的横截面。我的建议很明确第一轮验证一律用二维。二维仿真里你只需要关心TE或者TM一个偏振网格只在两个方向上离散监视器布置也简单。等你把二维的界面传播、缺陷绕过、透射谱都跑通了对结构的色散关系和带隙位置有了直觉再考虑上三维。三维仿真的坑多得多——网格色散、材料拟合、边界条件的斜入射反射每一个都能让你调半天。拓扑结构的带隙通常不会特别宽三维里网格色散很容易把带隙边缘搞模糊到时候你连“带隙到底在哪”都说不清楚。有一个例外情况如果你的目标结构本身就是三维的比如螺旋结构或者三维层状结构那二维简化可能丢失关键物理。但这种情况下我建议先用小尺寸的三维模型做单频点验证确认边界态存在再扩大仿真区域做透射谱不要一上来就铺大网格。2.2 网格步长拓扑结构比常规波导更挑网格常规介质波导仿真网格步长取波长的十分之一到十五分之一通常够用。拓扑结构不行因为带隙的位置和宽度对结构参数的微小变化很敏感网格太粗会把带隙“抹平”或者让带隙位置偏移。我的经验值是在最高关注频率对应的介质波长上取至少二十分之一最好二十五分之一。举个例子假设你的工作频率对应真空波长1550纳米结构材料折射率3.5那介质内波长大约是443纳米。二十分之一就是22纳米左右。如果你的结构最小特征尺寸比如介质柱之间的间隙小于这个值那网格还得更细或者你需要重新审视结构参数是否合理——特征尺寸接近网格步长的结构仿真结果基本不可信。网格步长确定之后还要检查网格色散。FDTD的数值色散会让不同频率的波以略微不同的速度传播在宽带仿真里表现为脉冲展宽。对于拓扑边界态的透射谱测量这个影响通常可以接受但如果你要算群速度或者做时域波形分析就得做网格收敛测试把步长缩小一半看结果变化是否在可接受范围内。我一般要求关键结果比如带隙内透射率在两次网格设置下的差异小于5%。2.3 边界条件PML不是万能挡板完美匹配层PML是FDTD里最常用的吸收边界但它在拓扑结构仿真里有几个容易踩的坑。第一PML的反射率和入射角有关拓扑边界态如果以较大的角度斜着打到PML上反射可能比你预期的高。第二PML层数不够或者电导率分布设置不当会在带隙频率附近引入伪反射让你误以为边界态被散射了。我的做法是PML层数至少取八个网格以上并且在正式测量透射谱之前先跑一个空场测试——也就是结构里不放任何散射体只放源和监视器看能量是不是干净地被PML吸收掉。如果空场测试里监视器读到的反射能量超过入射能量的百分之一那就得加厚PML或者调整其参数。另一个选择是周期性边界条件加吸收的组合。如果你的结构在垂直于界面的方向上是周期的比如一维界面沿着周期方向延伸可以在那个方向上用周期边界在传播方向上用PML。这样能减少仿真区域但要注意周期边界会引入人工的周期性镜像如果界面附近有缺陷镜像可能会干扰结果。这种情况下还是老老实实用PML把整个结构包起来比较稳妥。2.4 材料模型色散材料会让拓扑带隙“漂移”拓扑光子结构里常用高折射率介质比如硅、氮化硅或者某些化合物半导体这些材料在光频段是有色散的。如果你在FDTD里用单频点的折射率做仿真宽带结果里带隙位置会和真实情况有偏差。更麻烦的是色散材料需要用多极点模型拟合拟合误差会直接反映到带隙边缘的模糊程度上。我的建议分两种情况如果你的关注频率范围不宽比如带隙宽度只有中心频率的百分之几可以用中心频率处的折射率做近似然后在结果讨论里注明这个近似如果要做宽带对比或者带隙边缘的精细分析就必须用拟合模型。拟合的时候注意检查拟合曲线和原始数据在带隙频率范围内的偏差我一般要求折射率实部偏差小于0.5%虚部如果有损耗偏差小于一个数量级。还有一个容易被忽略的点拓扑结构的带隙对材料折射率的整体缩放很敏感。你把折射率从3.4改成3.5带隙可能整体移动几个百分点。所以在做参数扫描或者对比不同结构时材料参数必须严格一致不能一个结构用文献值、另一个用拟合值。3. 从零搭建第一个拓扑界面模型的完整流程3.1 结构参数的确定从无量纲化到具体尺寸理论文章里的拓扑光子结构通常用无量纲参数描述比如晶格常数a、介质柱半径r与a的比值、介电常数比。你拿到一个模型第一步是把这些无量纲参数翻译成具体尺寸。翻译的依据是你的工作波段和加工可行性。假设工作波长定在1550纳米附近晶格常数通常取在波长量级比如a等于600到800纳米。介质柱半径比r/a取0.2到0.3之间具体值决定了带隙的位置和宽度。介电常数取12左右对应折射率约3.46。这些数值不是随便定的它们来自能带计算你需要先用频域方法扫一遍r/a和介电常数的组合找到带隙最宽、边界态色散最线性的参数点。这一步很多人想跳过直接拿文献里的参数开跑。但文献里的参数是针对特定材料和特定波段的你的仿真条件未必匹配。我吃过这个亏照搬一组参数结果带隙正好落在PML吸收特性不好的频段上透射谱里全是伪影。后来老老实实自己扫了一遍参数空间虽然多花了两天但后面所有仿真都顺了。参数确定之后把结构画进仿真软件。二维情况下就是一系列圆介质柱或者圆孔空气孔按晶格排列。画的时候注意结构边界要和网格对齐否则阶梯近似会引入额外的散射。大多数FDTD软件支持把结构边界吸附到网格线上这个选项一定要打开。3.2 源的选择点源、偶极子还是模式源拓扑界面仿真的源选择取决于你要测什么。如果只是看边界态存不存在一个宽带点源或者偶极子源放在界面附近就够了它的辐射谱覆盖整个带隙激发效率虽然不高但胜在简单。如果要定量测透射率最好用模式源——也就是先算出界面态在某个频率上的场分布然后把它作为注入源。这样激发效率高透射谱的信噪比也好。模式源的获取方式因软件而异。有的软件支持从本征模求解器导入模式场有的需要你自己用脚本生成。我常用的做法是先用频域本征模求解算出一个频率点上的界面态场分布导出场数据然后在FDTD里用自定义源注入。这个过程稍微麻烦一点但对于定量分析是值得的。源的带宽也要注意。拓扑带隙通常只占中心频率的百分之几到十几源频谱要覆盖带隙并且两边留有余量。如果源带宽太窄带隙边缘的透射率测不准带宽太宽高频和低频的数值色散又会污染结果。我一般取中心频率的百分之三十到四十作为源带宽然后用监视器记录的源频谱做归一化。3.3 监视器布置透射、反射和场分布一个都不能少一个完整的拓扑界面仿真至少需要三类监视器透射监视器放在界面另一端记录通过界面的能流。位置要离界面出口足够远避免近场耦合影响。反射监视器放在源和界面入口之间记录被反射回来的能量。拓扑边界态的理想情况是反射很小但实际结构里总有一些。场分布监视器一个二维的频域场监视器记录整个仿真区域在特定频率上的场分布。这个监视器是“看”拓扑保护的关键——你要从场图上确认能量确实沿着界面走而不是从体材料里漏过去。监视器的频率点设置也有讲究。不要只设一个中心频率至少在带隙内设三到五个频点带隙外各设一两个作为参考。这样你得到的透射谱才有形状能看出带隙内的透射平台和带隙边缘的下降。场分布监视器记录的是频域场也就是对时域信号做傅里叶变换之后的结果。大多数软件默认记录所有频率的场数据量很大。我建议只记录你关心的那几个频点减少存储压力也方便后续处理。3.4 一次完整的仿真运行与初步结果判读结构、源、监视器都设好之后先别急着跑长仿真。做一个短时间的试运行比如只跑几百个时间步看看场是不是正常辐射出去了有没有明显的数值不稳定场值指数增长。如果试运行正常再把仿真时间加长到能量衰减到可忽略为止。仿真时间的判据是透射监视器记录的能量随时间的变化曲线应该趋于平缓反射监视器也是。如果曲线还在振荡说明还有能量在结构里来回反射需要继续跑。我一般设置一个自动停止条件——当监视器能量在某个时间窗口内的变化小于总能量的千分之一时停止。跑完之后第一件事是看场分布图。如果场图显示能量沿着界面传播、在体材料里快速衰减那基本就对了。如果场图显示能量均匀铺满整个结构那要么是源放错了位置要么是频率不在带隙里要么是结构参数不对。第二件事是看透射谱。带隙内的透射率应该有一个平台平台的高度取决于结构的透射效率和源的激发效率不一定是百分之百但应该明显高于带隙外的体态透射。这里有个容易误判的地方带隙外的透射率不一定低。体材料在带隙外是允许传播态的所以透射率可能很高。判断拓扑边界态的关键不是“带隙内透射高、带隙外透射低”而是“带隙内透射来自界面态、带隙外透射来自体态”。区分这两者要靠场分布图不能只看透射谱。4. 那些让新手卡住半天的典型问题4.1 透射谱里带隙位置和文献对不上这是最常见的问题。原因通常有三个材料参数不一致、结构尺寸有偏差、网格色散。排查顺序应该是先查材料参数——你的折射率是不是和文献一致如果文献用的是色散模型而你用的是单频折射率带隙位置偏移几个百分点很正常。再查结构尺寸——晶格常数和半径比是不是严格一致画结构的时候有没有因为网格吸附导致实际尺寸偏离设计值最后查网格色散——把网格步长缩小一半再跑一次看带隙位置是否移动。如果移动明显说明你的网格太粗。我遇到过一次特别隐蔽的情况结构画的时候用了圆孔但软件的圆孔近似算法在网格较粗时会把孔画成多边形实际填充率偏离设计值带隙整体偏移。后来把网格加密并且换了一种圆孔定义方式才解决。这个教训是画完结构之后导出一张结构折射率分布图看一眼确认形状和尺寸符合预期再开始跑仿真。4.2 场分布看起来“糊”成一片找不到界面态如果场分布图里能量没有明显局域在界面上先确认三件事源的位置是不是在界面附近源的频率是不是在带隙内界面两侧的结构是不是真的拓扑性质不同前两个好查第三个容易被忽略——有时候你以为自己拼了两种拓扑性质不同的晶格但实际上参数没调对两侧的带隙位置和拓扑性质是一样的界面处根本没有边界态。验证方法是分别对界面两侧的体结构做能带计算确认它们的带隙有重叠并且拓扑不变量不同。这个计算用频域方法做很快。如果两侧拓扑性质相同那界面处只有普通折射率失配引起的局域模式不是拓扑边界态。4.3 仿真跑着跑着发散了FDTD发散通常是因为库朗条件不满足或者材料模型不稳定。检查时间步长是不是满足库朗条件大多数软件会自动设置但如果你手动改过就要注意。如果用了色散材料模型检查拟合的极点是不是在虚轴上引入了不稳定的增益。还有一种情况是PML参数设置过激导致数值反射放大。把PML电导率分布调平滑一些或者增加PML层数通常能解决。发散有时候是渐进的前几百步看不出来跑久了才指数增长。所以试运行阶段要盯着场值最大值的时间曲线一旦发现单调增长就停下来查原因别等跑完几小时才发现结果全废了。4.4 透射率算出来大于一这通常是归一化出了问题。透射率应该用透射监视器记录的能流除以源注入的总能量而不是除以源监视器记录的能流——因为源监视器记录的是源附近的场包含了向各个方向辐射的能量和真正注入到界面态的能量不是一回事。正确的归一化方法是用一个参考仿真同样的源、同样的监视器位置但去掉界面结构或者换成均匀介质测到的透射能量作为分母。这个参考仿真还能顺便帮你检查PML的吸收效果。5. 把仿真结果和物理图像对上的几个经验5.1 用群速度验证边界态的色散斜率拓扑边界态的色散曲线在带隙内通常是单调的群速度色散曲线的斜率在一个较宽的频率范围内保持同号。你可以在FDTD里用两个相距一定距离的监视器记录波前到达时间算出群速度然后和频域方法算出的色散斜率对比。如果两者吻合说明你看到的确实是那个边界态而不是别的局域模式。这个验证在带隙边缘特别有用因为带隙边缘的色散往往是非线性的群速度变化快。如果FDTD测出的群速度在带隙边缘出现反常比如符号翻转或者急剧变化那可能是带隙边缘和体态耦合导致的需要回头检查结构参数。5.2 缺陷实验的设计要“够狠”验证拓扑保护的时候缺陷不能太小。我见过有人放了一个半径只有波长十分之一的介质柱在界面路径上然后说“透射率几乎没变拓扑保护验证成功”。这个缺陷太小了普通波导也能绕过去说明不了问题。缺陷尺寸至少要能和波长相比比如一个半径等于半波长的空气孔或者一段长度几个波长的无序区域。缺陷的位置也要讲究。放在界面路径的正中间是最直接的但如果你想看更细致的物理可以在路径上放多个缺陷观察透射率随缺陷数量的变化。拓扑保护的特点是透射率随缺陷数量增加下降很慢而普通波导会快速下降。这个对比实验做出来比单点验证有说服力得多。5.3 别忽略体材料损耗的影响实际材料总有损耗拓扑边界态虽然对结构缺陷免疫但对材料损耗并不免疫。损耗会让边界态的传播长度受限透射率随界面长度指数下降。在仿真里加损耗很简单把材料的折射率虚部设成非零就行。但要注意损耗会改变带隙的位置和宽度因为色散关系的实部和虚部通过克拉默-克勒尼希关系耦合所以加损耗之后要重新确认带隙范围。我的做法是先做无损耗仿真确认拓扑性质再加一个合理的损耗值比如对应传播长度几百微米到几毫米看透射率下降是否在可接受范围。如果损耗导致透射率太低那说明这个结构在实际材料体系里可能不实用需要换材料或者改设计。6. 这个系列后续要展开的内容前言写到这里该说的准备工作基本齐了。后面几篇会按这个顺序展开先讲怎么用频域方法算能带和拓扑不变量把“为什么这个结构有带隙、为什么界面处有边界态”从理论上说清楚然后回到FDTD手把手搭一个完整的界面传播模型从画结构到出透射谱一步一步来再往后是缺陷实验和鲁棒性定量分析包括怎么设计缺陷、怎么处理数据、怎么判断结果是否可信最后会聊一聊从二维到三维的过渡以及仿真结果和实验测量之间的对应关系。我个人在实际操作中的体会是拓扑光子的FDTD仿真难点不在软件操作而在“知道该看什么”。软件谁都会点但如果你不知道带隙内透射平台意味着什么、不知道场分布局域化到什么程度算合格、不知道缺陷尺寸取多大才有说服力那跑再多仿真也只是在生成彩色图片。希望这篇前言能帮你把“该看什么”这件事先想清楚后面的操作自然就顺了。
知识建站
内容驱动
阅读友好版式
SEO 精细化
线索转化
这篇内容对您有启发吗?
预约一次免费方案沟通,我们会根据您的行业给出可落地的站点架构建议。
立即预约沟通