☰
光子晶体板能带计算中的模式分离与伪模识别实战
2026/10/16 4:47:38 网站建设 项目流程

你有没有遇到过这种情况:在COMSOL里把光子晶体板的单胞建好,Floquet周期边界认真设完,波矢路径也扫完了,结果画出来的能带图却像一团乱麻。该有的导波带模糊不清,某些k点附近明明物理上应该分开的模式,算出来频率却粘在一起;还有几条看起来连续光滑、放大网格后又消失或者到处乱跳的“幽灵模式”,它们混在真实能带里,让人完全不敢引用这张图。

做光子晶体板能带求解,最花时间的往往不是建模,而是模式分离与伪模识别。前者说的是同一波矢下算出一堆本征频率后,怎么把每个本征模的物理身份搞清楚,把简并、近简并甚至反交叉的模式归到正确的能带上;后者说的是怎么从这一堆模式里把那些没有物理意义、或者不是目标导波模的解剔掉,避免它们污染能带图。这两个问题如果你是第一次接触COMSOL的光子晶体板仿真,几乎一定会踩坑。这篇文章就围绕这两个核心问题,把我实际调试中的完整思路、判据和操作细节写出来,希望能帮你少走一段弯路。

1. 建好能带模型前必须想清楚的三个边界问题

模式分离和伪模识别这件事,有一半在求解之前就已经决定了。边界条件怎么加、波矢怎么扫、特征值求解器怎么设,直接决定了你后面拿到的是一堆可以处理的解,还是一堆没法分离的脏数据。

1.1 单胞几何与Floquet周期条件的z方向处理

光子晶体板跟体光子晶体最大的区别在于:结构在面内(x、y方向)是周期性的,但上下是开放的。也就是说,x和y方向应该用Floquet周期性边界条件来等效无限周期阵列,而z方向不应该做任何周期假设。很多第一次算光子晶体板的朋友最容易犯的错误,就是把所有外边界都设置成Floquet周期,导致z方向也被周期化,算出来了一堆“板与板之间耦合”的模式。

这些模式在物理上对应的是上下无限叠放的周期堆垛,而不是孤立的光子晶体板,它们虽然也有平滑的色散关系,但会混进你的能带图,形成最典型的一类伪模。正确的做法很简单:x和y方向用Floquet边界,z方向用开放边界或者完美匹配层(PML)。PML的作用是把向外辐射的电磁波吸收掉,模拟无限大的空气背景。加了PML之后,泄漏模会显现出复本征频率,这恰好可以作为伪模识别的依据之一,这个我后面专门讲。

单胞建模还有一个细节值得注意:z方向空气层的厚度要留够。我常用的经验值是留出至少一个工作波长的距离,再往外加PML。空气层太薄,倏逝场还没有衰减完就碰到PML,导致PML反射,那些本该被吸掉的辐射模会变成驻波状的模式重新出现在能带里。空气层太厚倒不会出错,只是网格量和计算时间白白增加。实际操作时可以先用粗网格算几个k点,看模式场型是否在到达PML之前就基本衰减到零,再决定空气层厚度。

1.2 波矢路径的参数化与扫描设置

光子晶体能带图横轴是波矢k在不可约布里渊区边界上的路径。以最常见的正方晶格为例,不可约布里渊区的高对称点有Γ(0,0)、X(π/a,0)和M(π/a,π/a),通常扫的路径是Γ→X→M→Γ,a是晶格常数。

在COMSOL里,你需要在Floquet周期性边界条件里定义波矢分量kx、ky。最常用的办法是定义两个全局参数,让边界条件里的波矢引用这两个参数。然后通过辅助扫描一个路径参数s,让kx和ky沿着高对称点路径变化。一个典型的分段参数化是这样的:

路径参数s在[0, 1]区间: Γ→X: kx = s * π/a, ky = 0 X→M: kx = π/a, ky = (s-1) * π/a M→Γ: kx = (2-s) * π/a, ky = (2-s) * π/a

注意:上面的表达式是示意性的“路标式”写法,实际放到COMSOL里做参数扫描时,更稳妥的办法是定义分段函数,或者把路径拆成三段分别扫描,再把三段能带数据拼起来。这样做的好处是每一段对应一个独立的横轴区间,绘制能带图的时候可以直接把三段拼接在一起,方便在高对称点处标出Γ、X和M。

