入行光学仿真这几年,被问得最多的一个问题就是:平面手性到底能不能直接拿COMSOL算?很多人一上来就建了个开口环,加两个圆偏振入射端口,高高兴兴跑完发现LCP和RCP的透射谱几乎完全重合,然后陷入自我怀疑。别急着怀疑人生,这个结果恰恰是对的物理。做平面手性仿真,最大的门槛不是软件操作,而是先想清楚"你究竟在算什么、对称性给了你什么限制"。
这篇文章适合三类人:一是刚接触手性光学、想用COMSOL复现经典开口环响应的研究生;二是在做超表面设计、需要提前筛选结构参数的工程师;三是被斜入射CD测量折磨、想让仿真帮忙解释实验曲线的实验党。我会从物理图像、建模决策、COMSOL实操、结果提取、踩坑排查一路讲下来,最后给一点拓展方向。中间涉及的具体参数和操作我都会写清楚,你可以直接拿过去改。
1. 平面手性到底"手"在哪:开口环、螺旋与圆二色性的物理图像
1.1 从三维手性讲起,为什么平面结构也能谈手性
手性这个说法大多数人先想到的是分子:左手分子和右手分子互为镜像,但不能通过旋转和平移重合。在光学里,手性结构最著名的响应就是对左旋圆偏振(LCP)和右旋圆偏振(RCP)的吸收不一样,这叫圆二色性(Circular Dichroism,CD);同时还会让线偏振的偏振面旋转,也就是旋光。
那"平面手性"呢?一个完全平躺在xy平面内的金属开口环(Split-Ring Resonator,SRR),它本身和它的镜像在平面内没法通过旋转和平移完全重合,除非翻面。这就是"平面手性"——结构的手性不是体现在三维空间的螺旋上升里,而是体现在平面内的开口方向和旋向上。类似的经典结构还有阿基米德螺旋、风车叶片形状的十字结构、三脚架结构等。这类结构的共同点是它们可以被一次光刻或电子束直写做出来,不需要多层堆叠和精确对准,这是它比三维手性结构吸引人的地方。
在COMSOL里搭这类结构其实不复杂:一个环,切掉一个角,就是SRR;把开口方向反过来,就是它的对映体。麻烦的是,物理上很多东西并不能直接从"长得像不像镜子"来判断,必须靠仿真去验证。
1.2 为什么正入射时平面手性的CD会消失
这是整个平面手性仿真里最容易让人栽跟头的物理问题。我见过不少人在正入射条件下算出很大的CD,然后兴冲冲地拿去和实验对比,结果实验上测不到。实际上,对于一个理想化的、无限薄的、悬浮在均匀介质中的平面手性结构,正入射圆偏振光的响应有一个几乎强制性的结论:CD为零。
原因可以这样理解。假设结构在xy平面内,光沿z轴正入射。z=0平面是这个结构的镜面。当你把空间反过来(z变-z),同时把传播方向也反过来时,整个"结构加入射光"的系统会映射到它自己,而圆偏振在镜像变换下左右旋会互换。既然正入射下LCP和RCP的完整电磁问题完全等价,两者的透射、吸收自然一模一样,CD就只能退化为零。
那为什么实验里又经常能看到非零CD?因为现实条件把这些"理想化假设"逐个打破了:金属膜有厚度、结构放在折射率不对称的衬底上、入射角稍微倾斜一点、或者单元之间出现阵列耦合。其中任何一项都会破坏上述对称性,让CD从零变成一个小但可测的值,甚至在某些暗模式耦合条件下变得很强。所以做仿真时,你把正入射结果算出来发现两条曲线重合,第一个反应不应该是怀疑自己设置错了,而是恭喜你,模型守恒了。
1.3 建模仿真对理解这个现象有什么独到价值
实验上判断一个结构有没有手性响应,要做好几个样品,旋向相反的都要做,还要保证加工误差一致,样品多了成本立刻上去。仿真可以先回答一个问题:这个结构的CD在什么条件下会被激发、能到多大、主要来自吸收还是透射差异。
更重要的是,仿真能把"几何结构-入射条件-光学响应"三者之间的关系拆开。实验里你测到一个CD峰,很难判断它来自电偶极子还是磁偶极子、来自结构本体还是衬底效应;但在COMSOL里你可以单独把衬底折射率设为1、把结构厚度设为零、或者把入射角扫一遍,每一项单独开关,物理起源一目了然。这篇"光学仿真之旅"的核心方法论就在这里:不是跑通一个模型就完事,而是用仿真当作一个可重复的物理实验平台,去探索平面手性结构的边界条件。
2. 动手前要拍板的四件事:结构参数、材料模型、激励方式与边界形态
建模之前先做决策。这四件事如果没想清楚,后面每一步都可能返工。
2.1 结构选型:开口环还是阿基米德螺旋
虽然我下面主要用开口环(SRR)当例子,但你要先知道自己适合哪种结构。
开口环的好处是几何简单,参数少,就三个:环外半径R、环线宽w、开口角度θ(或者说开口弧长)。它对应一个很清晰的物理图像:开口处形成电容,环本身形成电感,整体是一个LC谐振器。在谐振频率附近,局域电场增强非常明显,手性响应也往往集中在谐振附近。它的缺点是谐振谱比较窄,你要扫频率的话,分辨率得设置足够细。
阿基米德螺旋则是一个连续渐变的结构,没有明显的开口,但它依然有平面手性。它的响应更宽,却不像SRR那样容易把"谐振"和"手性"对应起来,后处理的时候解释起来更费劲。对于第一次做平面手性仿真的读者,我的建议是先用SRR打通整个流程,等你会提取CD了,再换螺旋去玩。
2.2 几何参数的具体量级:从近红外到太赫兹
参数量级取决于你想要的响应波段。以近红外为例,我常用的一组初始参数是:环外半径700 nm,环线宽120 nm,开口角度约30度,金属厚度40 nm。单元周期(后面做阵列时会用到)取1.2 μm左右。这种量级下,SRR的LC谐振会落在1.5 μm到3 μm之间,正好覆盖通信波段附近,实验上用一束近红外的超连续谱激光加偏振测量就能验证。
如果你做太赫兹,结构尺寸得放大到几十微米甚至上百微米;如果做可见光,金属损耗会变得很大,谐振品质因子下降,CD的峰值也会变钝。这些经验值不是拍脑袋,都是被很多文献反复验证过的。你不必迷信某一组数,但初始值选得好,能省掉大量试错。
2.3 材料模型:PEC、Drude与实验真实差的取舍
材料是平面手性仿真里一个典型的"选择困难点"。
最省事的是把金属设为PEC(理想电导体)。PEC没有内部场也没有损耗,算起来快,看模式分布很方便。但PEC有一个致命限制:它没法让你算吸收CD,因为金属根本不吸收电磁波。如果你关心的是"这个结构在LCP和RCP下的吸收差异有多大",那PEC直接出局。
更接近真实的是用Drude模型描述金或银的介电常数。COMSOL内置材料库里其实有金、银的光学数据,比你自己敲Drude参数更可靠。我通常会在初始扫描时用内置材料库里的金,省心;等到要解释某个具体实验曲线时,再换成自己拟合的Drude参数,因为实际样品的金膜和数据库里的块体金在损耗上有差别,有时差距还不小。
有个容易被忽略的点:衬底材料。很多平面手性实验是在玻璃或石英衬底上做的,衬底把平面手性结构的对称性打破了,导致正入射也能测到非零CD。如果你仿真里把衬底设成空气,结果会和实验差很多。所以我在建模的第一步就会决定:这个模型是"孤立结构在均匀介质中"还是"衬底上的真实结构"。这两个模型的CD物理是不一样的。
2.4 边界形态与激励方式配对
边界条件的选择决定了你的模型对应实验里的哪种样品。
- 孤立单个结构:适合研究本征近场和散射,但没法直接对应大面积加工的超表面样品。
- 周期阵列:用周期性边界条件(或者说Floquet周期边界),等价于一个无限大的超表面,实验结果通常更接近这个模型。
激励方式同样关键。这里我要重点说一句:COMSOL的"端口(Port)"边界条件主要面向波导类问题,它确实可以指定模式类型,但在自由空间中做一个斜入射的圆偏振平面波,大多数情况下你用端口反而别扭。我更推荐用"散射场(Scattered Field)"公式,把入射光写成背景场,让求解器只算结构引起的散射场。这样你控制偏振状态、入射角度、相位关系都非常直接,后处理也干净。
3. 一步一步在COMSOL里搭出平面手性结构的仿真模型
下面以三维模型为例,结构是衬底上的金属开口环,入射方向为z,频率扫描范围覆盖谐振区。
3.1 几何:用扇环加矩形修剪出一个开口环
COMSOL的几何内核可以直接画两个圆并做布尔差集。具体操作:先画一个半径R的圆,再画一个半径R-w的小圆,两者做差集得到完整圆环;然后画一个覆盖开口区域的矩形或扇形,再用差集把开口切掉。这样开口环就出来了。
但这样画出来的开口边缘是直边,容易出现尖角。尖角处网格很难收敛,电场会不物理地发散。我的习惯是给开口两端加一个圆角过渡,圆角半径取线宽的四分之一左右。几何上做圆角会麻烦一点,但换来的是网格质量和结果可靠性,非常值得。
金属厚度用"拉伸(Extrude)"操作实现,从平面环变成厚度h的立体结构。注意材料域只选择金属那一块,衬底单独建一个长方体,空气区域用一个大盒子包住两者,盒子外表面最后会分配PML层。
3.2 物理场接口与散射场设定
模型树里加"电磁波,频域"接口,公式类型选择"散射场"。背景场类型有两种路径:COMSOL自带的平面波背景场可以直接选"沿z轴传播、电场沿x方向",这种线偏振背景场写法最简单;但我们要的是圆偏振,所以用自定义表达式更合适。
背景场设好后,散射场方程自动写成对总场的求解,只不过把解析的背景场贡献从方程里显式提了出来。这样做的好处是,你不需要在边界上额外加激励,散射场在PML边界处会被自然吸收掉。
有一件事我每次都会检查:系统默认的时间约定是exp(-jωt)还是exp(+jωt)。这个约定直接决定了圆偏振的数学表达式里该用+ j还是- j,如果搞反,你算出来的LCP和RCP会互换,CD符号整个反过来。COMSOL里这个约定在求解器设置里是可以显式查看和切换的,别偷懒。
3.3 LCP与RCP背景场的复数振幅写法
上面我提到的"自定义表达式",具体来说是在背景电场的三个分量里写这样的形式。假设光沿z正向传播,频率为ω,波数k0:
背景电场Ex: E0*exp(-j*k0*z) 背景电场Ey: j*E0*exp(-j*k0*z) 背景电场Ez: 0这就是一个圆偏振态的写法。哪一个是LCP、哪一个是RCP取决于你的时间约定和定义习惯,但重要的是保持两次求解中只有Ey分量的相位符号相反。第二次求解,把Ey改成-j*E0*exp(-j*k0*z),其他不动。这样你就得到了两个完整的、互为旋向相反的背景场。
顺带一提,有人喜欢用两个线偏振的仿真结果合成圆偏振:先算x偏振的复透射系数tx,再算y偏振的复透射系数ty,然后LCP透射正比于|tx + jty|²,RCP正比于|tx - jty|²。数学上完全等价,但实际操作要保存两组复振幅结果再处理,反而容易出错。直接设两个背景场各算一次,简单粗暴,也便于核对。
3.4 网格策略:开口边缘的局部加密与PML扫掠
网格是COMSOL仿真成败的关键,尤其是金属开口环这种薄结构。
我的做法分三层。第一,金属环的体内和表面用自由四面体网格,环的宽度w小,所以网格尺寸要强制设到w/3左右,保证厚度方向至少有2到3层网格。第二,开口和圆角附近做局部尺寸控制,把最大单元尺寸压到w/5以下,这里电场最集中,也是CD敏感到极致的区域。第三,PML层用扫掠网格,沿厚度方向均匀扫5到10层即可,不要把PML也用自适应四面体去剖,又慢又容易出坏单位。
空气区域不必所有地方都加密。距离结构很远的地方场已经衰减了,网格可以渐变化。如果计算机内存吃紧,优先保金属区域和近场区域的网格密度,别浪费在远处的空气盒子。
最终网格数量在几十万到几百万自由度的量级,对于频域扫描来说运行一次大概几分钟到十几分钟,完全可接受。如果算得太慢,先把PML层的扫掠层数往下降,或者把频域扫描的采样点减少,都比粗暴降低整体网格质量要好。
4. 从仿真结果中提取圆二色谱:透射、吸收与CD的计算口径
模型跑完只是开始,真正的技术活在后处理。很多人栽在这里:算出来的电场分布很漂亮,但不知道该怎么提炼成一个可写进论文的CD曲线。
4.1 透射率的定义与S参数提取
要得到透射率,最直接的方法是在结构后方某个z平面上对坡印廷矢量的法向分量做面积分,除以入射光的功率。在COMSOL后处理里,可以用"派生值→表面积分",选功率流密度的z分量,积分面放在结构后面、PML之前的一个平面上。这样就得到了透过该平面的总功率P_t。
这里有一个细节:背景场和散射场都在总场里,所以这个积分算的是总功率。如果你只关心某一个衍射级次的透射(比如0级透射),需要用傅里叶变换把散射场分解到平面波分量上去,COMSOL的远场变换节点可以做,但那是另一个层面的工作。对文章这种初探性质的仿真,先看总透射率就够了。透射率T = P_t / P_in,P_in就是你背景场的积分功率。
4.2 吸收与损耗的正确积分方式
吸收的提取比透射更简单粗暴:在金属域上对"电磁耗损密度"做体积分。这个量在COMSOL后处理里可以直接调用,物理本质是0.5Re(J·E),单位是W/m³,在金属域积分后就得到整个结构吸收的功率A。
有个经验之谈:如果你用PEC,损耗密度恒为零,所以吸收CD永远算不出来,这是我前面提到PEC局限性的具体体现。用衬底上的金膜算吸收时,注意衬底如果设了介电常数虚部,它也会产生吸收,这时候要分清"金属吸收"和"介质吸收",分别选不同的域积分即可。
4.3 圆二色信号:先看原始差,再看不对称因子
得到了LCP和RCP各自的透射率和吸收率之后,CD可以有两种理解方式。按透射定义:
CD_T = T_LCP - T_RCP
按吸收定义:
CD_A = A_LCP - A_RCP
两者往往反号,因为透射小通常意味着吸收大。论文里写的时候一定要标明用的是哪个口径。我个人的习惯是同时算透射CD和吸收CD,看它们是否彼此印证。如果两个口径互相矛盾,多半是网格或者背景场写错了,这种交叉验证能拦住不少低级错误。
除了绝对值,手性响应还有一个无量纲的评价指标,叫不对称因子:
g = 2*(A_LCP - A_RCP)/(A_LCP + A_RCP)
g的物理意思是"手性吸收差异在总吸收里占多大比例"。超表面研究里经常用g来衡量结构手性的"效率",因为有些结构虽然CD的绝对数值大,但那是建立在总吸收本来就很大的基础上的,实际应用里意义有限。画频谱时,把T_LCP、T_RCP和g画在一张图里,信息量比单画一条ΔT高得多。
4.4 一个简化的结果解读示例
假设我用R=700 nm、w=120 nm、开口30度、金厚40 nm、玻璃衬底的结构,扫描1 μm到3 μm。预期会出现两种情况。第一种,正入射且衬底存在时,由于衬底破坏z方向对称性,LCP和RCP透射谱会出现微小的分离,CD的峰不过几个百分点,集中在LC谐振波长附近。第二种,把入射角改成30度斜入射,CD峰值明显加大,有时候能到百分之十几甚至更高。
这时候你可以顺手画一下谐振波长处的电场模分布,观察开口两侧的电场增强是LCP还是RCP更显著。这个局域近场图是后续写论文时非常有力的支撑材料,也是判断CD来源是"电场型模式"还是"磁场型模式"的直观证据。
5. 排查与校准:我在这条仿真路上遇到的几个真实问题
这一节我想把踩过的坑集中写出来,每一个都真实发生在我的仿真过程中。如果你碰到类似现象,可以直接按这条思路去查。
5.1 网格细而不收敛的"假CD"
第一次给SRR做网格加密时,我满怀期待地看到LCP和RCP的吸收谱终于分开了一点,以为自己发现了大CD。结果把全局网格密度从"较细化"调到"极细化"之后,那个CD峰不仅位置移动了,连符号都变了。这就不是物理,是网格伪影。
问题出在我只用了一套加密方案跑了两个偏振态。手性结构里LCP和RCP在开口附近产生的场分布本来就不同,如果网格没有细化到位,两个偏振态会感受到不同的数值误差,于是凭空造出一个"CD"。解决办法有两个:一是做网格收敛性验证,CD随网格加密不再明显变化才算可信;二是确保LCP和RCP两次求解用的是完全相同的网格,一个节点都不能变。
5.2 PML边界与端口叠加的那次崩溃
有一版模型我图省事,在盒子外围直接加PML,同时又在上表面设了一个Port边界。结果求解器报错,显示某些变量没有定义。后来才反应过来,Port边界和PML边界在物理上是重复的:端口自己就把入射波注入了,PML又试图吸收所有外向波,两者的模式匹配在边界上打架。
正确的做法是二选一。如果你用Port,那传输方向的端面就是端口边界,侧面用周期性条件(做阵列)或PML(做孤立结构),垂直方向不再额外加PML。如果你像我推荐的那样用散射场加背景场,那四周都可以用PML,入射波已经由背景场描述,PML只需吸收散射场即可。这个"端口和PML不混用"的原则,能帮你省掉很多摸不着头脑的报错。
5.3 LCP/RCP的相位符号:左右旋之争
圆偏振的"左"和"右"在不同学科、不同文献里定义并不总是一致。有的按"从光源方向看去"定义,有的按"沿着传播方向看去"定义,还有的干脆以电场的旋转方向为准。COMSOL里的时谐约定再插一脚,你稍不注意,算出来的LCP和RCP就可能是反的。
这个问题没法靠"背一个公式"一劳永逸。我的做法是用一个已知结论来校核:找一个已经发表实验CD谱的简单结构,比如某个SRR阵列,按文献的几何参数重跑一遍,看仿真CD的峰位和符号能不能对上。能对上,说明你的左右旋定义和文献一致;对不上,就把背景场里的j改成-j再试。这个对照校准的过程花不了多少时间,但比你自己纠结定义半天有用得多。
5.4 材料损耗对CD幅值的"放大器"效应
还有一次我把金的电导率误设成了没有虚部的PEC-like数值,发现吸收CD全部消失,透射CD变得异常尖锐。原因是金属没有损耗时,谐振的展宽机制只剩辐射,品质因子极高,CD峰窄到需要极细的频率步长才能捕捉。
真实金属的损耗会显著压低品质因子、展宽谱线,同时也可能让CD峰变矮。所以不要一上来就用一个"看起来比较优雅"的无损耗材料模型,除非你只是想看模式形状。要做CD定量预测,材料的光学常数必须尽量接近实际样品,否则仿真和实验的峰高对不上是必然的。
6. 往深处走:斜入射、阵列超表面与旋光色散的下一步
基础流程跑通之后,这个模型就是你的玩具了。我建议按下面几条路子继续折腾,每一条都能带出新的物理。
6.1 斜入射如何让平面手性"显形"
最自然的下一步是把入射角从0度扫到45度。在散射场公式下,你只需要把背景场的波矢从k0*z改成k0*(sinθ*x + cosθ*z),同时让偏振矢量的定义跟着传播方向旋转即可。对周期结构,COMSOL里有Floquet周期边界和解耦的斜入射平面波写法,注意把周期方向上的相位延迟设对。
斜入射的角度越大,CD一般越强,但也会引入s偏振和p偏振基底的差异,后处理时要小心不要把"偏振基差异"误判成"手性CD"。一个保险的做法是:对非手性的对照结构(比如完整圆环,无开口)也跑一遍同样的斜入射,看看LCP和RCP差多少,这个差值就是你系统里的非手性基底,真正的CD应该扣除它再讨论。
6.2 从孤立单元到周期超表面
孤立单单元很好,但它对应不了实验里那一片片加工出来的超表面。把周期边界条件加上,几何上留出适当的单元间距,你会发现两个新现象:一是单元间的近场耦合会改变谐振波长和CD峰位置,二是周期衍射效应在短波长处会出现反常的透射或吸收。这时候再回头看孤立单元的结论,有些会成立,有些会失效。
周期阵列的仿真成本比孤立单元高不少,但信息也更接近实验。如果资源和时间有限,我建议先用孤立单元做参数扫描、锁定大致结构参数,再用周期阵列做一次精细验证。这样可以兼顾速度和可靠性。
6.3 偏振旋转:除了CD,旋光色散也值得提取
CD描述的是左右旋的吸收差,但手性结构还有一个等效应对:让透射的线偏振光偏振面旋转一个角度,叫旋光。在仿真里,你可以提取透射电场的复数Jones矩阵,用两个正交线偏振的透射复系数算出旋转角θ和椭率η。
旋光色散谱做出来,你就拥有了对平面手性结构更完整的描述。特别是当你发现CD峰很弱、但旋光角很明显的结构时,这个结构的应用方向可能就从"圆二色吸收体"转向"偏振调控器件"了。仿真到这里,已经不止是在复现经典平面手性,而是在帮你找新的设计灵感。
我个人的体会是,平面手性仿真最迷人的地方,在于它总是逼你去和对称性"对峙":你以为结构很手性,物理却告诉你正入射下CD必须为零;你以为衬底只是配角,它却轻轻一推就让手性现形。COMSOL在这里扮演的角色,更像一个让你可以任意开关物理要素的"理想实验室"。如果你今天就要动手,不妨直接从一节开口环开始,跑通LCP和RCP两条谱线,再看一眼那个理论上应该重合、实际也会重合的正入射结果——那一刻,你就算真正进入平面手性光学的大门了。