☰
COMSOL光学仿真实战:负折射率与BIC高Q共振的芯片设计
2026/10/15 23:39:32 网站建设 项目流程

COMSOL光学仿真这个圈子,隔一段时间就会冒出一个让人又兴奋又头疼的关键词,负折射率是一个,连续域束缚态(BIC)是另一个。而当有人把这两个词同时放进一个项目里,我第一反应就是:这绝对不只是“换一个结构跑一跑参数扫描”那么简单。我前阵子刚好把一个相关课题收尾,核心就是把负折射率BIC的设计思路往芯片尺度上推,用COMSOL做了完整的光学仿真验证。整个过程从物理图像到建模细节,踩了足够多的坑,也沉淀出一套还算稳定的处理流程。这篇文章就直接把这些经验摊开来讲,覆盖项目拆解、模型选型、实操步骤、问题排查和扩展方向,给正在做或者准备做类似课题的读者一份能真正照着上手的参考。

这篇文章适合两类人:一类是研究生阶段刚接触COMSOL光学仿真、被BIC和超材料概念绕晕的初学者,另一类是已经能跑通常规仿真、但想在负折射率与高Q共振结合的方向上深入一点的工程师。我会先把“为什么负折射率和BIC可以放在同一个芯片结构里研究”讲清楚,再逐步拆解COMSOL里的建模与求解细节。最后要说明的是,不同版本的COMSOL界面和求解器选项会有差异,但核心物理思路和排查方法是可以直接迁移的。

1. 项目拆解:为什么把负折射率与BIC放在一起研究?

1.1 负折射率的基础:超材料与双曲线色散

负折射率这个词听起来很“科幻”,但物理本质并不复杂。常规材料中,折射率等于介电常数和磁导率乘积的平方根,通常取正分支。假如某种材料的介电常数和磁导率实部同时为负,那么按因果性必须取负分支,这就是负折射率的来源。电磁波从普通介质进入这种材料时,折射角不再是穿过界面偏向法线另一侧,而是偏向与入射波同侧,相当于Snell定律里的折射角变成了“负的”。

这种材料通常称为左手材料或负折射率超材料。一个朴素的生活化类比是:清水池底的硬币看起来总比实际位置浅一点,那是因为水对光产生了正折射;如果你想象一种“反向的水”,光进入之后不是向池底弯,而是向水面方向“倒着弯”,那大概就是负折射的感觉。

不过,真正要实现负折射,光靠单个参数为负还不行。各向异性材料中还有一种双曲线色散机制,即介电张量不同方向分量的符号相反,等频面从球面变成双曲面,电磁波的群速度可以与波矢方向明显分离,等效出现定向传输甚至负折射行为。这类机制在片上光子学里特别受关注,因为它不需要做到磁导率同时为负,只要设计电介质结构就能凑出等效各向异性。很多“芯片内负折射现象”的实验设计,本质就是在介质光子晶体或超表面里构造出这种双曲线色散。

1.2 BIC是什么:连续域里的“隐形共振态”

连续域束缚态,英文叫Bound States in the Continuum,简称BIC。名字听起来拗口,但可以这样理解:一般束缚态的能量低于连续谱,例如电子被关在量子阱里,能量不够就逃不出来;而BIC的能量明明落在可向外辐射的连续谱范围内,却因为各种原因始终不向外辐射。

光学里最常见的BIC是对称性保护的。假设一个光子晶体平板结构拥有某个旋转对称性,平板中某个模式与外部辐射模式的对称性不匹配,那这个模式即使频率高于光锥,也无法耦合到远场,理论上Q值可以无穷大。还有一种叫偶然BIC或可调BIC,通过调节结构参数使多个辐射通道的泄漏幅度刚好抵消,也能把模式“关”在结构内部。

打个比方,你在一个热闹的十字路口中央划了一片“静默区”,车流量再大,所有车都因为某种规则绕开这片区域,里面那辆车可以一直待着不被带走,这就是BIC的状态。

BIC在芯片光子学里的价值非常直接:Q值极高意味着光与物质相互作用时间极长,共振峰极窄,对折射率变化、几何扰动极敏感。把这种高Q共振和负折射色散放在同一套介质结构里,就有可能在低损耗、可集成的条件下同时获得“高Q”和“负折射”两种特性。

1.3 芯片内负折射现象的技术价值与难点

