在本例中,我们展示了基于超表面的CMOS图像传感器滤光片的逆向设计,它可以替代传统的拜耳滤光片,后者因用吸收来过滤色彩而导致光损耗。我们可以通过在 Lumopt(基于 Python 的 Lumerical 优化工具)中使用红色和蓝色像素的综合强度作为品质因数,显着提高每个像素的效率。
为了设计超表面,我们使用了 Lumerical Lumopt 的多参数、多目标拓扑逆向设计优化方法。我们将超原子的折射率在 1.0(空气)到 2.4(TiO2)之间变化,并最大限度地提高 2D 红色和蓝色敏感传感器区域的光学效率。
步骤1:定义基础模拟项目
下载示例附带的文件并将所有文件解压到一个公共目录中。然后我们需要定义一个基础模拟项目,包括模拟区域、优化区域、光源和监视器。初始模拟是通过脚本文件 Base_script_2D_TE_volume.lsf 生成的。我们可以通过在 FDTD 中打开并运行脚本来检查设置:
首先,我们需要定义超表面的两种材料的折射率。此案例中分别为 1.00 和 2.4。我们将空气的折射率设置为 1。
其次,我们需要将监视器的位置定义为每种颜色的品质因数 (FOM) 监视器。您可以通过更改场区域监视器的大小来修改像素的大小和位置。
最后,我们需要通过监视器定义优化区域。我们将优化区域的大小定义为 3 x 1 μm。此外,您可以根据需要更改优化区域。
步骤2:定义优化区域
下一步,我们需要在脚本文件 topo_focus_2D_basic.py 中定义几个优化参数。
首先,我们需要定义如下品质因数。在 FDTD 脚本文件编辑器中打开 topo_focus_2D_basic.py。field_region_name 应与脚本文件 Base_script_2D_TE_volume.lsf 中的场区域监视器名称相同。
max_iter:确定灰度相位在多少次迭代后结束。优化器可以根据其他标准在此数字之前终止。增加此数字通常需要更多计算时间,但可以带来更好的性能。
ftol:灰度优化继续进行时,两次后续迭代之间所需的品质因数 (FOM) 的最小变化。
scale_initial_gradient_to:强制重新缩放梯度以至少将优化参数改变这么多。
再下一步骤,我们使用SuperOptimization对红色和蓝色像素进行共同优化。我们对红色和蓝色波长赋予相同的权重。
第四,我们应该将下面的值与脚本文件 Base_script_2D_TE_volume.lsf 中的值进行交叉检查。
size_x、size_y:器件的长度。单位为 [nm]
filter_R:平滑滤波器的半径,可消除小特征和尖角。此值仅在 topo_focus_2D_basic.py 中,因此您无需仔细检查。
eps_wg、eps_bg:材料的有效介电常数。这些值应使用 *.lsf 文件中的 bg_indx 和 wg_index 检查。
mesh size:FDTD 网格大小。
x_pos、y_pos:优化区域的位置。linspace 函数中的第一个和第二个值应与每个轴的优化区域的最小值和最大值相同。
最后,我们定义起始参数的初始条件。由于我们使用基于梯度的局部优化器,因此结果通常在很大程度上取决于初始猜测。给定的示例有四种不同的内置初始条件可供尝试:
通过取消注释任何一行,可以尝试不同的初始条件。此外,可以提供自定义初始条件,例如随机噪声或特定结构。优化后,您可以获得如下图所示的电场分布结果。我们可以看到每束光都很好地传播到每个像素。
另外,您可以使用频域分布监测器和功率监测器的 T(传输)结果来计算光学效率。