comsol光学仿真 光子晶体光纤 论文复现(图是仿的一个spr传感器和一个三芯分束器)图左原文,图右仿的结果 基于SPR的光纤传感器 光子晶体光纤偏振分束器 光子晶体光纤仿真 模式分析 计算等效折射率,限制损耗,模式色散,有效模面积
最近在研究光子晶体光纤相关内容,尝试复现论文里关于基于 SPR 的光纤传感器以及三芯分束器的仿真图,过程还挺有意思,和大家分享下。
一、论文复现:SPR 传感器与三芯分束器
拿到论文,看着左边的原图,心里就琢磨着怎么在 Comsol 里实现右边相似的结果。对于基于 SPR 的光纤传感器,首先得理解 SPR(表面等离子体共振)的原理,它利用金属与介质界面处的表面等离子体与光的相互作用来实现传感。
在 Comsol 里建模,先定义材料属性,比如光纤的材料设置为二氧化硅,金属层设置为金(通常 SPR 常用金作为金属材料)。这里可以用代码片段来展示下材料定义部分(以 Comsol 的脚本语言为例):
# 定义二氧化硅材料 model.materials.create('mat1') model.materials('mat1').name = 'Silica' model.materials('mat1').domain.select(1) model.materials('mat1').prop('n').set(1.45) # 定义金材料 model.materials.create('mat2') model.materials('mat2').name = 'Gold' model.materials('mat2').domain.select(2) model.materials('mat2').prop('n').set(complex(0.13, 3.43))这里通过model.materials.create创建材料,然后设置其名称、选择作用区域以及设置折射率等属性。金的折射率用复数表示,因为金属对光有吸收。
对于三芯分束器的光子晶体光纤部分,关键在于合理设置三个芯的位置、大小以及周围空气孔的分布。通过调整这些参数,来达到和论文原图相似的模式分布。
二、光子晶体光纤偏振分束器仿真
偏振分束器在光通信等领域应用广泛。在 Comsol 里对光子晶体光纤偏振分束器进行仿真,核心是研究不同偏振态光在光纤中的传播特性。
通过设置边界条件为端口,让光从端口输入,然后观察不同偏振方向的光在光纤中的传输情况。代码如下:
# 设置端口边界条件 model.boundaries.create('port1') model.boundaries('port1').name = 'Input Port' model.boundaries('port1').selection.set([1]) model.boundaries('port1').physics.select('emw') model.boundaries('port1').feature('port').set(p1=1, p2=0) # 这里设置端口模式,p1,p2 是相关参数通过model.boundaries.create创建端口,设置名称、选择边界以及关联物理场(这里是电磁波物理场emw),并通过feature('port')设置端口模式参数。
三、光子晶体光纤仿真之模式分析
- 计算等效折射率
等效折射率对于理解光在光子晶体光纤中的传播特性很重要。在 Comsol 里,可以通过本征模求解器来得到。代码如下:
# 本征模求解器设置 model.studies.create('std1', 'eigenmode') model.studies('std1').feature('ef').set(1, 1.45) # 设置求解频率和初始猜测折射率 model.studies('std1').run()这里创建一个本征模求解的研究std1,通过feature('ef')设置求解频率和初始猜测折射率,然后运行求解。得到结果后,就可以从结果数据里提取等效折射率。
- 限制损耗
限制损耗反映了光在光纤中由于泄漏等原因导致的能量损失。通过计算模式功率在光纤边界处的通量来得到限制损耗。
# 计算限制损耗 lim_loss = model.result.evaluate('intop1(emw.Pnz)') / model.result.evaluate('intop1(emw.Pz)')这里通过model.result.evaluate来计算光纤边界上(intop1)的纵向功率通量(emw.Pnz)与总的纵向功率(emw.Pz)之比,从而得到限制损耗。
- 模式色散
模式色散影响光信号在光纤中的传输质量。在 Comsol 里,可以通过改变求解频率,得到不同频率下的等效折射率,进而计算模式色散。
# 不同频率下计算等效折射率以得到模式色散 freq_list = [190e12, 200e12, 210e12] # 频率列表 neff_list = [] for freq in freq_list: model.studies('std1').feature('ef').set(1, freq) model.studies('std1').run() neff = model.result.evaluate('emw.neff') neff_list.append(neff) # 根据 neff_list 计算模式色散先定义一个频率列表,然后在不同频率下运行本征模求解,获取等效折射率,后续就可以根据这些数据计算模式色散。
- 有效模面积
有效模面积与光在光纤中的功率分布有关。
# 计算有效模面积 A_eff = (model.result.evaluate('intop1(emw.Ez^2)'))**2 / model.result.evaluate('intop1(emw.Ez^4)')通过model.result.evaluate计算电场强度相关积分,进而得到有效模面积。
通过这些分析和仿真,对光子晶体光纤的各种特性有了更深入的理解,也成功复现了论文里的相关图,希望这些经验对研究相关领域的小伙伴有所帮助。