传统负折射实验大多依赖三维金属超材料,例如开口谐振环阵列。这类结构在微波段效果不错,但到了光频段,金属损耗大幅上升,而且要加工立体结构很麻烦,与CMOS工艺的兼容性也很差。所以产业界和学术界都想找到平面化、介质化的替代方案,这就是“芯片内负折射”这个方向的由来。

芯片内负折射的潜在应用包括片上平板透镜、波束偏折器、模式转换器、偏振控制器件,以及超高灵敏度的折射率传感器。由于BIC的天然窄带特性,它还能和负折射色散结合做窄带滤波和波长选择。

但难点也很明显:介质材料的色散响应比金属谐振器弱很多,靠单一共振很难覆盖大带宽负折射;BIC对结构对称性极为敏感,一个很微小的椭圆率偏差就能让Q从无穷跌到几千;此外,片上波导与周期性超表面的接口存在模式失配,仿真和实验之间的偏差往往比普通光子器件更大。这些问题靠手算基本无解,因此一套可靠的COMSOL仿真流程就成了课题推进的关键。

2. 仿真前的物理准备与COMSOL模型选型

2.1 物理场接口怎么选

COMSOL光学仿真最常用的接口是波动光学模块里的“电磁波,频域”(Electromagnetic Waves, Frequency Domain),它直接求解频域Maxwell方程组,支持本征频率、频域扫频、S参数计算等多种研究类型。如果你的结构尺度在纳米到微米量级,用这个接口就够了,不需要动用RF模块里的瞬态求解。

接口选完之后还要决定用二维还是三维。二维模型计算量小,适合用来快速扫参数、判断物理趋势,例如验证某个几何尺寸区间是否出现负折射。但BIC的对称性保护和三维光锥耦合行为,通常在二维简化模型里无法完整呈现,至少需要保留结构在垂直方向的实际厚度。我的习惯是:先用二维做原理验证,确认色散趋势,再上三维模型做精确的Q值提取和S参数反演。

另外需要注意“本征频率”研究和“频域”研究的配合。BIC本身是一个无外部激励的本征模式,所以找BIC主要靠本征频率求解器;而要看准BIC的透射峰、Fano线型,或者要算S参数反演负折射率,就需要在频域研究里加端口激励。两者并不是替代关系,而是同一个模型的两条验证路径。

2.2 材料参数与色散模型

材料参数设置是整个仿真里最容易被低估的一环。很多新手喜欢直接给负折射率区域填一个εr = -1、μr = -1的纯实数,这在COMSOL里确实能跑,但结果往往有问题。因为任何负实部的色散都必然伴随正虚部的损耗,这是由因果性决定的。如果你给的参数不满足Kramers-Kronig关系,仿真里可能会出现能量不守恒、S参数幅值大于1等非物理现象。

我推荐两种建模路线。第一种是等效参数验证路线,用Drude或Lorentz色散模型去描述负折射率媒质,让参数在目标频点附近等于你想要的负值,同时自带合理损耗。Drude模型可以写成:

epsilon_r = 1 - wp^2 / (w^2 + i*gamma*w) mu_r = 1 - wmp^2 / (w^2 + i*gamma_m*w)

其中wp和wmp分别是电响应和磁响应的等离子体频率,gamma是碰撞频率。通过调节这些参数,可以让epsilon_r和mu_r在目标频率附近同为负值,同时保留物理上必需的损耗项。

第二种是实际结构路线,即把金属或者介质单元的几何结构建出来,用COMSOL材料库或自定义插值函数赋材料参数。BIC结构通常以介质为主,例如硅、氮化镓、二氧化钛等,这类材料在近红外波段可以近似用恒定折射率,但要精确模拟Q值和共振波长,还是用带色散的n、k数据更稳妥。金属如果用金或银,建议用Drude模型定义,而不是直接用材料库默认的固定电导率,因为光频段金属行为完全由等离子体响应主导。

2.3 几何结构、边界条件与网格的关键设置

边界条件设置直接决定了你能不能算出BIC。周期结构的常用做法是只建一个周期单元,在单元侧面设置Floquet周期边界,也叫布洛赫周期边界。这个边界条件允许你指定kx和ky,相当于模拟无限周期阵列中的一个布洛赫波矢。扫描kx就可以得到能带色散,找到BIC出现在哪个k点。

