说明
本案例的目的是设计一个由圆柱形纳米棒组成的衍射超透镜,人为调整纳米棒的半径和排列可以在超透镜表面上产生所需的相位分布。该设计的近场和远场分析在Ansys FDTD、RCWA(严格耦合波分析)和 OpticStudio中得到验证。
注意:在 Zemax 中进行进一步分析需要 OpticStudio 12 以上版本。
概述
了解模拟工作流程和关键结果
超透镜由精心排列的具有亚波长结构的“单位晶格”或“元原子”组成。通过调整这些单位晶格元件的几何形状,人们可以修改元件对于平面波的相位响应情况。借助几何参数方面的相位知识,可以通过将元原子放置在必要的位置来创建具有任意相位分布的超透镜。
第1步:定义目标相位分布
第一步是定义超透镜的目标相位分布。对于最常见的透镜类型,例如球面或柱面元件,我们可以使用已知的解析解获取相位分布。然而,对于更复杂的系统,解析解将不存在或难以计算,我们可以使用光线追迹和优化功能在OpticStudio中设计理想的相位掩模。
第2步:单位单元仿真-高度和半径扫描
在这一步中,我们扫描纳米棒的高度和半径,并获得其透射、相位和近场信息,从而选择出对应所需传输和相位特性的纳米棒高度情况,然后保存相位与光场相对于半径的结果以供后续步骤使用。RCWA求解算法将作为单元原子模拟的推荐/补充工具引入,并与FDTD进行比较以进行验证。
第3步:整体透镜设计
一旦从第2步构建了相位/光场相对于半径的库,就有两种方法可用于设计和分析超透镜整体:
直接仿真:根据上一步的目标相位分布以及其相对于半径的数据情况,在FDTD中构建和模拟完整的超透镜。虽然这种方法更直接,但它可能会在内存和仿真时间方面带来挑战,尤其是对于较大的超透镜而言。仿真得到的近场光束可用于远场分析并导出为.ZBF 文件,以便在Ansys OpticStudio中进一步传播。
全场重建:全超透镜的近场/远场可以使用步骤2中的近场库通过脚本进行重建。此方法避免了全透镜建模的耗时模拟,因此比直接模拟方法效率更高。这些方法的详细描述将在“运行和结果”部分的相应步骤中提供。
我们将使用一个小半径的球面超透镜来验证“间接”方法的准确性。然后,该方法将应用于OpticStudio中优化目标相位的更大的超透镜。
第4步:在OpticStudio中传播导入的光束
一旦超透镜的近场信息从上一步导出成为 .ZBF文件,我们就可以使用OpticStudio中的物理光学传播 (POP) 工具将光束传播到系统中的任意位置,包括任何光学元件体中。使用 POP,可以分析每个表面的相位和辐照度分布,并且评估系统性能。如有必要可以根据传播结果,在OpticStudio中重新优化光学系统设置。最后,可以在OpticStudio中将实际光束与通过目标相位掩模传播的理想光束进行比较,以验证超透镜模型。
第5步:GDS 导出
一旦完成整个镜头的物理形状和元原子位置的设计,通常会将其分布形式导出为GDS格式进行加工制造。但是,由于涉及的元素较多,GDS导出通常需要较长时间。在这一步中,我们展示了一种使用polystencil命令的快速且通用GDS导出方法,该方法可以很好地处理由大量元原子组成的大型超透镜。
Polystencil: https://optics.ansys.com/hc/en-us/articles/4401965734291
运行和结果
建模执行的说明和关键结果的讨论
在先前的第一部分文章中,我们主要讨论了如何在 Lumerical 中定义目标相位的分布,并将该解析解用于 OpticStudio 中设计理想的相位掩膜,并且后续可以使用 FDTD 或者 RCWA 算法对其进行扫描仿真。那么接下来我们主要想要介绍如何在 OpticStudio 中进行实际透镜的建模,并且结合先前步骤得到的结果整体进行模拟。
第3步:整体镜头设计
使用步骤1中的目标相位分布和步骤2中的半径/光场vs.相位数据库,我们现在准备好设计完整的超透镜。
超透镜的相位-半径映射
无论目标相位分布可能是什么,完整透镜设计都涉及将空间相位分布转换为空间(纳米棒)半径分布。下面显示了一个球形相位分布的示例,但该原理适用于任意相位分布。
直接模拟(小半径球面透镜)
一旦知道了半径分布,我们就可以创建整个镜头并在FDTD中运行模拟。这可能是最直接的方法,但不是最有效的方法,尤其是对于具有大半径(> 100 um)的超透镜。与任何大型仿真一样,它可能需要非常大的内存和较长的仿真时间。此外,大量的元原子会延长它们在FDTD中的构建和GUI中的可视化的时间。
打开并运行模拟文件full_lens.fsp。
从“光场”监视器可视化Ex的振幅和角度。
“超透镜”结构组从步骤2加载相位vs.半径数据,进行相位-半径映射,并将纳米棒放置在具有正确半径的所需位置。
假设模拟平面波入射,由PEC(完美电导体)制成的圆形孔径放置在光源和超透镜之间,以限制入射区域。“光场”监视器的近场结果如下所示:
入射光大部分被PEC(完美电导体)孔径阻挡。但其中一些会被孔径边缘衍射,这可以看作是振幅与相位图中的小波纹。与具有完美旋转对称性的理想双曲线透镜不同,由于透镜在直线网格上具有纳米棒阵列定义的离散化情况,因此模拟结果并未显示出这种对称效应。
运行脚本文件fdtd_full_lens_plot_field.lsf的“第1部分”,沿x轴绘制相位(上述相位图中的虚线)。
测量的相位总体上与目标相位非常吻合。
可以使用动态监视器或时间监视器来可视化通过超透镜光场的演变情况。由于动态监视器将显著增加模拟时间,因此最好使用2D时间监视器并及时获取光场快照。该光场的gif动画如下所示:
传播场的波前清楚地显示向内弯曲,表明光的聚焦,正如具有球面相位掩膜的透镜所预期的那样。
运行脚本文件fdtd_full_lens_plot_field.lsf的“第2部分”。
沿传播轴(Z)的远场投影表明,超透镜的焦距约为81.4 um,焦平面处光束的FWHM(半高全宽)约为2.4 um。计算出的焦距与100 um的目标值有些偏离。这主要归因于透镜尺寸小,因此用于映射透镜半径上的2*pi变化的纳米棒数量较少。增加镜头尺寸可能有助于改善结果以及优化其他参数,例如周期。
光场重建(小半径球面透镜)
作为耗时的整体镜头直接模拟的替代方案,可以使用步骤2中的近场数据库重新构建整个镜头的近场和远场情况。我们将再次使用半径相对较小的球面透镜(11 um)并将结果与直接模拟的结果进行比较,以验证该方法。
近场拼接和远场投影
在这种方法中,整个透镜的近场是通过拼接来自元原子模拟的近场结果来构建的,该近场对应于目标相位分布的每个网格点处的相位。由于所考虑的透镜的半径为11 um,因此只有11 um半径内的区域被匹配的场填充,外部场将直接设置为零。
1、运行脚本stitch_nearfield_11um_lens.lsf的“第1部分”。
2、在Visualizer中可视化“Ex”分量的振幅和角度。
拼接近场的振幅看起来与直接FDTD模拟的振幅大不相同。这可以归因于两种方法中使用的设置略有不同:
在FDTD中使用PEC孔径
在重建方法中假设局部周期性,而在FDTD中纳米棒的半径可以相比于相邻其他单元存在突然变化。
也就是说,两个幅度都在同一个球型场内,并且整体相位结果显示出良好的匹配。
3、运行脚本的stitch_nearfield_11um_lens.lsf“第2部分”,绘制远场结果。
总体而言,拼接近场所产生的远场结果与直接模拟结果在焦距、光斑大小和强度方面非常匹配。
对元原子的远场结果求和
这相当于近场拼接方法,但顺序相反。在这里,我们首先从步骤2中构建的近场数据库来构建远场库。然后,我们通过考虑其从原点的位置偏移产生的相移来总结每个纳米棒的远场结果的贡献。该方法可以用数学形式描述如下:
1、运行脚本sum_farfield_11um_lens.lsf
直接模拟和重建求和方式所获取的远场结果(在1 m半径的半球内)看起来十分匹配和吻合。
光场重建(使用OpticStudio中优化后得到具有一定相位分布的镜头,半径=100 um)
既然我们已经通过将其结果与直接模拟的结果进行比较,验证了“光场重建”方法在小透镜上的有效性,我们现在可以将其扩展到更大的超透镜设计中——其2D相位分布在OpticStudio中进行了优化(步骤1)。我们将在这里使用近场拼接方法。
1、运行脚本stitch_nearfield_ZOS_R100um.lsf。
下图显示了拼接近场的相位,类似于步骤1中获得的理想相位分布。脚本将重建的近场导出到.ZBF文件中,以便在下一步中在OpticStudio中进一步传播和验证。
在先前两个部分的内容中,我们主要讨论具体步骤的前三个部分:在OpticStudio内定义目标相位分布以及如何进行元原子仿真(基于FDTD或RCWA算法的高度和半径扫描),以及 OpticStudio 中的整体透镜设计。如果想要基于Lumerical以及OpticStudio完成全面的超透镜设计,我们还需要针对上述成过进行更多的整合和整体仿真,例如在OpticStudio中传播对应仿真光束并进行GDS导出等。后续内容我们将在未来推送的文章中进行介绍,敬请期待!