
拿COMSOL做光子器件仿真的人多半迟早会撞上PT对称这个名词。PT对称系统宇称-时间对称系统这几年从量子力学原论文一路火到集成光子学波导、微盘、光纤这些体系里都能找到它的影子增益和损耗恰好互补系统依然能保持实数本征谱直到某个特殊参数点突然“破缺”。我在COMSOL里把这三类体系各做了一轮系统仿真之后最大的感慨是这个题目听起来非常理论落到软件里其实就是一件事——把增益和损耗做成对称分布的复折射率然后用本征值求解器看谱怎么演化。这篇文章是我个人仿真工作的综合复盘适合已经会用COMSOL基础操作、想开始做非厄米光子学研究的人里面没有太多高深数学全是能直接参考的建模步骤和踩坑记录。1. 先把物理说清楚PT对称到底在解什么方程1.1 从哈密顿量到折射率一个“实部对称、虚部反对称”的故事PT对称起源于量子力学里一个反直觉的发现哈密顿量不满足厄米性照样可以拥有实数能谱。条件是它满足宇称-时间联合对称即 (H(PT)PTH) 不变。对做光子学的人来说这个抽象条件有一个极其漂亮的等价表达式如果系统满足PT对称那么等效折射率分布必须满足[ n(x)n^{*}(-x) ]也就是说折射率实部在空间上是偶函数虚部是奇函数。翻译成人话就是结构关于某条轴线镜像对称轴线一侧有增益另一侧有损耗且增益和损耗的强度完全一致。正是这个“实偶虚奇”的条件让PT对称从量子力学论文变成了可以靠材料工程实现的电磁问题。我第一次看这个表达式时觉得很简单真正处理模型才发现它暗含三层约束第一增益区和损耗区必须等体积、等强度否则对称性破缺的位置会被移动第二折射率变化不能太大因为复折射率平方之后得到的相对介电常数要满足物理可实现性第三几何轴和材料虚部分布轴必须重叠哪怕错开一点本征值谱就不再是PT对称该有的样子。所以建模之前先用尺子在几何上确认这一条就行了。1.2 光学里的“增益损耗”怎么等效出PT对称光学系统里实现PT对称靠的是复折射率。电磁波在介质中传播时折射率虚部为正代表损耗虚部为负代表增益具体符号取决于使用的时谐约定后面会专门讲。增益可以用半导体光放大器、掺铒光纤、铌酸锂波导上的泵浦区来实现损耗则来自材料本征吸收或人为加载的衰减区。把这些工程手段抽象成仿真参数时本质上就是在折射率分布里加一个“虚数台阶”例如波导左侧设 (nn_ri\kappa)右侧设 (nn_r-i\kappa)。光从这套结构里走过一个方向经历的损耗与另一个方向经历的增益在数学上完全互补于是系统整体保持实数本征谱。用一句话概括PT对称不是某种新平台而是把大家已经用了几十年的增益介质和衰减介质按照特定的空间对称性重新排布。COMSOL里的电磁波频域仿真并不需要任何特殊物理场它只是把折射率设成复数然后解一个本征值问题而已。这正是这个课题适合在COMSOL里做的原因。1.3 为什么选COMSOL而不是FDTD或专用模式求解器很多做光子学的朋友遇到PT对称第一反应是用Lumerical MODE或者FDTD Solutions。这两个工具当然能做模式分析我的习惯性答案是取决于你想回答什么问题。如果只想要单个波导的色散曲线MODE非常顺手但如果要做带增益和损耗的高Q腔或者后续想把热效应、应力、电注入一起耦合进来COMSOL的多物理场优势就体现出来了。COMSOL做PT对称的另一个关键优势是特征频率eigenfrequency求解器。它可以返回复数本征频率虚部直接告诉你是增长还是衰减而且支持参数扫描可以方便地扫增益/损耗系数画出本征值在复数平面上的轨迹直观看到奇异点。FDTD做本征提取相对绕需要设置宽频脉冲再滤波对角化远不如有限元本征求解直接。当然代价也是存在的COMSOL默认的有限元网格和求解器如果不仔细调容易吐出大量数值伪模式特征值搜索区间设置不好就会把一大堆泄漏模式塞给你。这些东西只能靠实操经验积累后面我会逐条展开。1.4 建模前必须定好的三个约定动手之前我强烈建议先想清楚三个约定否则后面会花大量时间排错。第一时谐因子方向。COMSOL不同模块对 (\exp(i\omega t)) 还是 (\exp(-i\omega t)) 的约定可能不一致这直接决定复折射率虚部为正数时表达的是增益还是损耗。不要一上来就信任何教程的符号约定包括我现在说的。最稳妥的方法是先建一根均匀增益平板来校准看平面波传播方向上场是增长还是衰减从而确认你输入的材料参数到底代表什么。这一步十五分钟就能做完却能省下你一整天的排查时间。第二几何对称轴。PT对称要求折射率虚部分布以某个轴为奇对称增益区和损耗区的位置必须精确卡在轴的两侧。建议用全局参数定义每一个关键偏移量比如增益区左边界和损耗区右边界都由同一个参考坐标计算避免手工移动后破坏对称性。第三单位统一。COMSOL默认国际单位波长、半径、间隙这些量分别在微米和纳米尺度时很容易混用。我习惯把所有几何尺寸定义成“千倍纳米”比如450nm写为0.45um全部统一到微米材料折射率是纯数介电常数也不带单位这样少很多低级错误。这三个约定我在三类体系里都踩过坑尤其是第一个几乎每次新建模型都重新确认一遍因为换了物理场接口或版本后很可能悄悄变化。2. COMSOL搭建PT对称模型的大框架几何、材料与求解设置2.1 三种体系的几何差异与统一思路波导、微盘、光纤虽然是三种不同体系但在COMSOL里的建模流程高度相似都是二维横截面或二维平面结构都是电磁波频域求解区别主要在几何与材料分布。波导体系我通常用“双脊波导”两条平行矩形波导宽度450nm、高度220nm间隙150nm材料用氮化硅折射率实部约2.0。这对应硅光工艺里的常用尺寸也和1550nm通信波长对得上。两条波导一条设为增益区、一条设为损耗区中间留出耦合间隙。微盘体系用二维平面模型半径3µm的圆盘两个中间间隙100—200nm圆盘厚度在二维模型里通过“有效厚度”和面外折射率体现。微盘依靠回音廊模式WGM把光约束在边缘所以网格必须在盘边缘加密几何上还要画一圈完美的圆形边界否则模式会变丑。光纤体系则是经典的二维横截面双芯光纤每个芯直径4µm芯间距12µm包层半径40µm。芯折射率1.46包层1.445增益损耗虚部量级设在 (10^{-5}) 左右因为光纤弱导折射率差本来就小虚部不能给太猛。三者共同点是计算域都要包一层完美匹配层PML来吸收向外辐射的能量这样本征频率的虚部才能真正反映增益/损耗而不是数值泄漏。2.2 复折射率的符号约定第一个大坑COMSOL材料设置里可以直接填写折射率实部和虚部n和k。菜单上写得很清楚k为正通常代表吸收损耗。但PT对称需要“负的损耗”也就是增益。这里有个关键坑不能直接把k填成负数然后期待软件自动换算成介电常数。COMSOL内部要通过 ( \varepsilon_r (ni\kappa)^2 ) 换算相对介电常数其中正负号直接和时谐约定绑定。如果你在材料里输入 (n2.0, \kappa0.01)平面波传播后场到底是增长还是衰减取决于时谐因子约定。所以我在2.1节强调的“单平板校准法”到了这里就成了必需品。实操上我喜欢在“全局定义”里建一个分段函数把复折射率分布写成坐标的函数。比如(x0) 区域(n_r2.0, n_i\gamma)(x0) 区域(n_r2.0, n_i-\gamma)然后建立材料把相对介电常数直接用这个函数设置。这样改参数扫描时只需要扫描一个全局变量 (\gamma)方便快捷。增益和损耗区的过渡边界处函数要加一小段平滑过渡避免阶跃折射率让网格和求解器崩溃。2.3 边界条件、网格与本征值求解设置边界条件方面最简单的是散射边界条件SBC但精度一般。做PT对称本征模式分析时我更推荐PML。PML设置要点厚度至少半个波长推荐一个波长量级PML内部的网格要映射成若干层均匀层我用3—5层PML距离模式区域的距离也要留够尤其是微盘和光纤这类弱约束模式至少要留一个波长。网格策略上介质中波长按 (\lambda\lambda_0/n_{eff}) 计算最大单元尺寸控制在 (\lambda/6) 到 (\lambda/8)。波导和光纤是矩形或圆形区域用自由三角网格就行微盘边缘再加边界层用来捕获回音廊模式的表面约束。求解器设置是本征值问题的核心。COMSOL的特征频率研究节点里需要指定搜索区域。我的做法是先预估模式频率比如1550nm对应约193.5THz然后设定搜索中心在193.5THz、实部范围上下各10THz、虚部范围先给一个小窗口比如±1GHz量级。虚部范围不要给太大否则会搜到大量PML泄漏模式。扫描增益参数时以“前一个解”作为初值可以让模式轨道连续演化避免求解器跳到另一支模式。2.4 参数扫描的正确姿势参数扫描最忌讳的事情是直接从无增益状态蹦到高增益状态。PT对称的奇异点很尖锐参数步长太大会导致求解器跳过合并点你根本看不到本征值轨道的交叉行为。我的推荐流程是三步。第一步固定 (\gamma0)算出无增益/损耗时的超模确认基模和二阶模的场分布与频率差异。第二步用小步长扫描比如 (\gamma\in[0, 0.05])、步长0.002确保每个模式都能被连续追踪。第三步扫描结束后用“合并解”功能把本征值整理成表格再导入绘图画出实部和虚部分别随 (\gamma) 变化的曲线。另外COMSOL参数扫描默认会重新求解每个参数点。如果模型自由度较大可以开启“使用上一解作为初始猜测”选项并在扫描前先把解的排序方式设为“最近本征值”这样可以明显减少模式跳变。3. 波导体系双脊波导里的本征谱与奇异点3.1 双波导耦合与PT阈值双脊波导是理解PT对称最简单的载体。两根波导分别承载一个模式它们之间存在横向耦合如果两根波导满足PT对称条件即实部折射率相同、虚部折射率相反那么系统的超模传播常数会呈现典型PT相变行为。耦合模理论告诉我们系统行为由耦合系数 (\kappa) 和增益/损耗参数 (\gamma) 的比值决定。当 (\gamma\kappa) 时两个超模的传播常数实部不同、虚部为零系统处于PT对称未破缺相当 (\gamma\kappa) 时两个超模的实部合并、虚部劈裂一个超模指数增长、一个指数衰减系统进入PT破缺相。(\gamma\kappa) 这个点就是奇异点。奇异点之所以重要是因为它附近的本征值对参数扰动异常敏感很多有趣的应用——高灵敏度传感、单向无反射、模式切换——都设计在这个点附近工作。COMSOL仿真要做的就是用特征频率求解器把这个相变过程完整复现出来。3.2 参数扫描提取本征模式的演化实际建模时我按第2章的框架搭好双脊波导模型。两条波导的宽度、高度完全一致材料实部折射率相同全局参数 (\gamma) 控制折射率虚部左波导 (\gamma)右波导 (-\gamma)。扫描开始时(\gamma0)两个超模分别是对称模和反对称模本征频率实部相差约几个GHz到几十GHz取决于耦合强度。随着 (\gamma) 增大你会发现两个模式的实部逐渐靠近虚部始终接近0。当 (\gamma) 越过耦合系数对应的阈值实部不再继续靠近而是保持合并虚部开始劈裂——一个模式虚部为正衰减另一个为负增长。把这个过程画成图就是两条实部轨道先靠近后合并、两条虚部轨道从零出发向相反方向劈开。看到这个图的时候我确认自己的模型已经复现出PT对称的核心行为。这里有个容易搞混的点参数扫描里 (\gamma) 同时给增益和损耗区加虚部总的结构仍然PT对称。如果你只给一侧加增益另一侧不加损耗得到的只是一个普通的非对称增益波导没有PT相变。这个区别一定要记住。3.3 怎么确认你算出来的是真物理而不是数值做波导PT仿真最容易碰到三类假象。第一特征频率列表里出现一堆频率很低、场分布散落的模式那是PML或计算域边缘的数值泄漏模式不是波导模式。第二增益区的电场看起来“增长”得夸张往往是增益参数设置过大导致材料进入非物理解。第三模式序号不稳定参数扫描时两个模式突然互换这通常是搜索设置问题。我验证结果的标准流程是先看场分布确认模式能量集中在波导芯内然后对比 (\gamma0) 时的频率分裂值与耦合模理论估算最后把实部、虚部的轨道画出来看是否满足PT相变的基本形态。如果这些检查都通过才认为模型可靠。另外提醒一点波导PT系统在奇异点附近的透射谱会出现非对称甚至单向传输现象但这些已经不是本征值分析能直接给出的需要用完整的散射矩阵仿真。我建议先把本征谱跑清楚再去扫透射。4. 微盘体系回音廊模式里的PT增强4.1 双微盘模型的搭建细节微盘PT对称系统的典型结构是两个半径相同的微盘中间留一个窄间隙。一个微盘带增益一个带损耗PT对称轴在间隙中点。这种结构利用的是回音廊模式光在盘内绕行两个盘之间通过倏逝波耦合。建模时要额外注意两点。第一圆盘边界曲率大自由网格默认可能太粗我会在边界上加边界层确保盘内靠近边界处有足够的网格分辨率。第二回音廊模式在径向有振荡结构盘内径向网格也需要加密尤其在高阶WGM下径向节数增加网格不够的话特征频率会偏高。间隙大小的作用很微妙间隙决定耦合系数 (\kappa)进而决定PT阈值。间隙越小耦合越强阈值(\gamma_{th})越高间隙越大耦合越弱很小的增益就能让系统进入PT破缺相。因此我可以把间隙当作调节器想要观察完整的“未破缺—奇异点—破缺”演化就选一个合适的间隙让阈值落在参数扫描的中间位置。我常用的起始参数是半径3µm、间隙120nm、盘厚220nm、材料折射率实部2.0。这个结构在1550nm附近有复数个WGM支持耦合强度适中。4.2 模式识别与Q值提取微盘模式比波导模式难认因为WGM有角向阶数、径向阶数的双重区分。我习惯的做法是(\gamma0) 时先算出所有模式按频率排序再逐个查看电场模分布。角向阶数对应场沿周向波动的次数径向阶数对应场沿径向振荡的节点数。在PT对称的双盘结构里还要区分两个盘各自的WGM以及它们耦合成的对称、反对称超模。Q值提取是本征值分析里最有成就感的一步。COMSOL返回复频率 (ff_ri f_i)模式Q值可以用 (Qf_r/(2|f_i|)) 计算。无增益损耗时微盘Q值主要受PML和网格限制通常会比你期望的低很多——这是数值原因不是物理原因。加PT对称后(\gamma) 接近阈值时其中一个超模的 (|f_i|) 会变小Q值升高。这个现象在实际器件里对应着“增益补偿损耗”到“奇异点增强”的过渡。我个人会做一个额外检查把虚部设定为0重新算一遍该模式的Q值作为参考Q0。如果PT模型中Q值低于参考Q0的某个比例就要怀疑网格或PML设置是否到位。4.3 微盘体系特有的坑与排查微盘仿真最让人头大的问题是伪模式。COMSOL会把PML里的吸收模式、计算域角落的模式都当成合法特征值返回。我的经验是伪模式的场分布要么集中在PML里、要么整体发散正则模的场则严格局域在双盘内部。识别时不要只看频率要强制看场图或者做一个“参与因子”判断。另一个坑是WGM简并。圆盘的角向简并顺时针和逆时针两个传播方向在理想圆对称下是简并的一旦引入PT对称的增益/损耗分布简并会发生一种特殊的劈裂。这个劈裂是有物理意义的我建议保留它不要把所有模式当作重复简并合并掉。最后微盘增益设置要克制。增益虚部太大不仅会产生非物理的自激还会让收敛困难。我通常从 (\gamma0.0001) 级别开始扫描边界时刻微盘Q值很高一点点增益就会让本征值虚部有明显变化所以步长要比波导更小。5. 光纤体系弱导双芯光纤的模式调控5.1 光纤PT模型怎么搭光纤里的PT对称实现方式很多我选最典型的双芯光纤一根纤芯掺铒提供增益另一根纤芯保持损耗两根纤芯在横截面上关于连线中点对称。这个结构可以用COMSOL的二维横截面建模几何就是两个圆形高折射率区嵌在低折射率包层里。光纤几何参数我习惯设为芯半径2µm、芯间距12µm、包层半径40µm、芯折射率1.46、包层折射率1.445。弱导光纤折射率差很小这对仿真有直接影响模式约束弱、倏逝场延伸远所以包层不能太小PML更要往外放。增益虚部的量级和波导完全不同。波导里 (\gamma) 可以给到 (10^{-2}) 级别光纤里因为折射率差只有 (0.015)虚部我给到 (10^{-5}) 到 (10^{-4}) 级别就够了。(\gamma) 太大会直接改变有效折射率的实部感知导致模式失配反而得不到干净的PT相变。5.2 从本征频率到传播常数的转变光纤横截面模式分析里COMSOL默认还是解特征频率或者有效折射率。对于更长程的传播问题我更关心传播常数 (\beta) 或有效折射率 (n_{eff}\beta/k_0)。在COMSOL中可以切换到“模式分析”研究类型来直接求解本征传播常数。PT对称下传播常数是复数实部决定相位变化虚部决定每单位长度的增益或损耗。双芯PT光纤的超模行为同样遵循耦合模理论。增益/损耗参数从小到大两个超模的有效折射率实部先分离后合并虚部从零劈裂出正负两支。这个结果在光纤通信里有一个实用含义可以利用PT相变来选模——让目标模式落在增益支、让串扰模式落在损耗支。我在光纤案例中还做过一个对照实验保持其他参数不变把两根纤芯的间距增大一倍。耦合系数变小PT阈值也变小结果是在更小的增益水平下就能进入PT破缺相。这个趋势和耦合模理论完全吻合也算是对模型正确性的一个交叉验证。5.3 光纤场景的注意点光纤仿真容易犯的错是包层尺寸不够。因为弱导光纤模式延伸到包层深处如果包层直径太小模式就会“撞”到PML上导致本征值虚部被污染。我建议包层半径为芯间距的3倍以上PML厚度再留一个工作波长的量级。另一个注意点是网格。光纤芯和包层的折射率差很小模式对折射率分布非常敏感网格太粗会让有效折射率偏大。我在双芯热点区域加密到 (\lambda/10)其他区域可以用 (\lambda/6)能显著提高本征值精度。最后是搜索模式选择。光纤支持多个模式高阶模和PML伪模式的频率可能重叠。我建议先算一个“无包层”的理想参考模型把模式顺序摸清楚再换成实际包层模型做PT扫描这样模式辨识会省力很多。6. 常见问题与调试速查6.1 症状、原因与解决办法速查表症状可能原因处理办法增益区电场反而衰减复折射率虚部符号和时谐约定冲突用单根增益平板校准符号或直接互换增益/损耗区参数本征频率列表全是高频杂波搜索范围太宽包含PML模式把实部搜索范围缩到目标频率附近虚部范围缩小Q值远低于理论预期PML太薄、距离模式区太近、网格过粗加厚PML、外移边界、局部加密模式区域参数扫描时模式轨道跳变模式排序不稳定求解器跳支开启“使用前一个解作为初值”提高参数扫掠分辨率实部或虚部曲线不光滑参数阶跃变化导致奇异点附近求解困难加平滑过渡、减小步长必要时用辅助参数扫描增益参数稍大就不收敛材料虚部过大引发非物理增长降低增益量级参考光纤/波导的实际增益系数范围这张表我每次换体系建模都要回头翻一遍。尤其是“增益符号反了”这个问题它不会直接报错只会让结果看起来完全不对特别隐蔽。6.2 一套通用调试步骤如果模型算出来的谱完全不能看我建议不要急着调求解器而是按下面六步走一遍。第一步重新构建一个最简单的无增益模型只算基模确认频率、场分布、Q值都合理。第二步用单根增益介质平板验证增益符号是否正确这一步十五分钟就能完成。第三步把原模型中一侧设为增益、一侧设为无损而不是损耗看场是否出现非对称增长帮助区分“PT对称”和“普通增益”的区别。第四步把增益系数降到最小扫描范围拉大找到相变点的大致位置。第五步围绕相变点做精细扫描用小步长揭开奇异点附近的结构。第六步检查所有模式场图剔除PML伪模式再做后处理。这套流程看起来啰嗦但能解决九成以上的仿真异常。我有一次光纤仿真怎么调都不对最后发现问题就是包层半径设小了20%PML几乎贴到了光纤芯上。6.3 计算效率与资源控制的个人经验PT对称仿真本身计算量不大真正吃资源的是参数扫描。三个体系里光纤模型自由度最大因为包层面积大、网格要加密微盘次之波导最省。我在日常建模中控制计算量的技巧有几个能建2D就不建3DPT对称的核心现象在二维模型里全部能复现光线类问题用对称性把计算域减半但要注意PT对称的增益/损耗分布本身是奇对称的直接减半后要正确设置边界条件参数扫描时先粗扫找相变点再细扫只看奇异点附近一小段。还有人问我要不要用更快的求解器。我的经验是默认的特征频率求解器配上PARDISO直接求解器对这类二维问题已经足够。只有三维模型或超大规模网格时才需要上升到特征值迭代求解器那时候调试难度更大不太适合作为入门方案。我自己做这一轮综合研究时最深的体会是PT对称看起来高大上但仿真的底层逻辑和以前算普通模式没有任何区别难的是把符号约定、参数扫描和模式识别三件事做扎实。如果你正在卡某个环节建议先退回到最简单的无增益模型把“正常的模式”长什么样刻进脑子里再回头处理增益和损耗。等你在后处理图上清晰看到本征值轨道的交汇与劈裂那种确认感会让你觉得前面排的所有坑都值得。这套方法后续还能自然扩展到微盘混沌动力学、散射矩阵不对称性、以及更复杂的多物理场耦合希望这篇复盘能帮你少走几步弯路。