波导的光束传播方法。如何获得单模?

计算科学 Python 数字 模拟 波传播
2021-12-16 13:31:38

我正在使用 diffractio python 库(https://diffractio.readthedocs.io/en/latest/readme.html)模拟波导。这个想法是使用波传播方法创建单模波导。首先,我创建了一个具有特定折射率的波导。折射率分布给出结构上的折射率分布。我创建了一个具有硅折射率的结构,为此我使用简单的模式求解器计算有效折射率: https ://www.computational-photonics.eu/oms.html 结构和指数的结果个人资料如下图所示:

在此处输入图像描述 在此处输入图像描述

接下来是定义源,它将是一个将在波导内传播的高斯。高斯的宽度取自模式轮廓的 FWHM。 在此处输入图像描述

现在定义了掩模和高斯,我使用上述库传播波导内部的场,执行此操作的代码只是u1.BPM(verbose=True, division=False). 光的波长为1.55*um。

传播后,我得到以下图像。接下来我计算源和输出之间的重叠积分以找到传输(我对输出和输入字段进行归一化)。图中是波导内部的强度和 BPM 图片(波如何在波导内部传播)。问题:

  1. 如何分解波得到电场的 Ex、Ey、Ez 分量。
  2. 如何理解波导是否确实是单模?

我已经将结果与商业软件(例如 Lumerical FDTD)进行了比较,它看起来“正确”我怎么能发现这种方法适用于简单的波导模拟。下图是lumerical FDTD和python衍射接口模块的视觉对比。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述 在此处输入图像描述

1个回答

最简单的方法是使用横截面的模态求解器获得模态,并对输出分布与模态进行重叠积分,模态的数量被激发,因为单模态将是您没有任何传递功率到其他模态. 获取场分量可能是个问题,因为相位响应可能是个问题。但如果我没记错的话,你必须使用电场来传播 BPM,然后计算功率分布。否则,相位信息将丢失。如果您可以获得传播的相位分布和功率,您可以从场和功率的定义中获得该值,对强度和相位进行平方根以指数方式分解场