如果还要考虑结构向空气辐射,也就是要计算泄漏Q或者远场,就必须在模型的外围加上完美匹配层(PML)或至少散射边界条件。PML的作用是吸收向外传播的波,模拟“无限大开放空间”。我建议PML至少设两层,总厚度在目标波长的二分之一附近;太薄会有反射,太厚会白白增加网格量。

网格方面,光学仿真最基本的要求是每波长至少10个二阶单元,几何上的细微特征,比如椭圆孔的边缘、介质柱的圆弧、金属薄膜的尖角,必须做局部加密。BIC的Q值对网格质量极其敏感,如果你发现Q值随网格变密还在上升,那说明还没有收敛,不能盲目相信当前结果。

3. 实操过程:从建模到提取BIC与负折射特征

3.1 第一步:参数化几何建模

我以一个介质平板光子晶体结构为例来说明具体流程。假设结构是厚度t=200nm的介质平板,周期p=600nm,每个周期单元内开一个椭圆孔,椭圆长半轴为rx,短半轴为ry。当rx=ry时,单元在面内具有很高的旋转对称性,可能支持对称保护的BIC;当rx≠ry时,对称性被打破,BIC转变成准BIC,Q值从无穷变成有限值。

在COMSOL里,我会先建立一组全局参数:

参数名表达式说明
t200[nm]平板厚度
p600[nm]周期尺寸
rx150[nm]椭圆长半轴
ry150[nm]椭圆短半轴
alpha(rx-ry)/(rx+ry)对称性扰动参数
f0200[THz]目标频率

几何建模时,先用“长方体”建一个p×p×t的介质块,再用“椭圆”在工作平面上画椭圆孔,最后用布尔差集把孔从平板上减掉。这里有个小技巧:椭圆孔中心放在单元中心,但要注意周期边界两侧的几何特征必须严格一致,否则布洛赫边界条件会报错。如果不希望孔跨越单元边界,干脆把孔与单元边界的间距留小但不为零,避免几何拓扑错误。

3.2 第二步:本征模式扫描与BIC定位

几何建好后,添加“电磁波,频域”接口,材料指定为介质材料,四周设置Floquet周期边界,顶面和底面如果不需要算远场就设成“周期性端口”或“散射边界条件”。接着添加“特征频率”研究,在设置里把“搜索频率”范围覆盖到目标波段附近,例如50THz到400THz。

然后用“参数扫描”扫描kx。这里我习惯先扫Γ到X方向,kx从0到π/p。求解结束后,查看“全局计算”里的本征频率列表,通过实部频率和虚部频率判断模式性质。复数本征频率的虚部对应模式辐射损耗,Q值可以用下面这个式子提取:

Q = Re(f) / (2 * abs(Im(f)))

COMSOL不同版本输出的虚部符号可能不一致,所以我建议直接用绝对值,别在这个符号细节上纠结。算完所有kx点后,把每个模式的本征频率实部对应到二维图里,就得到了能带结构。BIC通常表现为一条能带在某个kx点与连续辐射域交叉,但Q值仍然异常大,对应模式场图强局域在介质平板之中。

有一个容易混淆的点:本征频率求解器算出的Q值包含了PML或散射边界带来的数值泄漏。如果PML设置不佳,即使不是BIC的模式Q也会显得很高,所以要有意识地把PML参数纳入收敛性验证。

3.3 第三步:Q值提取与扰动扫描

BIC最有力的验证方式不是“看一个点”,而是“看一条曲线”。你可以固定kx为BIC所在的特殊k点,然后扫描对称性扰动参数alpha,观察Q值随alpha的变化趋势。理论预期是:对称性保护的BIC在alpha趋于0时Q趋于无穷大,准BIC的Q随alpha的增大按平方反比下降。

实际操作里,alpha可以从0.01扫到0.2,每个alpha点都做一次特征频率求解,然后批量导出本征频率列表。如果模型数量多,建议用COMSOL的“辅助扫描”功能,把不同alpha的求解结果都存到同一数据集里,通过“全局计算”一次性输出。借助LiveLink for MATLAB或者直接把数据导出到文本文件,再用MATLAB画出log-log曲线,Q随alpha的变化关系一目了然。

这是个很关键的经验:如果你的Q-alpha曲线在alpha趋于0时没有表现出发散趋势,而是在某个有限值附近饱和,那大概率不是BIC。饱和的原因要么是材料吸收,要么是网格/PML数值泄漏,要么是模式本身的对称性与你预期的并不匹配。

