如何使用波动光学模块模拟透镜

2020年 2月 19日

在波动光学中模拟透镜通常很困难,因为需要大量的网格单元。在这篇博文中,我们将演示如何使用 COMSOL Multiphysics® 软件的附加模块——波动光学模块基于麦克斯韦方程进行透镜仿真。

光学仿真方法简介

光学仿真有两种主要的方法:

  1. 射线追踪
  2. 波动光学

如果要模拟衍射效应(即使只是简单地聚焦光束,也会引入衍射),需要用到波动光学。在波动光学中,我们考虑两种方法:全波麦克斯韦法和波束传播法(BPM)。每种方法都有一定的局限性,概述如下:

方法 理论精确度 衍射 反射 计算工作量
射线追踪 近似
波动光学:全波麦克斯韦法(传统上) 严格
波动光学:波束传播法(弗劳恩霍夫、菲涅耳等) 近似 中等

射线追踪是一种近似值,其中波长与物体大小相比可以忽略不计。因此,它不处理衍射问题。全波麦克斯韦求解器实际上是求解麦克斯韦方程组,所以它是严格的,理论上没有模型近似。波束传播法通常在公式中包含各种近似,例如弗劳恩霍夫近似(即傅里叶变换)和菲涅耳衍射公式。

全波麦克斯韦求解器看起来是最好的方法。然而,在光学仿真中,“传统的”麦克斯韦求解器存在一个问题,即它需要精细网格和大量内存来求解:

  • 光学元件
  • 由表面反射引起的干涉图案

在传统的麦克斯韦求解器中,计算域内的所有点在运行仿真时都有贡献。因此,我们需要在整个域内设置一个网格,网格单元需要解析波长。然而,如果想要模拟大型物体(例如标准光学镜头)时,就会出现问题。波束传播法不存在这个问题,因为场解通过使用特定的传播定律从一个平面传播(或跳跃)到另一个平面,因此我们不需要在平面之间设置网格。

使用波束包络接口模拟透镜

与传统的麦克斯韦求解器相比, COMSOL® 软件中的波束包络 接口没有这个困难,因为接口内置的公式中已经考虑了快速振荡部分。如果解的包络变化缓慢,就可以使用这个接口。在实践中,这样的案例还有很多。使用这种方法,我们不需要大量的网格单元。因此,如果我们总是模拟均质域并求解具有缓慢变化的包络,就可以使用这个接口。但是,还有其他情况存在。

我们经常想要求解包含非均质域的光学系统。面临的问题是材料界面的反射,例如透镜表面。那么,反射如何产生问题呢?反射也是麦克斯韦方程组的解。因此,如果存在某些材料界面,麦克斯韦求解器会尝试找到包括反射的解。如果发生任何反射,它们可能会严重干扰入射光束,最终形成具有一半波长的驻波。这使原来的问题变得更困难。我们需要解析半波长,这意味着需要更多的网格单元!这会降低 波束包络 接口的作用,如下图所示。

在 COMSOL Multiphysics 中使用光束包络界面的特写镜头模拟图像。
使用 波束包络 接口的透镜仿真特写。透镜(中心部分)有干涉,需要更细的网格。

为了避免表面反射,我们可以考虑使用抗反射涂层,就像在现实中大多数情况下每个光学元件都有抗反射涂层一样。我们来看一个使用 匹配 边界条件的 高斯光束 特征,模拟在自由空气空间中传播的高斯光束的示例。

显示网格和高斯光束模拟结果的顶部和底部图像。
顶部:仿真中使用的网格。沿传播方向(从左到右)只需要一个网格单元。底部:使用波束包络 接口的高斯光束仿真,单向公式。不插入空气以外的材料。

在上面的模拟中,我们将焦点放在左边界,因此光束向右边界扩展。除左边界外,所有其他边界均设置为无激励的 匹配 边界条件接下来,在域的右侧添加一个玻璃。我们期望在域的左侧有反射,而在右侧没有反射,所以必须增加左侧的网格,但可以保留右侧的单个网格。(请注意,通过使用双向公式,我们仍然可以仅使用一个网格单元准确捕获反射。我们对此处的反射不感兴趣,因此只需使用单向公式就可以了。)

带有光束包络界面的高斯光束模拟图像。
使用波束包络接口单向公式模拟的高斯光束。将玻璃插入域的右侧。上图是网格。需要大量的网格单元来解析干涉图案的半波长,而在域的右侧只需要一个网格。

