comsol光子晶体光纤,反谐振光纤,计算有效折射率及模场,计算多种损耗,限制损耗,散射损耗,弯曲损耗,吸收损耗等
光子晶体光纤(PCF)和反谐振光纤(ARF)的结构设计直接决定了光场传输特性。在COMSOL中构建这类光纤模型时,网格划分需要特别讲究------纤芯区域采用极细化网格,包层周期性结构使用扫掠网格。举个例子,六边形晶格排列的空气孔可以用参数化曲线描述:
matlab
% COMSOL LiveLink脚本片段
for i = 1:6
theta = (i-1)*pi/3;
model.geom('geom1').feature().create(sprintf('circ%d',i), 'Circle');
model.geom('geom1').feature(sprintf('circ%d',i)).set('r', 0.8e-6);
model.geom('geom1').feature(sprintf('circ%d',i)).set('pos', [d*cos(theta), d*sin(theta)]);
end
这段代码通过极角循环生成六个环绕纤芯的空气孔,d控制孔间距。需要注意的是,当孔径与波长接近时,必须启用电磁场频域求解器的二阶元模式才能准确捕捉倏逝场。
计算有效折射率时,边界条件设置是重头戏。对于基模求解,建议使用完美匹配层(PML)包裹整个结构,同时设置端口激励。这里有个技巧:将初始猜测值设为材料折射率的80%,可以显著加快收敛速度。运行后提取ewfd.neff就能得到复数形式的有效折射率,其实部对应相位常数,虚部则与限制损耗相关。
损耗计算分四大类:
-
限制损耗 :直接来自有效折射率的虚部,计算公式为
Lc = (20pi/log(10))imag(neff)1e6/(real(neff)lambda)单位是dB/m,注意这里的lambda需要转换成米制。
-
弯曲损耗 :需要建立三维螺旋结构模型。实际操作中更高效的方法是采用等效折射率法------在二维模型中添加离心力对应的折射率修正项:
matlab
neffbend = real(neff) * (1 + (x/R)^2/2)R为弯曲半径,x是横向坐标。通过参数化扫描R值,可以绘制出弯曲损耗随曲率变化的曲线。
-
材料吸收损耗 :在介质材料属性中直接设置复折射率的虚部。例如二氧化硅在1550nm波长时:
matlab
n_SiO2 = 1.44 + 1i*4e-12;这个虚部值对应约0.2 dB/km的本征吸收损耗。
- 表面散射损耗 :需要结合表面粗糙度参数,采用微扰法计算。COMSOL中可以通过添加自定义弱贡献式实现:
matlab
-sigma^2(epsilonr - 1)^2* (normE)^2**sigma为表面起伏均方根,epsilon*r是相对介电常数。
模场可视化时,建议绘制电场分量(如Ez)的绝对值分布。通过对比不同波长下的模场直径,可以发现反谐振光纤的强波长依赖性------当满足反谐振条件时,模场会被强烈限制在纤芯:
matlab
% 绘制模场截面
mphplot(model, 'pg1', 'data', 'root.modal1.ewfd.Ez_abs');
set(gca,'ColorScale','log'); % 对数色阶更易观察弱场分布
实际调试中常遇到模式泄露问题。一个诊断技巧是观察PML区域内的场强衰减:若超过20dB衰减,说明边界条件设置合理;若出现明显反射,则需要调整PML的层数或伸缩因子。最后提醒,使用参数化扫描研究结构参数(如空气孔直径、晶格常数)时,建议结合批处理功能运行,能节省大量计算时间。