如果偷懒直接用一个全局参数线性变化来同时控制kx和ky,结果就是路径变成布里渊区内的斜线而非高对称点折线,画出来的能带图横轴就没有实际物理意义。这个错误不太容易发现,因为图看起来依然是一条一条的曲线,但跟文献对比的时候完全对不上。我自己的习惯是:即使只算一条路径,我也会把这段路径的起点、终点和参数关系写成注释文字放在模型文档里,防止过两个月回来看模型时忘掉路径参数。

1.3 特征值求解器的关键参数

能带扫描本质上是逐k点求解特征值问题。COMSOL特征值研究的设置里,最关键的三个参数是所需特征值数、搜索基准点和误差容限。

所需特征值数不能只等于你想要显示的能带数。有一个非常常见的翻车场景:你觉得只需要关注低频率的4条带,于是求解器里只求6个特征值,结果高频导波带在布里渊区中心位置频率上升,超过了你请求的特征值范围,某一段k路径丢掉了一条完整的带。能带图上看不出来“缺带”,只是跟实验或文献对比后发现少了一条带。我个人的经验是,如果你预期得到N条带,至少请求1.5倍甚至2倍数量的特征值,宁可多算了后面再过滤,也不要漏算。

搜索基准点同样重要。如果基准点设置不当,求解器会花大量精力去求解低频的、与结构无关的静默模式或数值噪声,反而把感兴趣的能带附近模式漏掉。对于光子晶体板,基准点通常设在介质带边频率附近,或者你关心的带隙中心频率附近。在COMSOL里这个选项通常叫“特征值搜索基准点”,可以直接填一个复频率值,也可以填一个频率范围。如果你对目标频率完全没有概念,可以先在Γ点用默认设置跑一次,看算出来的本征值分布在什么频段,再回来调整搜索基准点。

误差容限在能带计算里也应该适当收紧。默认值算低频模式通常没问题,但在能带交叉和反交叉区域,如果求解容差太松,两个相近的特征值可能被合并成一个,或者出现不稳定的微小虚部。容差设置多紧比较合适,没有统一答案,但有一个不错的检测方法:把容差收紧一个数量级再算同一k点,看关键本征值变化是否超过你接受的范围。如果变化明显,说明原来的解并不可靠。

2. 模式分离的本质:简并、反交叉和对称性分析

网格和边界条件准备到位之后,你会在每个k点拿到一列本征频率。这时候真正的“模式分离”工作才开始。所谓分离,本质上是三件事:判断哪些模式在物理上是简并的,判断哪些模式只是数值上接近但不是同一个带,以及确认每条带在布里渊区不同点的身份归属是否连续。

2.1 “模式分离”到底在分离什么

先搞清楚一个容易混淆的概念:简并。在光子晶体板里,如果结构具有较高的对称性,同一个波矢下不同偏振或不同空间对称性的模式可能具有完全相同的本征频率。这种情况下,它们在能带图上应该显示为在同一条横坐标位置重合的多个点。这些模式不该被“分开”成两条带,因为它们本来就是同一个频率上的多个独立模式。

什么时候需要“分离”呢?主要有两种情况。第一种是结构对称性破缺后,原本简并的频率发生分裂,你需要把这原本重叠的一条带拆成分裂后的两条带。第二种情况是数值上的假象:比如网格划分没有保持结构的对称性,导致本应简并的两个模式算出了略有差异的频率,你以为物理上发生了分裂,其实是网格不对称造成的伪劈裂。这个现象我后面专门用一节来讲,这里先记住一点:看到两个频率差小但场型看起来“差不多”的模式时,先别急着宣布“发现了带分裂”,先检查网格是否保持了对称性。

还有一个常被忽略的点:同一k点算出来的本征模,COMSOL本身并不会帮你标注谁是E偏振谁是H偏振,谁是偶模谁是奇模。你需要自己通过场分布去判断。能不能做这一步,直接决定了你后面能不能把散点连成正确的能带。如果在后处理里不区分模式身份,仅按频率高低排序并连线,在能带交叉区域几乎必然连错。

2.2 利用场对称性给每个本征模“验明正身”

给模式“验明正身”最直接的办法是看场分布。对光子晶体板来说,通常看电场分量相对于镜面对称平面的行为。比如在Γ点附近的E偏振模式(电场主要沿板面方向)和H偏振模式(磁场主要沿板面方向),它们在高对称点处的场型往往具有不同的镜像对称性。操作上,我会对某个k点解出的每个模式分别画出Ex、Ey、Ez分量在板中心平面的分布,并尝试沿某条镜像对称轴对场做翻转,观察场的符号是否改变。符号不变称为偶模,符号翻转称为奇模。结构具有C4对称性的时候,这类镜像对称操作能很清晰地把模式归类。

