Lumerical次波长数据模型与几何光学联合仿真

电子说

1.3w人已加入

描述

 

01 说明

Lumerical 次波长模型(Lumerical Sub-Wavelength Model,LSWM)的输出可用于Ansys Speos或Zemax OpticStudio中。仿真流程是:在Lumerical 对具有平面叠层和/或周期图案的纳米尺度结构建模并求解后,将结果输出作为光学表面属性,用于几何光学模型中仿真。这些结构的典型例子是涂层和衍射光栅,其特征尺寸与光的波长相当或更小。描述表面散射的数据以JSON文件格式储存,并作为表面属性加载到Speos或Zemax OpticStudio中。

本文主要说明如何使用Lumerical求解器从仿真中提取散射数据。 

有关如何在 Speos 中使用 LSWM 的数据,请参阅 Lumerical Sub-wavelength Model: Usage in Speos: ;

有关如何在Zemax OpticStudio中使用LSWM的信息,请参阅如何将光栅数据从Lumerical加载到OpticStudio:。

02 介绍

LSWM主要使用在Lumerical 中FDTD、RCWA及STACK三种不同的求解器,可以针对涂层或衍射光栅模拟,并将表面的属性保存在JSON文件中。不同的求解器适合用于不同类别的结构:

- 平面叠层:它具有镜面散射和透射表面,可以用Lumerical STACK进行模拟。

