Ansys Zemax | 如何将光栅数据从Lumerical导入至OpticStudio(上)

附件下载

联系工作人员获取附件


本文介绍了一种使用Ansys Zemax OpticStudio和Lumerical RCWA在整个光学系统中精确仿真1D/2D光栅的静态工作流程。将首先简要介绍方法。然后解释有关如何建立系统的详细信息。

本篇内容将分为上下两部分,上部将首先简要介绍方法工作流,下部将详细阐述示例部分。


介绍


在此工作流程中,设计人员首先在Lumerical FDTD或RCWA中模拟光栅,然后将数据导出到扩展名为json的文件。在OpticStudio中,用户可以导入这些数据,以精确模拟在整个宏观系统中的光栅特性。


许可证要求


此静态链接工作流需要从Lumerical生成数据并导入到OpticStudio中。这两个软件单独工作,不需要在同一台电脑上。要从Lumerical生成所需的数据,用户需要Lumerical FDTD许可证。要将数据读入OpticStudio,用户需要Ansys Zemax OpticStudio的专业版、旗舰版或企业版许可证。请注意,此功能不支持旧版的OpticStudio。


静态与动态工作流


值得一提的是,有两个现有的工作流程可以在Lumerical和OpticStudio之间交换数据。一个是我们将在本文中介绍的静态工作流。另一个是以不同方式工作的动态工作流。这两种工作流程具有不同的灵活性,不存在一个优于另一个。用户应根据其设计案例考虑使用哪一种。



从Lumerical生成光栅数据


在此工作流程中,我们使用扩展文件名为json的文件将光栅仿真结果从Lumerical传递到OpticStudio。json文件可以由组件供应商提供,也可以由使用OpticStudio的同一用户生成。

本文将不介绍在Lumerical中模拟和导出json文件的操作,需要了解请联系工作人员或者查阅帮助手册。(推荐阅读技术文章:Lumerical 亚波长模型:介绍和数据生成)


在Ansys Zemax OpticStudio中建立光栅


在OpticStudio中,要建立光栅,建议使用以下3个物体之一:Diffraction Grating、User Defined Object (DiffractionGrating.DLL)和User Defined Object (Polygon_grating.DLL)。默认安装文件夹中不提供 Polygon_grating.DLL文件,但可以通过联系我们的工作人员获取。

请注意,光栅建在这些建议物体的表面1处。



添加上述3个物体之一后,我们使用物体属性...衍射选项卡来定义DLL插件 “lumerical-sub-wavelength-XXXXXX.dll”,其中 XXXXXX 是版本,例如“2023R1”。此DLL将光栅数据(.json)读入 OpticStudio。请注意,光栅数据(.json)应保存在\Document\Zemax\DLL\Diffractive\文件夹中。

下一节将介绍此DLL的参数。



Ansys Zemax OpticStudio中的参数


随机模式

如果将其设置为非零,则光线在击中表面时不会分裂。相反,光线将被随机衍射到一个级次,如下所示。这对于一条光线多次照射衍射表面并分成太多段的情况非常有用。



测试模式

通常不使用此参数。用户应将其保持为零,除非需要下面描述的一些特殊用途。

当测试模式为0时,DLL在正常模式下工作。

当我们需要一些功能时,在此值之上增加一个值。

- +1表示DLL将导出日志文件到\Document\Zemax\DLL\Diffractive\lumerical-sub-wavelength.log

- +8表示DLL将在CMOS模式下工作。在此模式下,DLL认为除T(0,0)之外的所有透射级次的衍射功率为0。T(0,0)的衍射功率由1-R计算,其中R是所有反射级次的衍射功率之和。这是专门为CMOS衍射设计的模式。对于CMOS传感器,光永远不会“透射”,而是被硅层吸收,进一步转换为电能。我们需要重新计算“非反射”功率来近似吸收功率并将它们归于T(0,0)阶。

有关仿真CMOS的更多详细信息将在另一篇文章中讨论。

例如,如果我们将测试模式参数设置为1+8=9,则意味着需要它在CMOS模式下工作并导出日志文件。


提示和注意事项


随机模式和起始/终止X/Y级次

开启随机模式后,建议用户设置X Start = X Stop = Y Start = Y Stop = 0。这与 Diffraction DLL插件在OpticStudio中的工作方式有关。OpticStudio始终调用从(X Start,Y Start)到(X Stop,Y Stop)所有级次的DLL。但是,当随机模式打开时,DLL仅使用 (X Start,Y Start),对其他级次的所有调用都是多余的,并且会大大降低仿真速度。

\

另一方面,如果用户想使用X/Y起始/终止级次,随机模式需要为0,这意味着随机模式已关闭。