不同对称性的模式属于不同的对称类,它们在布里渊区内部可以交叉——交叉处两条带互相穿过而不影响,它们的频率在交点处相等也不互相排斥。相同对称性的模式则不能交叉,只能反交叉(avoided crossing),在靠近处互相“推开”,形成两个带隙边缘。这个规则是连接能带图的核心依据:你先通过场对称性给每条带上标签,然后按照对称性规则来决定哪些带应该交叉、哪些带应该反交叉。

实际操作时,不需要对每一个k点的每一个模式都做严格的群论分析。一个很实用的经验是:先在高对称点(Γ、X、M)把每个模式的对称性搞清楚,然后沿着路径看几个中等k点,确认模式身份的连续演化。高对称点因为简并更常见,最需要仔细判断;中低对称点处简并一般已经破缺,模式身份通常比较稳定。

2.3 反交叉与带隙边缘:模式身份的连续变化

模式身份还有一个比较反直觉的地方:它不一定在整条能带上保持不变。沿布里渊区路径走,两条带反交叉后,它们的场型会在靠近处互相“交换”,如果你只盯着频率连线很容易把带画歪,看起来好像一条带穿过另一条带后频率继续延续,但实际上模式身份已经交换了。

这种交换在能带图中表现为:两条相同对称性的带在反交叉点处分开,人眼看过去会倾向于把它画成“一条带连续穿过另一条带”,因为两条带在交点两侧的斜率看起来能很好地“续接”。但只要结合场型看,会发现交点下方的带在越过交点后,其场型变成了原来另一条带的场型。这说明正确的连接方式应该是“同对称性带不交叉”,而不是按频率连续性连。

这恰恰是模式分离里最需要耐心的一步。我在处理这类问题时的办法是:对于靠近反交叉的区域,加密波矢采样间隔,把两条带的频率差分辨率提上去,同时标记出每个采样点的模式对称性。靠颜色或线型区分不同对称性的分支,绘制能带图时就能很清楚地看出哪里发生了交换,哪里应该画成反交叉而不相交。

3. 伪模识别的三板斧:场图、能量占比与复本征频率

伪模识别是光子晶体板能带求解里的“扫地”工作。求解器不会管某个模式物理上是否存在、是否与你的目标结构匹配,它只会忠实地返回满足边界条件和材料方程的那些本征解。你需要建立一套自己的过滤流程,把有用的导波模挑出来。

3.1 光子晶体板伪模的三大来源

根据我处理过的各种能带图,伪模通常来自三个方面。一是块状模,也就是在厚度方向形成驻波的模式,它们的频率和色散关系跟板厚直接相关,是因为计算域在z方向被截断或加了反射边界才产生的。二是泄漏模,频率落在背景介质光锥内的模式,它们可以向外辐射能量,严格说不是“伪”的,但不是我们想要的那种不泄漏的导波模。三是数值伪迹,比如网格奇异点、材料界面处理不当、求解器数值噪声带来的没有物理一致性的假模式。

伪模类型主要来源关键特征识别手段
块状模z方向计算域被PEC/PMC或过窄截断场在z方向有多个振荡,到达PML边界仍很强沿z方向画场幅度曲线
泄漏模频率高于背景光锥,辐射损耗大本征频率虚部明显,场向背景介质传播检查复频率虚部、Q值
数值伪迹网格质量差、特征值数请求不足、奇异几何处场异常局部尖峰状场分布,网格变化后频率大幅移动做网格收敛性对比

这里需要说明,块状模和泄漏模并不总是严格可分的。有些模式可能同时具有“像导波模”的场型,但也有一定的泄漏率,它们处于从导波到辐射连续谱的渐变区。这也是为什么只用单一判据过滤不够,需要下面的三板斧组合判断。

3.2 第一板斧:场型可视化——真模和假模长什么样

先学会用眼睛看。对于一个真实的光子晶体导波模态,它的场能量应该主要集中在高折射率的介质板内部,同时向空气区域(或低折射率衬底)呈倏逝衰减。沿着z方向画一条场幅度曲线,真模的形状是“板内高、两侧迅速衰减到底噪”;如果是块状伪模,场曲线会在空气区域仍然保持较高的振荡,甚至在PML里还能看到明显的场分布。