- 衍射光栅:它是周期性结构,会将光散射到符合物理边界条件的衍射级次。LSWM模型支持1D和任意2D光栅类型。衍射光栅可以用Lumerical FDTD或RCWA模拟。(有关FDTD和RCWA之间的比较,请参阅RCWA求解器简介:https://optics.ansys.com/hc/en-us/articles/4414575008787)。

- 理想化的叠层和光栅属性都可以用Lumerical脚本生成并汇出到数据文件中。

注意:Lumerical FDTD和RCWA目前只支持1D或2D正交光栅结构,或可转换为正交周期的光栅。

03 从Lumerical导出表面属性

本案例主要用脚本来操作Lumerical执行流程。附加的脚本档案中,包含自动执行所需仿真、数据处理并以正确格式储存结果的功能。其中使用脚本命令 feval 将所需的函数汇入到脚本工作区(Script Workspace),以加载带有函数定义的相应档案。

执行脚本之前必须定义要计算的入射角和波长范围。LSWM总是假设Z轴与表面是垂直的。在这些示例中,入射光的方向是使用theta和phi角定义的。附录中给出了准确的定义。请注意,如果Theta、phi或波长仅指定了单个值,则假设表面特性独立于该变量。例如对于方位对称的涂层,应该使用单个值phi=0。同样的,对于与波长无关的表面,应使用单个波长值。

从仿真中导出表面属性的一般工作流程如下:

1. 定义亚波长几何形状、材料属性和所需的仿真对象。在用STACK的情况下,这可以完全以脚本完成。

2. 在脚本档案中定义源的波长和入射角范围。

3. 执行脚本档案以启动必要的模拟,并将结果汇出到JSON档案。

求解不同表面类型,或使用不同求解器在脚本流程中会不太相同。所有情况下,驱动脚本“GratingExport_*_workflow.lsf”,都需要从“GratingExport_*_functions.lsf” 中呼叫所需函数。详细说明请参阅相应脚本档案的标题批注说明。

“GratingExport_utility_functions.lsf”脚本档案包含通用函数,可以与特定求解器的函数一起使用。主要函数包含:

“WriteGratingData”用于编写JSON档案,该档案可以使用RCWA/FDTD的资料汇入Speos或Zemax OpticStudio。

“ReadGratingData”从JSON档案中读取资料,并将其储存为可以轻松可视化的矩阵数据集。

“validateWithLegacySupport”与提供的档案“schema grating-surface-schema.json”检查生成的JSON档案的格式。

04 不同特性表面用不同求解器的情况介绍 

平面叠层(STACK方法)

当使用STACK求解器仿真叠层结构时,几何和仿真参数都在脚本中定义。档案“GratingExport_STACK_functions.lsf”中的“layerSTACK”和“dielectric_interface”函数执行STACK模拟并将结果汇出到JSON档案。函数的详细说明请参考“GratingExport_STACK_functions.lsf”。

对于衍射光栅,下面会先用较少的入射光条件,分别对RCWA方法与FDTD方法流程做一个介绍,并说明设定的区别与结果比较。

衍射光栅(RCWA方法)

在 LSWM 中,FSP档案只需要几何对象和FDTD仿真区域,其中RCWA求解的x和y范围(相当于光栅周期)将从FDTD仿真区域定义。使用函数部分,“GratingExport_RCWA_functions.lsf”脚本中的“RCWAGratingSimulations”函数用于执行RCWA模拟,并将结果整理成struct 格式,此格式可以传递给“GratingExport_utility_functions.lsf”脚本中的“WriteGratingData”函数,由此函数产生要给Speos或Zemax的JSON 档案。

RCWA方法工作流程范例说明

在此用垂直表面的入射光和25个波长条件执行GratingExport_FDTD_RCWA_workflow.lsf。这使我们能够快速比较FDTD和RCWA的结果。稍后,使用RCWA可以相对快速地模拟全范围的角度和波长。GratingExport_FDTD_RCWA_workflow.lsf中初始执行的关键设定是:

solver = “RCWA”

theta_min = theta_max = 0 and N_theta = 1

phi_min = phi_max = 0 and N_phi = 1

wavelength_start = 0.4 microns, wavelength_stop = 0.7 microns 且 N_wavelength = 25

num_layers = 10

num_k_vectors = 10

grating_dimension = 1 因为这是一个在xz平面的1维光栅

执行此档案将为Speos或Zemax OpticStudio建立JSON档案,然后使用“ReadGratingData”和“validateWithLegacySupport”实用程序函数加载它进行模式验证和可视化。例如,要检视从空气到玻璃的透过率,对于S偏振光 的3个不同的衍射级次,我们可以使用以下设定检视第三个可视化结果(“RCWA_upper_T”数据集):

仿真

衍射光栅(FDTD方法)

FDTD和RCWA衍射光栅仿真的工作流程有许多相似之处。不同之处在于FSP档案除了几何与FDTD模拟区,还要包含来自对象库的“Grating S参数”分析组。执行LSWM流程之前,需把FDTD仿真的必须设定先设定好,比如正确设定边界条件和模拟时间等。使用函数部分,与RCWA工作流程不同,此流程有独立的功能来执行FDTD仿真(“RunFDTDGratingSimulations”)与将数据转换为正确的格式(“LoadFDTDGratingSimulations”)。这两个函数都可以在“GratingExport_FDTD_functions.lsf”档案中找到。“LoadFDTDGratingSimulations”函式返回与“RCWAGratingSimulations”格式相同格式的数据,因此工作流程的其余部分与RCWA相同:结构中的数据以JSON格式储存(“WriteGratingData”),也可以进行验证(“validateWithLegacySupport”)和可视化(“ReadGratingData”)。

FDTD方法工作流程范例说明

有关使用这些函式执行FDTD模拟的示例脚本,请参阅“GratingExport_FDTD_RCWA_workflow.lsf”。

如RCWA验证条件,初步使用垂直表面的入射光和25个波长执行GratingExport_FDTD_RCWA_workflow.lsf,以快速比较FDTD和RCWA结果。GratingExport_FDTD_RCWA_workflow.lsf中用于FDTD初始执行的关键设定是

solver = “FDTD”

theta_min = theta_max = 0 and N_theta = 1

phi_min = phi_max = 0 and N_phi = 1

wavelength_start = 0.4 microns, wavelength_stop = 0.7 microns 且 N_wavelength = 25

source_type = 1 仅正向入射的情况不需使用BFAST. 

执行此档案将为Speos或Zemax OpticStudio建立JSON档案,并将开启四个可视化工具来显示结果。同样我们从第三个可视化窗口检视从空气到玻璃的透过率,对于S偏振光的3个不同的衍射级次,结果如下:

仿真

比较FDTD和RCWA 光栅计算结果

执行上述简单的FDTD和RCWA示例后,执行脚本档案compare_FDTD_RCWA_results.lsf。它读取JSON档案,并在同一个可视化工具中显示4个结果中的每一个。它将上面光栅用FDTD与RCWA算法下, 3个衍射级次从空气到玻璃的传输与波长的关系,对S和P偏振分别绘图如下所示。我们可以看到求解器之间的良好一致性,要让两者更接近,可以透过对两种算法做收敛测试得到,如提高FDTD中的网格精度(超出当前的2个设定)以及增加RCWA中的层数和k向量数。

仿真

仿真

示例:光栅完整仿真

要创建光栅更完整的表征,包含所有入射角和波长入射光条件的 JSON 文件,可以对 GratingExport_FDTD_RCWA_workflow.lsf 文件进行以下更改:

solver = “RCWA”

theta_min = 0, theta_max = 85 , N_theta = 18 (提供5度一数据)

phi_min = 0, phi_max = 360 , N_phi = 37 (提供10度一数据)

wavelength_start = 0.4 microns, wavelength_stop = 0.7 microns , N_wavelength = 25

这可能需要一到几个小时才能在计算机上完成。在FDTD也可以完成同样的过程,但通常需要更长的时间。

理想化表面

“GratingExport_test_functions.lsf”脚本文件包含多个函数,用于为理想化的表面结构创建JSON文件,而无需使用模拟。可以创建以下表面类型:

具有用户指定透射/反射的镜面反射(“simpleRT”)

基于琼斯矩阵的曲面(“jonesMatrix”)

具有用户指定阶次效率的衍射光栅,包括:

- 对更高或更低入射角度(“grating_test_symmetrical”和“grating_test_simple_cartesian”)具有相同响应的光栅

- 对更高或更低入射角度具有不同响应的光栅(“grating test”)

- 1D 光栅 (“grating_test_1D”)

有关详细信息,请点击阅读原文并参阅“GratingExport_test_functions.lsf”脚本文件开头的函数说明以及“GratingExport_test_workflow.lsf”脚本文件。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分