在非线性光学仿真领域,特别是在使用COMSOL软件重现物理评论快报(PRL)中的二次谐波生成(SHG)现象时,很多同行都会遇到挑战。最近,受到一篇PRL论文的启发,我决定尝试复现该论文中关于微环谐振腔的SHG效果。然而,实际操作远比我预想的要复杂得多。
首要任务是正确设置材料的非线性属性。虽然COMSOL提供了χ(2)非线性选项,但实践证明,对于像环形谐振腔这样的特定结构,手动定义非线性极化项更为有效。在编写代码时,关键是明确基频波与倍频波之间的耦合关系:
model.param.set('chi2', '2e-12[m/V]'); //典型LN晶体的二阶非线性系数
model.physics('ewfd').feature('nlin1').set('Pnl', {'0', 'chi2*ewfd.Ey^2', '0'}); //y方向极化分量
一个至关重要的细节是,坐标系统的方向必须与实际的微环结构相匹配。经过多次失败后,我发现论文中的环形波导采用的是切向极化,其中Y轴对应环的切线方向。这一设置对非线性极化的空间分布模式有直接影响。
频率耦合设置则是真正的难点所在。你需要在波动方程模块中手动添加两个相互作用的频域研究:
study1 = model.study.create('study1');
study1.feature.create('freq', 'Frequency');
study1.feature('freq').set('plist', {'1.55e14'}); //基频
study1.feature('freq').set('notlistsol', 'on');
study2 = model.study.create('study2');
study2.feature.create('freq', 'Frequency');
study2.feature('freq').set('plist', {'3.1e14'}); //倍频
study2.feature('freq').set('notlistsol', 'on');
重要提示:必须启用“频域扰动”选项,以确保两个频率能够耦合,否则所有努力都将白费。这个选项在用户界面中隐藏得很深,推荐直接通过参数对象进行调整:
model.sol('sol1').feature('freq').set('perturb', 'on');
model.sol('sol1').feature('freq').set('kspType', 'fgmres'); //迭代求解必选
在网格划分方面,特别需要注意环形波导的弯曲部分,因为这里的电场强度可能会突然变化。建议采用边界层网格加上曲率修正的方法,否则计算出的转换效率可能会相差几个数量级。一个巧妙的方法是使用极坐标系进行剖分:
mesh1.feature('size').set('customize', 'on');
mesh1.feature('size').set('hgrad', 1.5); //曲率自适应
mesh1.feature('dis1').set('type', 'cylindrical'); //极坐标剖分
在验证能量守恒的过程中,我发现倍频波的功率出现了异常波动。经过排查,问题出在边界条件的相位不匹配上。解决方案是在端口边界添加相位补偿项:
model.physics('ewfd').bnd('port1').set('PhaseOffset', 'exp(-i*k0*x)'); //行波相位修正
经历了上述种种挑战之后,我终于看到了期待已久的优美二次谐波共振峰。但说实话,调试COMSOL中的非线性耦合过程,其难度堪比让一只猫沿着直线行走。如果将来再次进行SHG模拟,我可能会事先准备一些速效救心丸...



雷达卡


京公网安备 11010802022788号