横向场图同样有用。在板中心平面画Ez或能量密度分布,导波模通常会呈现与结构周期对应的空间变化,并且局域在介质区域。拉一条沿着x方向的切割线,真模的场包络应保持束缚状态。如果场分布散布在整个单胞里,甚至明显在单胞边界上出现不连续的跳变,那就要警惕边界条件设置或网格对应出了问题。

一个值得养成的习惯是:在批量扫完能带后,不急着处理数据,先挑出各k点对称位置上的几个典型模式,把它们全部用同一色标画出能量密度分布图,快速浏览一遍。这个过程通常只需要几分钟,但对建立“伪模长什么样”的直觉非常有帮助。色标范围一定要统一,不然不同模式图的可视化亮度差异会误导判断。

3.3 第二板斧:能量占比的硬指标

肉眼看场型快,但主观成分大,还是需要一个可以量化的指标来批量过滤。我最常用的硬指标是能量占比:目标结构区域内的电磁能量占整个计算域总电磁能量的比例。这里的目标结构区域,指光子晶体板的高折射率层本体(不包含上下的空气层和PML区域)。

在COMSOL后处理里,用“体积积分”分别在目标结构域和整个计算域里对电磁能密度做积分,然后相除,就得到这个占比。电磁能密度表达式的常规写法是电场储能密度加磁场储能密度,即类似0.5*epsilon0*eps_r*es.normE^2 + 0.5*mu0*es.normH^2的形式。注意,如果要算实际储能而非瞬时值,还需要考虑因子,但作为同一标准下的相对判据,直接用能量密度积分就足够了。

为什么能量占比能区分真模和伪模?因为真正的导波模必须被结构束缚,能量理应集中在高折射率板内。而块状模在空气区域传播,能量占比自然低;泄漏模也在背景中拖尾,占比也不会高。实际操作中,我会对目标频段内的所有模式列出能量占比,从高到低排序,通常真假之间的分界不是一条清晰直线,而是一个突然的“断层”,这个断层位置比任何固定阈值都更可信。

阈值的选择跟折射率对比度和板厚有关。比如高折射率硅板悬浮在空气中,真导波模的能量占比可以轻松超过70%,某些深亚波长模式甚至超过90%。如果换成折射率对比度较低的材料,占比会下降。所以我不建议照抄别人的阈值,而是先在低对称k点抽看若干模式,找到自己模型的“真实断层”位置,再据此批量过滤。

3.4 第三板斧:复本征频率与泄漏模过滤

加了PML之后,开放系统的特征值解会得到复本征频率。实部对应模式频率,虚部对应辐射损耗或材料损耗。导波模若不与辐射通道耦合,虚部应该非常小(主要来自数值误差和PML残余反射);泄漏模则因为不断漏出能量,虚部较大。

一个非常有效的过滤指标是品质因子Q,即Q = f_real / (2 * |f_imag|)。即便在能带扫描阶段不做完整的Q值分析,直接在结果里看虚部数量级就能区分:真实束缚模的虚部往往比它旁边明显泄漏的低几个数量级。所以批量过滤时可以先生成一张散点表,列出每个模式的实部、虚部、能量占比,然后在目标频段内找“虚部暴力跳高”的点,直接怀疑是泄漏模。

不过复频率判据有一个陷阱:如果PML离结构太近或厚度不够,真正的导波模也可能因为PML反射而出现较大的虚部。这种情况下看起来导波模也“泄漏”了,但这是数值假象。解决办法是增加空气层厚度或PML厚度,重新检查那些本应束缚的模式虚部是否显著下降。只有虚部对PML参数不敏感的模式,才真正束缚在结构里。这个验证过程虽然费一点时间,但能让后续的过滤结果可靠得多。

4. 把散点连成带:模式追踪与能带归并

过滤完伪模之后,手里还剩一批“疑似真实模式”。下一步是把不同k点下同一物理模式连成连续的能带。这一步同样有讲究,因为COMSOL默认按频率升序输出本征值,当你沿着路径扫描时,同一编号的本征值并不对应同一条物理能带。

4.1 COMSOL的特征值追踪与限制

COMSOL提供特征值追踪功能,它通过对比相邻参数步解之间的相关性来尝试保持模式身份。在小扫描步长、模式之间频率间距清晰时,这个功能表现还不错。但在接近简并点或反交叉点时,软件也经常“翻车”,把本属于同一条带的模式分配到另一条带上去。