如预期的那样,我们在域的左侧得到了反射,因此我们需要在那里设置大量网格单元。这会损害 波束包络 接口的优势。现在,让我们在玻璃表面添加抗反射涂层。最简单的单色光抗反射涂层是四分之一波长抗反射涂层(参见 Hecht 的光学 )。四分之一抗反射涂层是一种薄膜,其折射率为 \sqrt{n_1 n_2}, 其中 n_1n_2 是每种涂层夹层材料的指数,厚度为 \lambda_0/\sqrt{n_1 n_2}/4,其中 \lambda_0 是真空波长。有了这些设置,反射率在 \lambda_0 处变为零。现在让我们来看看如何在仿真中包含抗反射涂层。

将玻璃插入到域中的高斯光束模拟图像。
使用 波束包络 接口,单向公式的高斯光束仿真。将玻璃插入域的右侧。在玻璃表面涂上四分之一 抗反射涂层。上图是网格。所有材料域只需要一个网格。

由于存在抗反射涂层,不再有任何反射,这为使用该接口带来了最有利的条件。对于分别代表空气、抗反射涂层和玻璃的每个域,我们在传播方向上只需要一个网格单元。

自 COMSOL Multiphysics 5.4 版本开始增加的过渡 边界条件,可以模拟这种厚度为零的四分之一抗反射涂层。我们需要做的就是指定涂层的折射率和厚度,分别是 \sqrt{n_1 n_2}\lambda_0/\sqrt{n_1 n_2}/4,如下图所示。

A screenshot of the Transition boundary condition settings.
过渡边界条件的设置。

使用过渡边界条件的高斯光束模拟图像。
使用 波束包络接口,单向公式的高斯光束仿真。将玻璃插入域的右侧。在玻璃表面应用 过渡 边界条件。上图是网格。所有域只需要一个网格,因为没有反射。

现在我们可以看到过渡 边界条件的用处了,尤其是当存在许多材料界面时,可以避免在每个表面上形成真正的薄膜涂层。

使用了这个边界条件后,包含很多干涉的透镜仿真的第一张图就变得非常干净了,如下图所示。

在 COMSOL 软件中进行透镜模拟,无反射引起干扰。
使用 波束包络接口、单向公式和 过渡边界条件的透镜仿真。没有引起干扰的反射,因此网格更粗。

结束语

传统的全波麦克斯韦求解器在用于光学仿真时需要大量网格单元。同时使用COMSOL 软件的波束包络 接口、单向公式和过渡 边界条件可以在某些条件下解决这个问题。我们可以将这种方法用于包含光学器件的大型光学系统,甚至用于多光学系统耦合。这类应用包括透镜系统、波导、外部光学系统、光纤耦合、激光二极管堆叠和激光束传输系统。

与环境空气耦合的波导模拟图像。
模拟与环境空气耦合的波导。

后续步骤

单击下面的按钮,了解波动光学模块如何让您的透镜仿真变得更简单:

博客分类


评论 (2)

正在加载...
正桃 查
正桃 查
2024-09-03

您好,我发现采用波束包络法模拟光波导(其中波导分为衬底层、芯层以及包层,其中还涉及到各向异性介质)传输时,网格尺寸也必须很小才能得出感觉较为正确的结果,此时我该如何处理呢?2) 我的入射光是通过匹配边界条件所施加的高斯光,也采用了完美匹配层,但是在施加匹配边界条件的这个边界位置没有完美匹配层,因为我发现当在仿真波导域最外层添加一层完整的完美匹配层后,无法通过匹配边界条件在波导域的左边界施加入射光,即我现在疑惑的如何给具有完美匹配层的光波导结构施加高斯光?

子奇 陈
子奇 陈
2024-09-11 COMSOL 员工

需要网格很小才能够得到较为正确结果的原因是,输入的波矢(或者相位)与实际传播的情况区别很大,需要用很小的网格才能够解析(补偿)这个相位(波矢)上的区别,这个区别可能是各向异性材料或者反射和衍射的一些列现象引起的,详细信息可以参考同一个作者的“如何使用波束包络法进行波动光学模拟”这篇博客。另外一个问题,关于使用匹配边界条件的时候,不需要额外的吸收层,因为匹配边界条件对指定的波(所匹配的波)是完美吸收的,如果仍需要使用完美匹配层,则需要端口边界条件,手动指定高斯光,可以参考案例“波导 S 弯”和“周期性结构中的高斯光束”。

浏览 COMSOL 博客