ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

COMSOL弯曲波导模式分析:有效折射率虚部与损耗计算详解

COMSOL弯曲波导模式分析:有效折射率虚部与损耗计算详解 做集成光子或者硅光这块凡是涉及弯曲波导的仿真最绕不开的一个环节就是用COMSOL做模式分析。环形谐振器、弯曲波导、S弯、微环调制器这些结构在版图上看着就是一条弧线但仿真的时候麻烦程度比直波导高出一大截。问题集中在两个地方一是弯曲波导的有效折射率不是我们习惯的单一实数它变成复数了二是损耗的精细计算到底怎么从仿真结果里拿准而不是拍脑袋估一个数。这篇文章就围绕这两个核心问题展开。我会从弯曲波导的物理本质讲起然后完整走一遍COMSOL的建模、设置、求解和参数提取流程最后把我在实际项目里踩过的坑、验证过的方法整理出来。无论你是刚接触COMSOL的新手还是已经做过一阵直波导模式分析、想往弯曲结构深入的老手这篇文章应该都能给你一些参考。1. 弯曲波导的分析难点为什么直波导的经验在这里失灵直波导的模式分析非常成熟截面画好材料给上COMSOL的“模式分析”步骤一跑有效折射率出来场分布图画出来一切都很直观。但换成弯曲波导之后情况就不一样了。1.1 弯曲波导的模式本质从“纯导模”变成“漏模”先回顾一下直波导的情况。对于一根直的矩形波导如果芯层折射率高于包层光被限制在芯层里传播模式的有效折射率是实数传播常数也是实数理论上光可以无损地一直传下去。这是标准的“导模”。但波导一弯曲情况立刻改变。你可以把弯曲波导理解成一根被弯成弧形的波导光在弧形路径上传播时为了让波前保持同步靠近弯曲外侧的光需要跑得比内侧更快。如果弯曲半径不够大外侧某些区域的等效相速度就会超过材料中的光速这部分光就再也“拉不住”了会从波导外侧辐射出去。这就是弯曲损耗的物理根源。也就是说弯曲波导的模式天然就是“漏模”能量在传播过程中会持续向外泄漏。这个特点反映在模式分析结果上就是有效折射率从实数变成了复数。实部代表模式的相位传播特性虚部则直接对应损耗的大小。这也是为什么很多新人第一次跑弯曲波导模式看到有效折射率弹出一个虚部会以为自己哪儿设置错了——其实这个虚部正是弯曲波导损耗的核心信息。另外弯曲会让模场分布发生明显偏移。直波导的模式场对称地集中在芯层中心而弯曲波导的模式场会整体向弯曲外侧“挤”弯曲半径越小、折射率差越大偏移越明显。这个偏移不光影响损耗还会影响模式与直波导或其它器件的耦合效率所以在设计弯道过渡结构时这个现象也必须纳入考虑。1.2 有效折射率虚部与损耗的关系COMSOL的模式分析求解得到的是模式的有效折射率neff Re(neff) i × Im(neff)传播常数和 neff 的关系是β k₀ × neff (2π/λ) × (Re(neff) i × Im(neff))这里 k₀ 是真空中的波数λ 是工作波长。光在弯曲波导中传播时场振幅沿传播方向按 exp(-αz) 衰减其中衰减系数α就是损耗系数。展开推导后可以得到α (4π/λ) × Im(neff)这个 α 是场振幅的衰减系数单位是1/m。工程上更常用的是功率损耗单位是dB/cm。功率衰减系数是 2α换算成dB/cm就是功率损耗(dB/cm) 2 × α × 10 × log10(e) / 100 (8.686 × 2α) / 100化简之后可以直接从有效折射率虚部换算功率损耗(dB/cm) 8.686 × (4π × Im(neff) / λ) × 0.01举个例子假设工作在1550nm波长仿真得到的 Im(neff) 1 × 10⁻⁵那么α (4 × π × 1e-5) / (1550e-9) ≈ 81.08 /m换算成功率损耗损耗 8.686 × 2 × 81.08 / 100 ≈ 14.08 dB/cm如果虚部是 1 × 10⁻⁴损耗就变成大约 140 dB/cm。这个相当于每走一厘米光功率就衰减到原来的 10⁻¹⁴已经是完全没法用的水平。所以做弯曲波导设计的时候Im(neff) 这个数非常敏感哪怕只差一个量级器件的损耗表现就是天壤之别。1.3 弯曲损耗的核心变量半径与折射率差弯曲损耗受两个参数影响最大。第一个是弯曲半径 R。R 越小光在弧形路径上的“离心”效应越强模式偏移越严重损耗也越大。而且这个关系不是线性的而是接近指数关系。工程上有一个粗略的经验公式是在弱导近似下推导出来的用来估计弯曲损耗随半径的变化趋势其中包含 exp(-const × R) 这样的因子。也就是说半径稍微增大一点损耗可能会下降好几个数量级。第二个是芯层与包层的折射率差。折射率差越大光被束缚在芯层里的能力越强弯曲损耗越小。这也是为什么高折射率差平台比如硅光芯层折射率约3.45包层是二氧化硅约1.44可以做到非常小的弯曲半径而低折射率差平台比如普通聚合物波导折射率差只有0.01级别动辄需要毫米级甚至厘米级的弯曲半径否则损耗会大到不能接受。理解了这两个核心变量再去看COMSOL的仿真结果心里就有数了。下面进入实操环节。2. COMSOL建模弯曲波导模式分析的全流程2.1 几何建模用扇区还是用环形COMSOL里做弯曲波导模式分析第一步是建几何。你不需要建一个完整的环形结构因为模式分析是截面分析本质上是在波导传播方向的一个“横向截面”上求解特征值问题。对于弯曲波导有几种做法。最直观也最常用的做法在二维平面里画一个圆环的局部扇区然后取它的截面。等效的做法是直接建立一个“弯曲波导截面”这个截面实际上是一个环形扇区的横截面。但COMSOL的原生操作不太适合直接表达这种极坐标系下的截面更常见的做法是直接在二维组件里画圆环用角度很小的扇区然后设置周期性边界条件来表示弯曲波导的圆周对称性。具体到建模我常用的方式是这样的新建一个二维模型不是三维在几何节点里添加两个同心圆半径分别对应弯曲内径和弯曲外径用“差集”操作得到圆环。然后截取一个小角度扇区比如1度或者更小。扇区的两条直边设为周期性边界条件这样等效于无穷长的弯曲波导。如果觉得这种极坐标几何方式处理起来麻烦还有另一种思路用“变形几何”或者直接在三维里建一个弯曲波导段然后用模式分析求解。但三维会显著增加计算量我建议还是用二维扇区方式简单高效物理上也更清晰。扇区角度选多少合适原则上只要网格分辨率够角度越小越好。1度已经足够小可以让弧长方向的变化被周期性边界条件完美处理。如果计算资源紧张0.5度也可以。关键在于扇区两条边界的法线方向要严格沿着径向这样周期边界才准确。2.2 材料与波长设置材料参数方面以典型的SOI硅波导为例芯层硅折射率 n 3.4781550nm附近衬底层二氧化硅n 1.444包层空气或二氧化硅根据具体工艺决定在COMSOL里最简单的方式是直接用折射率定义不用引入材料库的完整色散模型。波长扫描时注意折射率要跟着波长变化——如果只做单波长分析那直接用常数就行。波长参数化很有必要。我通常把波长设为全局参数单位是nm例如 lambda0 1550[nm]。频率求解时COMSOL使用的是 f c/lambda也可以在“电磁波频域”物理场的设置里直接指定。2.3 物理场与边界条件PML是关键物理场直接选择“电磁波频域”Electromagnetic Waves, Frequency Domain, ewfd求解类型设为“模式分析”这是做波导模式计算的标准配置。边界条件的处理是这个环节的重中之重。如果是直波导模式分析很多教程直接使用“散射边界条件”SBC包围整个计算域因为导模基本不会触碰边界计算结果对边界条件的依赖很小。但弯曲波导完全不同。弯曲损耗产生的辐射场会持续向外传播如果边界条件不吸收这些辐射它们会在边界处反射然后与模式场干涉导致有效折射率虚部完全失实。所以弯曲波导模式分析的边界处理必须是“完美匹配层”PML才能把向外传播的辐射干净利落地吸收掉。PML的设置在COMSOL里并不需要太多手动操作。在建模时扇区的最外圈预留一层环带把这个环带所在域的“PML”勾选上就可以。严格来说PML区域还要设置合适的厚度和吸收方向但COMSOL的物理场接口一般会根据几何自动判断。PML要留多厚经验值是一到两个波长。在1550nm工作波段如果包层是二氧化硅PML厚度取2到3微米就足够了。太薄吸收不干净太厚又浪费计算资源和内存。另外要注意PML的外边界不再加其它边界条件保持默认的“完美电导体”也没关系因为PML已经把所有向外传播的波吸收掉了外边界是什么条件已经不重要了。2.4 网格划分决定虚部精度弯曲波导的模式分析网格质量直接决定虚部算得准不准。实部往往还好说粗网格也能给出大致正确的结果但虚部小到1e-5甚至1e-6量级的情况下网格不够细结果很可能差好几个量级。网格划分的经验有以下几条第一芯层区域必须非常细。矩形波导芯层比如450nm宽、220nm高的硅脊内部至少要保证5到10层网格这样才能解析模场在芯层内部的精细结构。强烈建议在芯层和靠近芯层的包层区域使用“映射网格”或者“扫掠网格”人工控制网格尺寸。第二从芯层到PML的包层区域网格尺寸可以逐渐放大但不要放大得太快。默认的“物理场控制网格”往往在芯层和包层交界处做不太好建议切成“用户控制网格”。第三PML区域内部网格要分层。PML的网格应该有明确的扫描层数一般5到10层就够。如果COMSOL的PML功能自动处理那就不用管。第四网格尺寸最小值的判断标准是再加密一倍Im(neff)的变化不超过5%就说明收敛了。这是数值仿真领域的通用收敛性判据在实际项目中要严格执行。3. 模式分析求解与参数提取的精细操作3.1 模式分析求解器的设置细节完成几何、材料、物理场、网格之后进入求解环节。在COMSOL的研究节点中添加“模式分析”研究步骤然后设置“所需模式数”Desired number of modes。这里要注意并不是设多少就一定能求出多少有效的模式数是有限的。弯曲波导结构本身可以支持的模式数量受芯层尺寸和截止条件约束设置20个模式往往只有两三个是有物理意义的束缚模或漏模其余全是高阶辐射模或数值伪模式。判断模式是否有物理意义有两个依据第一是看场分布是否集中在波导芯层附近第二是看有效折射率实部是否大于包层折射率、小于芯层折射率。符合这两个条件的模式才是我们关心的模式。模式搜索基准值Search for modes around的设置也很关键。以SOI波导为例可以在neff实部1.5到3.4之间搜索。如果一开始不知道大概值可以先设一个2.0看求解结果再根据结果调整。求解器类型上用默认的“ARPACK”特征值求解器就可以。COMSOL在新版本中用SPOOLES或者MUMPS做线性求解器对于二维模式分析问题计算量不大内存足够就可以稳定跑完。3.2 有效折射率实部与虚部的读取求解完成后结果节点会自动生成有效折射率列表。每一行对应一个模式显示实部和虚部。这里有一个经验值判断如果 Im(neff) 出现正的量级比如1e-3量级甚至更大且实部明显偏离预期束缚模的范围多半不是你想要的模式如果虚部是零或者负值可能是数值噪声需要通过网格加密进一步确认。负虚部并代表增益而是相位约定或数值误差的表现之一。很多初学者看到 Im(neff) 为负数就慌了其实只要幅值小到1e-8以下在数值上就是零对应的物理图像是“该模式在这个精度下无损”可以认为趋近于纯束缚模。实部的读取比较直观。弯曲波导模式下 Re(neff) 会略低于同等截面直波导的模式折射率因为模场在弯曲外侧的偏移会让部分能量进入折射率更低的包层区域。这个“等效折射率降低”的量与实际偏差和弯曲半径有关在环形谐振器的自由谱范围设计中需要认真对待。3.3 从介质损耗到弯曲损耗有效折射率虚部到底包含了什么在仿真中虚部不仅包含弯曲辐射损耗还包含材料的本征吸收损耗。如果你在材料设置里指定了硅和二氧化硅的复折射率虚部不为零那么仿真算出的 Im(neff) 就是材料吸收和弯曲辐射的叠加值。实际操作中为了单独研究弯曲损耗我会先跑一个直波导的对照仿真同样设置下只把几何换成直的得到一个直波导虚部这个值反映材料本征损耗。再用弯曲波导的总虚部减去直波导虚部得到的才是纯粹的弯曲辐射损耗。这个方法在低损耗、大弯曲半径的场景下尤其重要因为弯曲损耗可能已经很小比如几个dB/cm甚至0.1dB/cm级别这时候材料吸收占主导不扣除的话弯曲损耗的数值会被材料损耗严重污染。3.4 参数化扫描一个批量计算半径-损耗曲线的方法实际工程中我们往往需要一条“弯曲半径——损耗”曲线而不是单点数值。在COMSOL中这可以通过参数化扫描实现。把弯曲半径 R 设为全局参数几何中两条圆的半径用参数表达式定义比如内半径 R - w/2 外半径 R w/2然后右键点击“研究”添加“参数化扫描”扫R从5微米到50微米步长可以按对数或指数取值。因为弯曲损耗随半径变化跨度可能达到几个数量级线性取点很浪费建议按R 5, 7, 10, 15, 20, 30, 50微米这样的方式取点。求解完成后在结果节点里生成有效折射率列表把数据导出成文本。用Python或者Excel处理时按第1节的公式把虚部换算成dB/cm画出曲线整条“半径-损耗”曲线就出来了。3.5 COMSOL安装环境与版本选择做这类仿真之前COMSOL软件的安装和版本选择也影响实际体验。不同版本的COMSOL比如5.6、6.1、6.2在模式分析、PML处理、求解器速度上都有差异但核心操作流程一致。老版本的“电磁波频域”接口在PML设置上更手动一些新版本体验更友好。如果你的机器内存小于16GB建议优先用二维模型三维弯曲波导仿真对内存消耗极大。另外COMSOL的“案例库”里有一个Ridge Waveguide的例子虽然是直波导但它的模式分析设置几乎可以直接套用到弯曲波导值得参考。4. 常见问题与排查技巧实录4.1 有效折射率虚部偏大怎么排查虚部偏大是最常遇到的问题。如果你仿真出的 Im(neff) 明显高于预期比如大两个数量级按以下顺序排查。第一步检查PML是否生效。最简单的方式是看一下辐射场的模分布图如果PML吸收良好模式场在到达PML之前应该已经衰减到非常小如果场在PML内部仍然有驻波状干涉条纹说明PML没起作用。这时检查PML域是否被物理场接口正确识别以及PML厚度是否足够。第二步检查边界是否太近。扇区的外边界要离芯层足够远我一般保证芯层外壁到PML内边界之间有至少3到5微米的包层空间。如果边界太近即使有PML也会人为提高辐射损耗。第三步检查网格。把芯层网格尺寸缩小一半重新求解看虚部变化。如果变化超过20%说明网格没有收敛虚部结果不可信。继续细化直到变化小于5%。4.2 有效折射率虚部为负值或零虚部出现负值或者严格为零的情况通常有两种可能。第一种这个模式确实是无损的束缚模。在弯曲半径足够大时弯曲损耗可能小到数值精度无法分辨Im(neff) 就表现为0或负的10⁻⁹量级的噪声。这属于正常情况说明这个半径下弯曲损耗已经可以忽略。第二种网格太粗数值耗散不够导致辐射损耗被数值误差掩盖了。这时加密网格虚部会逐渐稳定在一个正值上。如果加密之后仍然是0才说明模式是真正的束缚模。4.3 模式列表里找不到目标模式有时扫描设置的模式数足够多但结果列表里就是找不到实部在预期范围内的模式。这种情况通常与搜索基准值Search for modes around有关。把这个基准值改到包层折射率以下比如1.0COMSOL会从低值往上搜索这样可以捕获宽范围内的模式。但要注意这样会连带求出大量无物理意义的辐射模需要在后处理里筛选。另一种办法是先跑一个直波导模式分析得到直波导neff然后以此为基准搜索弯曲波导模式。弯曲波导模式与直波导模式的neff偏差不会太大这个策略成功率很高。4.4 弯曲损耗的规律性验证仿真做好之后不是直接把数据拿给下游去用就完事了。我建议做一次规律性验证确认结果在物理上是自洽的。一个有效的验证方法是算一条“弯曲半径——损耗”曲线然后用半对数坐标画出来。因为弯曲损耗的近似公式中含有exp(-const × R)因子所以在半对数坐标下损耗应该近似是一条单调下降的直线。如果你的曲线在这个坐标下出现非单调、抖动或台阶那大概率是数值问题。另一个验证方法是把弯曲半径取得特别大比如1毫米甚至更大算出的虚部应该收敛到直波导的虚部。这个可以作为极限情况的对照实验。4.5 环形谐振器设计中的实际经验把弯曲波导模式分析落到实际器件里时还有两个问题容易被忽略。第一个是弯曲波导的有效折射率会随半径变化所以环形谐振器不同半径下的共振波长不是简单的线性缩放。计算自由谱范围FSR时用固定有效折射率会引入误差准确做法是用弯曲模式下的neff实部数值。第二个是弯曲波导与直波导连接处的模式失配损耗。弯曲模场整体外偏移与直波导模场的重叠积分小于1会额外引入一部分过渡损耗。要减小这种损耗需要使用欧拉弯Euler bend或者偏移offset补偿这些优化都可以基于COMSOL的模式场重叠积分结果来定量设计。5. 从模式分析到器件设计的进阶应用5.1 把模式分析结果用于环形波导结构设计模式分析给出了每单位长度的损耗和有效折射率在整环结构的设计中这两项数据就可以直接纳入链路预算。环形谐振器的插入损耗和Q值估算与直波导不同。直波导可以沿着传播路径累加损耗环形结构则要考虑腔内往返损耗。每次绕行一圈光场经历的相位变化是Δφ β × 2πR k₀ × Re(neff) × 2πR如果2πR正好是波长的整数倍发生谐振。这里的Re(neff) 一定得用弯曲模式下的折射率用直波导的neff算出来的谐振波长与实际有偏差。偏差小的时候可能只有零点几个纳米但对高Q谐振器来说这个偏差已经足够致命。每圈的功率衰减因子是 exp(-α × 2πR)α由Im(neff)换算而来。把这个值代入耦合模方程就能算出谐振器的消光比、带宽和Q值。COMSOL模式分析提供的这两个数是整个器件仿真的输入基础。5.2 模式失配损耗与过渡区优化弯道与直道连接处模式场偏移会导致耦合损耗。要准确评估这个损耗可以把同一个截面分别用直波导和弯曲波导跑模式分析然后在同一个几何位置上计算两个模式的重叠积分。重叠积分定义为η |∫∫ E1 · E2*dA|² / (∫∫ |E1|²dA × ∫∫ |E2|²dA)这项计算在COMSOL中不直接提供但可以导出电场分量在MATLAB或Python中计算。实际操作起来这个值是评价S弯、欧拉弯过渡结构优劣的核心指标之一。更高效的方法是做一个参数化扫描计算不同弯曲半径下的模式场然后与直波导模式场做重叠积分可以得到“模式失配损耗——半径”的曲线用于选择过渡弯的最小半径。5.3 模式截止与大半径极限弯曲波导存在一个有趣的现象弯曲会让某些原本截止的高阶模变成一个“泄漏模”或“whispering-gallery模”从而在特定带宽内被观察到。这在高阶模环形谐振器、生物传感、轨道角动量复用等器件中有专门应用。不过这类应用对模式分析精度要求极高虚部可能小到1e-7以下。这个量级下网格收敛性非常重要建议用比默认严格很多的网格设置并且做严格的收敛性测试。匹配层厚度也要适当加厚确保残余反射不会干扰虚部的计算。5.4 向三维结构扩展时的策略建议二维模式分析解决的是“截面模式”问题但有些结构无法用截面近似。比如锥形弯曲波导宽度沿弧长渐变、弯曲布拉格光栅等需要在三维里建模仿真。三维仿真与二维模式分析的思路完全不同。如果器件沿传播方向变化缓慢可以分段截取多个截面每个截面单独做模式分析把整段视为绝热变化用耦合模理论近似。如果变化剧烈只能老老实实做三维全波仿真。这时计算资源需求会急剧上升做参数扫描之前先用二维模式分析锁定大致参数区间是比较理性的工作流。在实际操作中的几点体会把这一整套流程跑过一遍之后我自己最深的体会是弯曲波导模式分析本质上不是在算一个“模式”而是在算两个数——Re(neff) 决定相位Im(neff) 决定损耗两个数一个都不能偏。Re(neff) 偏了谐振波长的设计就是错的Im(neff) 偏了损耗预算全是空中楼阁。而这两个数恰恰都需要靠足够细致的网格、足够合理的边界条件才能拿准。COMSOL本身不会替你把关它只会忠实地解你交给它的方程你设置错了它就给你一个精确的错误结果。另外一个小建议刚开始接触弯曲波导仿真时先不要直接上复杂结构。拿一个最简单的SOI矩形波导用50微米半径跑一个模式再用100微米跑一个看虚部是不是按预期下降。观察模场是不是往外偏。等你对这些基本规律有了直觉再去做环形谐振器、做参数扫描就会顺利得多。希望这篇文章能帮你少走一些弯路。仿真这东西前期多一点耐心后面就能少一点返工。
返回列表