我自己一般不会完全信任自动追踪结果,而是把它当成第一版排序参考。真正需要确认的地方,比如高对称点附近、能带交叉附近,一定会手动对比场型。如果后续要大量处理数据,我更倾向于用后处理叠加或外接脚本自己写模式排序,底层逻辑就是下一节要说的场重叠积分。

4.2 基于场重叠积分的模式排序

场重叠积分的思路很朴素:如果同一个物理模式在相邻两个k点上连续演化,那么它的电磁场分布应该非常相似,模式间的重叠积分应当接近1。反过来,如果两个模式属于不同物理带,重叠会很小。于是可以计算当前k点每个本征模的场分布与上一个k点某条已知带的场分布的重叠,取最大值来匹配身份。

在COMSOL里可以这样操作:先解出相邻两个k点的本征模,然后通过全局计算或派生值计算对两个解之间的内积。也就是把一个解的电场分量与另一个解的电场分量做体积分。由于Floquet相位是刻意改变的,不同k点的场之间本身存在相位差异,直接积分前需要做相位对齐处理。一个简化办法是取场分布模的平方积分作为相似度,避免相位问题,不过会牺牲一部分区分度。对于光子晶体板的低频束缚模,即使在中等采样密度下,这种重叠追踪也已经足够识别大多数模式。

这个办法比自动特征值追踪稳得多,代价是计算量和人工干预多一些。对于最终成图需要漂亮的能带曲线,这也是值得付的代价。尤其是当你在文献里看到能带图中两条带在一些区域擦肩而过但没有相交,手动用重叠积分去确认“谁是谁”几乎是唯一可靠的办法。

4.3 相交区反交叉的处理策略

前面提到,相同对称性的带不能交叉,只能反交叉。这一段的处理策略其实是前面对称性分析的直接应用。在画能带图之前,我会把每个采样点按照对称性分成几组,不同组的带用不同形状或颜色标记。这样画出来的图在相交区域会自动呈现出“相同颜色不交叉、不同颜色可交叉”的规则。

具体到COMSOL的数据处理流程,我的做法是:把每个模式按对称性标签和能量占比整理成一个表格,然后导入绘图工具(或者直接在COMSOL后处理里筛选并分组绘制)。分组绘制后,哪怕模式身份追踪有个别错误,能带图上的交叉点也不会出现违反对称性规则的视觉矛盾。这一点在论文或报告评审时非常重要——审稿人往往不会逐点验证你的场型,但会直接看你画的带是否违反基本物理规律。

5. 一次能算乱又理得清的完整排查案例

前面讲的都是方法和原则,这一节用一个典型示例把这些串起来。这个例子用来展示排查流程,参数设置按常见文献的做法选取,不针对任何具体材料或团队。

5.1 模拟项目X:方形晶格介质板的初始杂带

模拟项目X是一个悬浮的方形晶格介质板,晶格常数a,板厚0.5a,圆孔半径0.3a,介质相对介电常数12,背景为空气。用COMSOL电磁波频域接口,x、y方向加Floquet周期边界,z方向设置空气层加PML。沿Γ→X→M→Γ路径扫描40个k点,每个点请求12个特征值,预计需要关注低频率范围内的导波带约为5到6条。

第一次跑完,把所有本征频率按编号直接画出来,得到的是一条充满杂散谱线的图。光看这图会让人觉得“模型肯定错了”或者“PML没起作用”,但仔细排查后才发现,真正的问题不是边界条件,而是输出结果里混进了块状模和泄漏模,以及一部分高频伪迹,导致已经算不出有效的连续带型。这其实是光子晶体板能带仿真的常态:第一版图永远不能直接用。

5.2 按伪模判据逐个过滤的完整表格

现在以Γ点附近某几个k点为例,列出它们算出来的12个本征模式,按频率排序,然后逐个检查能量占比、虚部和场型特征。

模式编号归一化频率 (a/λ)能量占比虚部特征场型特征初步判定
10.2882%极小板内局域,Ez分布规整导波模
20.2881%极小与模式1正交的偏振分布导波模,与1简并
30.3374%极小板内局域,场分布不同对称性导波模
40.3648%中等z方向场分布出现驻波振荡疑似块状模
50.4122%很大场扩散到PML区域泄漏模
60.4515%很大场集中在空气背景,异常振荡泄漏模
70.5266%极小像导波模,但频带接近下一条带需进一步识别
80.5361%中等与模式7场型相近,虚部异常可能是反交叉区模式
90.5835%中等场在板边缘集中,疑似网格伪迹待网格收敛验证
100.625%很大明显向外辐射泄漏模
110.702%很大几乎无束缚特征泄漏模
120.7510%很大场分布在PML内部块状/泄漏混合

