如何基于Lumerical以及OpticStudio完成全面的超透镜设计
说明
本案例的目的是设计一个由圆柱形纳米棒组成的衍射超透镜,人为调整纳米棒的半径和排列可以在超透镜表面上产生所需的相位分布。该设计的近场和远场分析在Ansys FDTD、RCWA(严格耦合波分析)和 OpticStudio中得到验证。
注意:在 Zemax 中进行进一步分析需要 OpticStudio 12 以上版本。
概述
了解模拟工作流程和关键结果
超透镜由精心排列的具有亚波长结构的“单位晶格”或“元原子”组成。通过调整这些单位晶格元件的几何形状,人们可以修改元件对于平面波的相位响应情况。借助几何参数方面的相位知识,可以通过将元原子放置在必要的位置来创建具有任意相位分布的超透镜。
第1步:定义目标相位分布
第一步是定义超透镜的目标相位分布。对于最常见的透镜类型,例如球面或柱面元件,我们可以使用已知的解析解获取相位分布。然而,对于更复杂的系统,解析解将不存在或难以计算,我们可以使用光线追迹和优化功能在OpticStudio中设计理想的相位掩模。
第2步:单位单元仿真-高度和半径扫描
在这一步中,我们扫描纳米棒的高度和半径,并获得其透射、相位和近场信息,从而选择出对应所需传输和相位特性的纳米棒高度情况,然后保存相位与光场相对于半径的结果以供后续步骤使用。RCWA求解算法将作为单元原子模拟的推荐/补充工具引入,并与FDTD进行比较以进行验证。
第3步:整体透镜设计
一旦从第2步构建了相位/光场相对于半径的库,就有两种方法可用于设计和分析超透镜整体:
1、直接仿真:根据上一步的目标相位分布以及其相对于半径的数据情况,在FDTD中构建和模拟完整的超透镜。虽然这种方法更直接,但它可能会在内存和仿真时间方面带来挑战,尤其是对于较大的超透镜而言。仿真得到的近场光束可用于远场分析并导出为.ZBF 文件,以便在Ansys OpticStudio中进一步传播。
2、全场重建:全超透镜的近场/远场可以使用步骤2中的近场库通过脚本进行重建。此方法避免了全透镜建模的耗时模拟,因此比直接模拟方法效率更高。这些方法的详细描述将在“运行和结果”部分的相应步骤中提供。
我们将使用一个小半径的球面超透镜来验证“间接”方法的准确性。然后,该方法将应用于OpticStudio中优化目标相位的更大的超透镜。
第4步:在OpticStudio中传播导入的光束
一旦超透镜的近场信息从上一步导出成为 .ZBF文件,我们就可以使用OpticStudio中的物理光学传播 (POP) 工具将光束传播到系统中的任意位置,包括任何光学元件体中。使用 POP,可以分析每个表面的相位和辐照度分布,并且评估系统性能。如有必要可以根据传播结果,在OpticStudio中重新优化光学系统设置。最后,可以在OpticStudio中将实际光束与通过目标相位掩模传播的理想光束进行比较,以验证超透镜模型。
第5步:GDS 导出
一旦完成整个镜头的物理形状和元原子位置的设计,通常会将其分布形式导出为GDS格式进行加工制造。但是,由于涉及的元素较多,GDS导出通常需要较长时间。在这一步中,我们展示了一种使用polystencil命令的快速且通用GDS导出方法,该方法可以很好地处理由大量元原子组成的大型超透镜。
运行和结果
建模执行的说明和关键结果的讨论
在前两部分的文章中,我们主要讨论了如何在 Lumerical 中定义目标相位的分布,并将该解析解用于 OpticStudio 中设计理想的相位掩膜,并且后续可以使用 FDTD 或者 RCWA 算法对其进行扫描仿真。并且我们也介绍如何在 OpticStudio 中进行实际透镜的建模,并且结合先前步骤得到的结果整体进行模拟。
接下来,我们将把 Lumercial 中得到的 ZBF 文件导入 OpticStudio 中,用于后续部分的传播模拟。
相关阅读:
Ansys Lumerical | 超透镜设计第一部分:Lumerical 与 Zemax 的互通性
Ansys Lumerical | 超透镜设计第二部分:OpticStudio 中的整体透镜设计
第4步:在Zemax OpticStudio中传播
从第3步导出的Enear_lens_extended.zbf文件可以直接导入到OpticStudio中,以便在系统的其余部分进行传播,进一步分析和评估。为了确认超透镜的物理模型提供了所需相位分布的真实表示,我们将 .ZBF文件定义的实际光束与通过目标相位掩膜传播的理想平顶光束进行比较。
1、打开包含光束传播的最终模拟文件 (phaseDesign_ZBF.zar),
2、比较理想和实际光束的传播结果。
光束传播结果
在这一步中,我们使用OpticStudio中的POP工具从上一步结果中分析结果作为传播光束进行导入。首先,为了分析真实光束,我们使用ZBF文件来进行光束定义,该定义依赖于近场分布,并且我们将光束从元透镜后的虚拟表面通过整个系统传播到焦点。接下来,为了提供比较参考,我们还通过理想的相位分布传播理想平顶光束,然后也向下穿过整个系统。
下面是焦点处两次传播后的辐照度分布。
结果非常一致,这验证了超透镜的纳米级模型的准确度。
第5步:GDS导出
一旦完成整个镜头的物理形状和元原子位置的设计,最后一步是将设计导出为GDS格式进行加工制造。但是,由于涉及的元素数量众多,GDS导出通常需要很长时间,除非进行特别设置。在这里,我们使用polystencil命令来提取特定z平面横截面的多边形顶点。这种方法适用于任意形状的元原子,并且适用于元原子的多个元件。
运行脚本gds_export.lsf。
该脚本将加载元原子模拟文件并先构建一个作为半径函数的顶点数据库,再次使用半径vs.相位数据和二维目标相位分布,然后将多边形添加到GDS文件中。下图显示了上述过程中使用的两个目标相位图的导出GDS图像。左边的一个是半径为11 um的球形超透镜,可转换为近1900个元素,导出只需要一小部分时间。在右侧,我们有一个用于半径为100 um的圆柱形相位掩模的GDS。这个有大约155k个元素,但只需5秒即可导出到 GDS。这种 GDS 导出方法可以轻松处理数百万个元素,并且适用于较大的镜头,只需稍微修改脚本即可。
重要的模型设置
此模型中使用的重要对象和设置的描述
元原子模拟 (FDTD)
“模型”中的变量
物体可具有高度、半径和周期作为其变量。使用这些参数自动设置模拟区域、监视器和光源的位置和跨度。
“S参数”分析组
超材料跨度和中心由“模型”中的脚本自动设置,以匹配“支柱”的高度。
模拟时间
在元原子模拟中,每个扫描点所需的模拟时间可能不同。为了安全起见,当前的模拟时间设置为10,000。最好通过达到自动关闭级别来检查所有扫描是否已结束,这可以通过在扫描结果中包含来自“FDTD”的“状态”结果来完成。
完整镜头模拟
PEC孔径
为了阻止镜头外光场的入射,在超透镜之前放置了一个由PEC材料制成的孔径。它的半径由“模型”中的脚本自动设置。
“超透镜”结构组
要可视化目标相位vs.位置以及半径vs.位置,请在“metalens”结构组中将“make plot”设置为“1”,然后单击“Script”选项卡中的“Test”按钮。Phase_vs_radius.ldf脚本还保存了材料数据和其他几何数据,以便更轻松地设置完整的镜头模拟。
渲染细节
当有许多结构要绘制时,显示可能会很慢,对于大型超透镜尤其如此。为防止出现此类问题,您可以在“metalens”结构组中将结构的渲染细节设置为较低值。
farfieldsettings 脚本命令
从大型频率监视器投影近场时,远场计算可能需要很长时间。要在不牺牲精度的情况下加快计算时间,您可以使用farfieldsettings脚本命令并对近场数据点进行采样降低。
OpticStudio中的传播
ZBF文件的阵列尺寸
为确保在OpticStudio的POP工具中传播期间对焦点附近和远离焦点的光束进行良好采样,请将阵列大小设置为 X=ω√πn,其中ω是束腰尺寸,n是采样点数。
引导光束半径
为确保ZBF文件在POP中使用正确的传播方法,在Surface Properties>Physical Optics下将Output Pilot Radius更改为User-defined X-Radius=-4.0671和Y-Radius=0。
使用您的参数更新模型
根据您的设备参数更新模型的说明
几何参数
如果要修改超透镜的形状,请确保更新元原子元以及完整的透镜模拟文件。“模型”和“扫描”对象需要使用正确的参数进行更新。
周期和波长
在改变元原子的波长或周期时,通常最好避免使用多个光栅级次,这会使超透镜的设计更加复杂。
焦距
具有较大焦距的超透镜通常需要较大的透镜半径,这意味着较大的内存和模拟时间。在继续使用更大的设备之前,使用较小的设备进行一些初步测试以验证概念可能是一个好主意。
其他设计注意事项
如上所示,测量相位偏离目标相位是很常见的。这种差异可能有很多原因:
1.由PEC孔径引起的衍射。
2.相邻纳米棒失去局部周期性:我们在步骤2中获得的相位假设具有相同直径的无限周期纳米棒。当相邻纳米棒的半径发生非常小的变化时,我们可以假设结构是局部周期性的,因此从步骤2获得的相位与半径关系仍然有效。此示例使用相对较小的半径,相邻纳米棒的相位(即对应半径)可能会突变。
3.满足亚波长条件:当纳米棒的半径变大时,相邻纳米棒之间会产生强烈的场相互作用。
4.网格细化:粗网格也可能导致精细特征的表现不佳。
为了改善结果,您可以尝试
1.修改元原子的周期以确保您始终在亚波长范围内工作,
2.增加超透镜半径,
3.细化网格。
进一步研究模型
为想要进一步定制模型的用户提供的信息和提示。
宽频模拟
当前示例基于单频仿真。但是,通过对模拟设置和相关脚本进行一些修改,它可以扩展到宽频模拟。这些主要与要添加到数据中的附加维度(频率)有关。
不同的镜片形状
这个案例可以很容易地适应不同形状(相位分布)的透镜。例如,如果您想设计一个平面超透镜用以应对球面、柱面或轴锥透镜的使用情况,您只需要使用与您感兴趣的透镜相对应的正确相位公式并生成2D目标相位图。建立相位/场vs.半径的库后,您可以重复使用该库并快速测试任意形状透镜的近场/远场属性。
“元原子”的排列
本例中使用矩形晶格来构建整个元透镜,使用方形晶胞作为构建区块,最终计算每个网格点上纳米棒的半径,并将结构添加到每个网格。这种方法适用于少量元素计算。对于较大的超透镜来说,这可能非常耗时,其中元素的数量可能会变得巨大。在这种情况下,您可以利用设计的对称性来加速图案生成,而不是逐个元素地生成图案。您还可以考虑使用单位单元的非周期性排列来更好地表示相位分布。
圆偏振光
手征特性的超透镜的模拟可能需要使用圆偏振光。
总结
在先前文章内容中,我们主要讨论具体步骤的前提部分:在OpticStudio内定义目标相位分布以及如何进行元原子仿真(基于FDTD或RCWA算法的高度和半径扫描),以及 OpticStudio 中的整体透镜设计。本文主要介绍了如何基于Lumerical以及OpticStudio完成全面的超透镜设计,针对上述成过进行整合和整体仿真,例如在OpticStudio中传播对应仿真光束并进行GDS导出等。希望上述的文章对您有所帮助,我们也将在后续为您提供更多精彩的内容!