COMSOL铌酸锂微盘基模仿真:特征频率分析全流程与避坑指南 干集成光子学这行的早晚得在COMSOL里碰一次铌酸锂微盘。我前几天还收到师弟的截图频率算出来一大串就是不知道哪条才是基模模场看起来也说不清是真是假。铌酸锂微盘的光学模式分析说难不算难但能把网格、边界条件、材料主轴这几个点一次想明白的人确实不多。这篇我拿一个半径5 μm、厚度0.4 μm的基础微盘模型从头走一遍讲讲为什么这么设、每一步在干什么以及那些让我头秃过的坑到底怎么绕过去。无论你是刚入门的研究生还是想从波导仿真转到微腔仿真的工程师照着这个思路先甩个练手模型半天内就能出一套可信度比较高的基模结果。1. 微盘基模求解到底在求什么物理逻辑和仿真思路的选择1.1 WGM模式与“基模”这个词的两种语境铌酸锂微盘本质上是一个闭合的圆形介质谐振腔。光在微盘的边缘内侧不断发生全内反射绕着圆周一圈圈回转形成回音廊模式Whispering Gallery ModeWGM。这类模式跟条形波导里的模式不太一样它没法用简单的一个“横向基模”概括完整描述一个WGM至少需要三个数角向指数m代表沿圆周一圈有多少个波长的相位变化径向指数p代表沿半径方向的驻波节点数轴向指数q代表沿厚度方向的节点数。这里有个容易让人一开始就懵的地方波导语境里的“基模”通常指横向电场节点数最少的模式而微盘里说的“基模”在不同论文里指向并不完全一致。有人把m最小、能稳定导行的模式叫基模也有人把径向p等于1的模式叫基模。我的建议是新手先别在这个命名上纠结直接在COMSOL特征频率结果里把三个指数认出来比嘴上争“哪个是基模”实用得多。1.2 特征频率研究和模式分析研究怎么选COMSOL波光学模块里跟模式相关的分析有两类常见套路模式分析Mode Analysis和特征频率Eigenfrequency。模式分析适合波导这类沿传播方向结构不变的场景比如条形波导、脊波导你在某个固定频率下求解COMSOL返回的是模式的复有效折射率和横向模场。但微盘不一样光在腔里没有严格的直角坐标“传播方向”虽然它能等效成绕着圆周走但直接套模式分析里纵向传播常数的概念会很别扭新手经常在有效折射率搜索基准这里翻车。特征频率研究则更贴近微腔的物理本质你要找的是这个闭合结构在哪些频率上能形成自洽驻波。特征频率的实部对应谐振频率虚部对应损耗Q值也能顺带提出来。所以我这篇的主导思路就是特征频率。如果你确实想用模式分析做微盘通常需要把圆周展开成等效直波导来处理那是另一个教学套路对入门选手不如特征频率直观。1.3 为什么先用二维轴对称模型加方位角模式数微盘几何本身是绕z轴旋转对称的圆柱或类圆台这种情况用二维轴对称模型是最划算的。COMSOL的二维轴对称电磁波接口可以指定方位角模式数m一次只算一个角向阶数自由度通常只有几十万普通笔记本十几分钟就能算完一个m。相比之下二维圆盘模型虽然更快但丢掉了厚度方向和上下包层的区别对铌酸锂薄膜微盘这种强波导结构误差偏大。三维模型最完整但自由度动辄几百万调起参来痛苦。二维轴对称恰好把几何简化、物理完整度和计算成本平衡得非常好非常适合作为第一个练手模型。等你把m0、1、2、3都扫过一遍对模式空间有了感觉再考虑升级三维也不迟。2. 搭一个不翻车的铌酸锂微盘模型几何与材料参数细节2.1 几何绘制和计算域结构打开COMSOL空间维度选二维轴对称物理场用波光学模块下的电磁波、频域接口。模型树会出现一个r-z平面的计算域。微盘在r-z平面上就是一个宽度为半径R、高度为厚度T的矩形比如R5 μm、T0.4 μm从r0延伸到r5 μmz方向从-0.2 μm到0.2 μm。外面还得包一层介质域用来代表空气或上包层我习惯把包层半径设到12 μm左右上下高度也各留出几微米。这个包层的尺寸不是随便给的后面讲边界反射时你会明白包层薄了会让散射边界条件“失效”。外边界不要用默认的完美电导体那是金属腔的边界条件用在介质微盘上会直接把模式憋死。外边界改成散射边界条件SBC这是练手模型里最合理的截断方式。如果你做的是真实LNOI微盘通常下面还有一层SiO2衬底上方是空气。练手阶段可以全部用空气包层代替结果中模场分布的趋势仍然有参考价值。等你想算和实际测试对标的Q值时再把衬底结构加回来。2.2 各向异性折射率张量与晶体主轴问题铌酸锂是单轴负晶体这是整个模型里最不能省的一步。它有两个不同的折射率o光折射率no和e光折射率ne1550 nm附近一般取no≈2.21、ne≈2.14具体数值不同工艺和掺杂会有偏差最好用Sellmeier公式按你的目标波长算。很多人图省事材料里直接填一个各向同性的2.2这种模型算TE/TM模式一定错因为双折射带来的模式分裂被抹掉了。在COMSOL里新建一个空材料自己定义折射率。Z-cut薄膜的光轴垂直微盘表面也就是沿z方向折射率张量直接写成对角形式diag(no, no, ne)即可练习模型用Z-cut最不容易出错。如果换成X-cut薄膜光轴躺在微盘平面内张量就不能简单写对角了需要先在材料节点下加一个旋转坐标系再在折射率设置里指向那个旋转坐标系。这里有个笨办法但很管用先在纸上把晶轴和微盘几何轴的方向画一遍确认旋转轴和旋转角再往软件里填能省掉至少两个小时的返工。2.3 散射边界条件与PML的取舍很多教程喜欢一上来就建议加完美匹配层PML但基础模型里SBC完全够用。SBC虽然不能做到零反射但对正入射波吸收效果很好只要你把包层包裹到一到两个波长以上。PML不是不能用只是二维轴对称模型里如果PML和SBC叠加设置边界上容易出现双重吸收层网格量暴涨算起来反而慢。判断包层够不够的办法也很简单把包层半径从6 μm扫到18 μm看目标模式的频率是否稳定如果频率漂移明显就是边界在“反射”光需要加宽包层或考虑PML。练手模型里我通常直接用12 μm包层半径配合SBC计算量适中结果也稳定。边界条件这件事我一直觉得它不是模型里的装饰品而是决定你算出的Q是真值还是“边界功劳”的关键开关。3. 特征频率求解的实操细节频率扫描、网格与模式识别3.1 目标频率和方位角模式数的设置特征频率研究的设置里有一个“搜索基准”选项强烈建议改成用户定义填一个目标频率附近的数值。以1550 nm通信波长为例目标频率约等于光速除以波长也就是193.4 THz左右。让求解器从零开始在全频谱里找模式既慢又会塞给你一大堆高频伪模纯属自己折磨自己。需要的模式数可以先设8个让COMSOL在目标频率附近返回较全的候选列表。二维轴对称接口里会有方位角模式数m的设置项如果版本里找不到这个名字注意看有没有“面外波数”一类参数本质是表达光沿圆周方向的相位变化。基础练习时把m设为1、2、3、4分别跑一遍特征频率m0对应的是径向呼吸模不是典型的WGM可以后面再看。3.2 网格尺度怎么设定才算够细网格是光学仿真最容易头秃的地方几乎百分之八十的“算不出来”最后都指向网格问题。标准做法是用材料中波长来控制最大单元尺寸微盘内部的网格至少要λ/(n×6)1550 nm除以2.2再除以6大约是117 nm工程上直接取0.1 μm作为最大单元尺寸完全够用。包层区域的折射率接近1波长更大网格可以放宽到0.3 μm。记得不要依赖“物理控制网格”里的默认极细化那是通用设置未必匹配你的频率和材料。微盘上下表面附近的电场变化最剧烈建议在盘面的上下边界加几层边界层网格厚度取0.02 μm左右层数3到5层。这样做的好处是后面画r-z截面模场时轴向驻波图案会干净很多不会出现锯齿状的伪振荡。网格划完先看一眼自由度数量二维轴对称模型一般几十万自由度是正常区间如果直接飙到几百万检查一下是不是包层网格被不自觉地加密了。3.3 从一堆频率里认出基模求解完成后后处理里画电场模分布。基础模型里最典型的WGM特征是在微盘边缘内侧形成一条亮带光能量贴着盘边缘走。先按频率从低到高排序逐条选中看电场分布。符合“能量主要集中在微盘内部”的才有资格进入候选池。判断径向基模的方法是在r-z截面里沿半径方向画一条截线看电场包络的节点数没有节点或者只有一个弱节点通常就是p1或p2的径向基模。判断轴向模式则看沿z方向的电场翻转次数基础模型厚度只有0.4 μmq一般就是0或者1。判断角向阶数m靠二维轴对称设置里的参数就够你指定了m2出来的就是m2角向模不需要肉眼去数圆周亮斑。真正需要花时间的是区分几个相邻径向模式这时截线工具是你的好帮手。4. 那些最容易让人头秃的坑从假模到结果验证4.1 假模、泄漏模与边界伪影怎么识别特征频率会返回一堆模式里面混着大量不是微盘模式的数值解。最常见的是边界伪影电场最大值贴着散射边界能量分布在计算域外围这种模式对包层尺寸极其敏感换个边界宽度它就跑了。另一种是高频伪模频率比目标高出一大截模场呈细碎网格状而不是平滑亮带纯粹是离散网格带来的非物理解。识别假模我有一个习惯把模式列表里频率明显偏离目标搜索区间的先剔除然后对剩下的每个模式做一次电场模绘图。如果看到锯齿、斑点、或者能量聚集在几何尖角基本可以直接标记为数值解。想进一步确认可以局部加密网格再看这条频率有没有明显移动真模式对网格已经收敛假模式往往一加密就消失或跳到别的位置。泄漏模是另一个常见现象电场包络沿径向不是衰减到零而是持续向外流通常意味着材料的导波条件不满足比如折射率填错导致光在包层方向“漏”得太厉害。基础模型里如果看到这种模式先查你填的no和ne是不是对调了位置再查旋转坐标系有没有转错方向。4.2 边界反射对频率和Q值的污染SBC不是完美吸收边界对掠射角很大的波反射依然不可忽略。微盘WGM有一个特点模式阶数越高光越贴近边缘走波矢和边界的夹角越小SBC越难吸干净。包层尺寸不够时边界反射回来的波会和微盘模式发生干涉表现成频率劈裂甚至出现两个靠得很近的“伪简并”模式Q值也跟着被拉低。我排查这种情况的做法很粗暴把包层半径从6 μm、9 μm、12 μm、18 μm各跑一遍同样的m看目标特征频率的变化。频率相对变化在1e-4量级以内说明边界影响已经压到可接受范围超过这个量级就得加宽包层或者上PML。这里提醒一句加宽包层后网格数会上升每次跑之前先检查最大单元尺寸别让包层的网格拖慢整个求解。4.3 坐标系错位对模式偏振和频率顺序的影响铌酸锂双折射意味着TE和TM模式在相同几何下会有几十GHz的频率差。坐标系一旦设错软件不会报错但会把TE/TM模式的顺序悄悄弄反。你可能辛辛苦苦优化出来的“基模”实际上是偏振搞反了的高阶模式这样的结果放到后续耦合设计里偏差会非常明显。保险措施是建模完成后先在后处理里打印一下材料节点中的折射率张量确认n_r、n_z分别对应no还是ne。Z-cut练手模型里径向模场对应o光折射率轴向对应e光折射率X-cut模型则要看光轴在盘面内的具体方向。坐标系这个坑从纸面上就值得认真画图不要觉得软件里转几下就行我见过太多人栽在这里。4.4 收敛性验证必须做三套网格做网格收敛测试是排查一切可疑模式的最有效手段。同一模型下用基础网格、加密网格、更细网格各跑一遍同一条m记录特征频率实部和虚部。经验上实部频率相对变化小于1e-5虚部变化小于2%网格就算合格了。数值解那类模式在加密后通常会面目全非。这一步看起来多花了时间实则帮你省掉了后续所有基于错误模式展开的折腾。不要一拿到模式就急着算耦合、算调谐先花十分钟验证一下网格收敛性。仿真里头宁可前面多算三个网格不要在错误结果上盖三层楼。5. 从基础模型到工程化Q值提取、参数扫描和效率提升5.1 Q值提取和模场归一化特征频率的复数结果里实部是谐振频率虚部是衰减。Q值可以用Q Re(f) / |2 × Im(f)|来估算。要注意材料损耗设为零时算出来的Q基本都是百万量级那是辐射Q和边界条件Q的混合结果不代表真实器件Q。要看实际Q至少要把铌酸锂消光系数或等效损耗正切加进去再考虑加工粗糙度引入的散射损耗。模场归一化方面二维轴对称模型里面积分自带r的权重和三维体积分一致。需要比较不同m的模体积时用COMSOL里的积分算子把电场模平方在微盘区域内积分即可。有了这几个量后面做微盘与直波导的耦合设计至少能先判断模式匹配程度。5.2 参数扫描与MATLAB联动基础模型跑通后最常用的需求是扫微盘半径R看共振波长怎么移动。直接在COMSOL的研究里加参数化扫描也可以但有时候你想在整个参数空间循环里做判断比如记录每条模式的频率和Q导出CSV这种活配合Livelink for MATLAB会更顺手。大体脚本思路是这样的% 大致的脚本结构具体接口名以本机安装的COMSOL版本帮助文档为准 import com.comsol.model.* import com.comsol.model.util.* mphstart model ModelUtil.create(Model); model.param().set(R, 5[um]); % 初始半径 Rvals 4e-6:0.5e-6:8e-6; freqList zeros(length(Rvals), 8); for k 1:length(Rvals) model.param().set(R, [num2str(Rvals(k)), [m]]); model.sol(sol1).runAll(); % 这里用数值探针取出特征频率列表 % freqList(k, :) ... end我更推荐把后处理探针表达式也写进循环里频率、Q、模场积分一次导出。手动导出几十个模型的频率表不是不能做但太消磨耐心。5.3 什么时候该升级到全三维模型二维轴对称模型有个前提结构必须是绕z轴严格旋转对称的。如果你后面的设计要加耦合直波导、微盘边缘有刻蚀倾角、或者讨论热光调谐时的不对称温度分布二维轴对称就撑不住了必须转三维。三维模型的内存和时间成本高一个数量级所以不要一上来就开三维。一个务实的顺序是先用二维轴对称把模式频率和大致模场摸清楚再把二维结果里的目标频率作为三维特征频率搜索的基准三维模型先用较粗网格验证模式能否对上然后再逐步开加密和PML。这个做法能大幅减少三维模型反复调参带来的无效等待。5.4 Linux环境下批量计算和跨版本注意事项跑大批参数扫描时很多人会把任务丢到Linux服务器上。COMSOL在Linux下可以用命令行无界面批处理典型命令类似comsol batch -inputfile ln_microdisk.mph -study std1 -outputfile ln_microdisk_result.mph -batchfile solve.logbatch模式一样会占用COMSOL许可证多进程并发前先确认你们的授权类型允许开几个solver。跨版本方面我也吃过亏COMSOL 6.4对网格剖分算法和默认求解器设置做了一些调整老版本模型直接打开后材料设置、网格、求解器都可能被替换成新默认值结果跟原来对不上。升级版本后第一件事是把一个已知结果的基准模型重新跑一遍对比频率和Q确认没有漂移再继续往下做。最后聊点个人习惯。每跑完一个微盘模型我会把m1、2、3、4的基模频率整理成一张表按角向阶数排列看看频率间隔是否大致平滑哪一条突然离群多半是网格或者边界出了状况。出报告的时候把径向截线的包络图、轴向截面图连同模场图一起放上比只贴一张漂亮的环形亮带有力得多。这篇的基础模型练法说到底就是把几个最容易糊弄过去的环节先钉死材料主轴、包层边界、网格收敛。这三件事想明白了后面再复杂的耦合结构也只是在这个地基上加砖。希望这些踩坑记录能帮你省下一些无谓的深夜调试。