3.4 第四步:S参数反演与负折射判定

研究负折射,不能光靠看能带的形状,还需要定量判断等效折射率是否为负。最常用的方法是S参数反演,也就是从透射和反射系数中提取复折射率和阻抗,这种方法通常称为NRW反演法。

在COMSOL里,把研究类型改为“频域”,在模型上下两侧添加周期性端口,激励端口1,记录S11和S21。然后利用以下公式反演等效参数:

z = sqrt( ((1 + S11)^2 - S21^2) / ((1 - S11)^2 - S21^2) ) n = (1 / (k0 * d)) * acos( (1 - S11^2 + S21^2) / (2 * S21) )

其中d是结构的有效厚度,k0是真空波数。需要注意的是,acos是一个多值函数,反演出来的n有一个分支选择问题,需要随着频率连续展开,否则会在频点之间出现突然跳变。我的做法是先把频率间隔调小,从低频向高频逐步追踪相位变化,把n的虚部约束为正值,再确定实部的符号。

如果Re(n)在某个频段为负,同时Re(z)为正,说明该频段内电磁波确实在等效媒质中表现出负折射行为。这个结果需要与能带计算、远场场图互相印证。进阶一点的验证方法是直接在COMSOL里建一个楔形超表面结构,用高斯光束斜入射,观察透射光束是否偏向入射方向同侧,这种方法最直观,但计算开销大,适合作为最终的物理确认。

4. 常见问题与排查技巧实录

4.1 本征求解器“找不到”模式该怎么办

我刚开始做BIC仿真时遇到过很多次:参数扫描过程中,某个kx点明明应该存在模式,但求解结果里就是没有。排查下来,最常见的原因是搜索频率范围设置得太窄。COMSOL特征频率研究默认搜索范围有时和你的目标波段不一样,尤其是当你用THz单位而内部求解用Hz时,容易出现量级错位。

另外,特征频率求解器本身依赖于初始猜测和迭代算法,在扫描参数时如果直接重新求解,很容易漏掉弱模式。这时候可以把上一个kx点的求解结果作为初始估计,或者把“特征值搜索的初始点”设置成上一步的复频率。还有一个更稳妥的办法:先在频域研究里做一次扫频,找到透射谷或反射峰的位置,再回到特征频率研究中锁定这个频率附近搜索模式。这样相当于先用物理信号定位,再用本征求解器精确求解,成功率会高很多。

4.2 Q值不收敛、网格敏感问题

Q值不收敛是我在这个课题里印象最深的一类坑。有一次算出来的Q值从几千跳到几万,我以为发现了一个优秀的准BIC模式,后来把网格从每波长20个单元加密到40个,Q竟然又变化了一个数量级,这时候才意识到之前的数值结果并不可靠。

BIC本质上是一个无辐射模式,数值上它依赖各个通道泄漏的精确抵消。网格太粗会把这种抵消破坏掉,虚部本应为零的模式出现了虚假的泄漏辐射。如果你发现Q值随网格加密持续上升,且没有明显饱和趋势,那就要继续加密。针对孔洞边缘和介质界面的局部网格,我建议开启“边界层网格”或者“细化”功能,把最大单元尺寸控制在最小结构特征尺寸的1/5以下。

还要注意PML参数。PML厚度和层数不足时,向外传播的波会被PML边界反射回来,形成一个虚假的“高Q”腔模。判断方法很简单:把PML厚度增加一倍,如果Q值变化明显,说明原先的Q被PML反射污染了。

4.3 如何区分真正的BIC与普通Fano共振

Fano共振是由离散共振态和连续背景干涉产生的,实验上也会表现出一个尖锐的不对称峰,很容易和准BIC混淆。但两者有本质区别:Fano共振对应的是可辐射模式,Q值有限;BIC对应的是不可辐射模式,在对称性保持点上Q值理论上发散。

我的区分方法有三个。第一,画Q随扰动参数的变化曲线,真正的对称保护BIC在几何对称恢复时Q发散,Fano共振则只是有限值。第二,看场分布是否集中在结构内部,BIC模式的远场辐射几乎为零,关掉PML或者在周围放一个远场探针就能判断。第三,保持结构对称性不变,只改变单元尺寸、折射率等全局参数,重复求解,真正的BIC会持续存在并保持高Q,而偶然性的Fano共振位置和Q值会发生明显偏移。