过滤逻辑从上到下非常机械。能量占比低于50%的先标红,虚部很大的标红。但模式7和9需要额外的耐心:模式7的能量占比不低,场型也像导波模,但它紧贴相邻模式,虚部也不算正常。模式9的场型在板边缘集中,非常像圆孔尖锐边界处由于网格奇异造成的伪迹。

于是把模式7和模式9单独做网格加密验证。加密后模式7的频率变化很小,虚部明显下降,确认是真实的导波模;模式9的频率在加密后跳变了几个百分点,而且能量占比跟着变,确认是网格奇异性伪迹,直接剔除。

5.3 最终能带图里剩下什么

按上述流程处理完所有40个k点后,原始480个本征解中最终保留约220个有效模式点。整理成能带图后,低频端出现几条干净的导波带。在Γ点处能看到一对频率重合的简并模式,对应表格中的模式1和模式2;在X点附近两条不同对称性的带出现交叉;在路径中段还能看到一对相同对称性带的反交叉特征,带间出现一个小小的频率间隙。

需要特别提醒的是,从这里开始能带图就不再只是一个“点云图”了。每一步保留和剔除背后都能对应到具体的物理和数值判据,这也是后面写论文时可以直接放到Supporting Information里的内容。

6. 那些让我抓狂的隐形问题与调参经验

过滤流程走通之后,最后分享几个平时不容易注意到、但会反复消耗时间的隐形问题。这些问题每一个都曾让能带图出现过“看起来合理但其实错得离谱”的情况。

6.1 网格对称性不够导致的伪简并劈裂

前面提到过的伪简并劈裂,这里单独展开。名义上应该简并的两个模式,如果网格划分打破了结构的对称性,算出来的频率会略有差异,你可能误判成“结构对称性破缺导致的带分裂”。区别两者的办法很直接:把网格改成保持结构对称性的细化网格,重新计算同一个k点。如果频率差随着网格对称化明显缩小到接近零,那原来的劈裂就是数值假象。

网格对称性这个细节在光子晶体板里尤其重要,因为圆孔或方孔的边缘容易出现不对称划分。我常用的办法是先建四分之一单胞或使用对称网格控制,确保孔边界上的网格分布保持旋转对称。这个操作本身不改变物理模型,却能省掉大量后续排查时间。

6.2 频率扫描时模式跳变的根源

如果你发现沿路径扫描时,某条带在个别k点处突然跳到相邻带的位置,然后下个点又跳回来,多半不是物理现象,而是特征值追踪失败或漏解。根源通常在搜索基准点设置过窄,导致某个k点处漏掉了本来该出现的模式,软件自动把下一个高频率模式顶上,看起来就是带跳变了。

解决方案是先检查该k点附近是否出现了频率间隔异常大的空档。如果有,说明这里漏了一个特征值。把特征值请求数量加多一点,或者把搜索基准点移到目标频段中心,重新计算这个k点。我通常会在所有跳变点做局部密采样,再用重叠积分确认模式身份。这比全局加密扫描效率高很多。

6.3 材料参数或几何细节引发的“幽灵模”

某些能带图里会出现很多频率异常接近的“成对模式”,看起来像简并但物理上又不该有。这时候优先检查材料参数是否有损耗,因为介质损耗会给本征频率引入虚部,使原本重合的简并模式出现微小分裂。如果实部差异在几个数量级以内,且虚部变化也不一致,很可能就是材料损耗带来的数值效应,而不是真实的结构分裂。

另一种幽灵模来自几何细节的奇异场。例如介质层边缘直角过渡时场在棱边发散,网格越密频率越漂。处理办法是把棱边做小圆角过渡,或者把奇异场区域用更细网格局部加密并做收敛性测试。这种问题的判断标准我觉得应该是:如果一个模式在你的网格加密一倍后频率变化小于你期望的精度,那它才称得上稳定可信的导波模。

多说一句我自己的习惯。每次跑完光子晶体板能带,我不会直接删掉第一版“脏”能带图,而是把过滤前的点和过滤后的点叠在一张图里存起来。这样既能随时确认过滤条件是否合适,也能在后来发现自己其实过滤掉了一个真实模式时,回头从原始数据里重新捞出来。仿真做久了就会发现,“留一手原始数据”跟“写清楚过滤逻辑”一样重要。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询