另外要说明的是,如果材料本身有吸收,Q值会被吸收损耗钳住,比如在1万到10万量级饱和。这不是仿真错误,而是物理损耗的体现。判断BIC时要区分“辐射损耗为零”和“总损耗为零”,BIC保证的是前者,后者永远做不到。

4.4 芯片集成场景下的典型偏差

从单元仿真走向片上器件时,最容易踩的坑是“无限周期假设”和“真实有限结构”之间的偏差。COMSOL里的周期性边界条件相当于假设芯片上有无限多个周期单元,但实际上光在有限尺寸阵列边缘会有泄漏和衍射,波导耦合进来的模式也和平面波端口相差很大。

我的建议是,单元仿真通过之后,再做一次有限尺寸的暂态或频域仿真验证边角效应,哪怕只建一个包含5×5或9×9个单元的超胞,也能看到边缘泄漏比无限周期预测大多少。波导耦合问题则要通过联合建模来评估,把条形波导、锥形过渡结构和超表面放进同一个模型,观察能量是否真的进入了目标模式。

制造误差也是一个不可忽视的变量。BIC对几何扰动的敏感度极高,椭圆率偏差、侧壁倾斜角、平板厚度的不均匀性,都会把Q值拉下来。在仿真阶段可以做一个容差扫描,比如厚度扫描±20nm,椭圆率扰动扫描到0.02,看共振波长和Q值偏移多少,这些数据后面做实验对照时会非常有用。

5. 扩展方向与个人经验总结

5.1 从结构单元走向片上器件

这套仿真流程跑通之后,下一步自然是把验证过的结构单元扩展成完整器件。例如做一个片上负折射平板透镜,把不同周期、不同尺寸的单元组合成一个超表面,用COMSOL频域仿真看透射波束的聚焦行为。也可以做一个二端口器件,在波导两侧分别添加端口,通过S参数评估负折射引起的模式转换和波束偏转。

如果目标是传感器,BIC的高Q特性可以直接转化为高灵敏度的品质因子;如果目标是滤波,准BIC的Q可调特性很适合做波长选择。这些方向本质上是同一套单元设计在不同应用场景下的变形,仿真流程大同小异。

5.2 与实验对照前先做“仿真回归”

我强烈建议在拿到实验数据之前,先做一轮“仿真回归”。所谓回归,就是把仿真参数向最真实的加工条件靠拢:材料折射率用实测椭偏数据,几何尺寸用SEM照片的量测值替换理想设计值,厚度偏差和侧壁角也一并不再假设为完美。这样仿真得到的共振波长和Q值,才与实验有可比性。

很多课题的失败在于对比时只用理想仿真和实验数据硬碰,结果共振位置对不上就开始怀疑实验结果。实际上只要把几何和材料损耗回归一遍,大部分偏差都能解释。这轮回归跑完后,再回来调结构设计,效率会高很多。

5.3 我个人踩过的坑与长期保留的习惯

回顾这个课题,我最开始犯的错误就是偷懒用纯实数εr=-1、μr=-1去仿真,结果S参数反演出来的有效参数乱跳,根本分不清是物理现象还是非物理伪影。后来老老实实换上Drude色散模型,问题立刻消失。从那以后,任何涉及负参数的材料模型,我都会先检查是否满足因果性。

另一个长期保留的习惯是:所有参数扫描数据绝不放在单一模型文件里集中保存,而是用“基模型+参数扫描脚本+导出数据”分离管理。COMSOL文件稍大几轮扫描就容易卡顿,把本征频率和S参数导出成CSV或文本文件,用MATLAB或Python做后处理绘图,效率高很多。下面这段是我常用的产后处理片段:

% 读取COMSOL导出的复数本征频率列 data = load('eigenfreq.txt'); f_real = data(:,1); f_imag = data(:,2); Q = f_real ./ (2 * abs(f_imag)); plot(data(:,3), Q, 'o'); % 假设第三列是扰动参数alpha

最后说一点心得:负折射率和BIC这类课题,最后的瓶颈往往不是计算资源,而是物理判断力。仿真里每一个峰、每一条曲线,你都应该能讲清楚它对应的电磁过程是什么。COMSOL只是一个工具,真正的核心是头脑里那幅从能带到场图、从色散到S参数的完整物理图像。建模之前先花十分钟想清楚“这个仿真到底要回答什么问题”,比直接上手调参数要重要得多。

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

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

立即咨询