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

2024-04-10 20:12

本文主要是介绍Ansys Zemax | 如何将光栅数据从Lumerical导入至OpticStudio(下),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

图片

附件下载

联系工作人员获取附件

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

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

介绍

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

示例

本文提供了8个示例供用户参考。第一个示例是用于演示如何建立光栅的简单光栅。接下来的3个示例(2-4)演示了文章Speos Lumerical Sub-wavelength Model中提供的同样的json示例。最后4个示例(5-8)模拟了CMOS背向衍射效应。该系统包含一个手机镜头模型和一个衍射表面,该表面读取一个json文件,用于模拟CMOS传感器上的背向衍射效应。

1. Simple_period_4um-2023R1.zar

在此示例中,请特别检查我们对光源使用的波长是否与.json文件中定义的波长相同。此外,衍射面两侧的折射率也应与.json文件中定义的相同。

图片

2. triangular_lattice_reflector.zar

在此示例中,json文件加载到了物体2衍射光栅的表面1上。

图片

由于我们将光源设置为宽带波长,因此可以看到衍射光栅引起的“彩虹”。

图片

图片

3. grating1D_x.zar

此示例与上一个示例类似。唯一的区别是我们将json文件替换为一维光栅示例。

图片

4. FDTD_1D_diffraction_grating_export.zar

在此示例中,我们在玻璃平板上放置了一个圆形光栅。准直光束入射到该光栅上,光栅将光线衍射到一个满足全反射条件的大角度,然后衍射光线在玻璃平板内传播。这展现了关于AR光波导如何工作的非常基本的概念。

图片

值得一提的是此示例的设置。如下所示,物体2和3重叠。根据嵌套规则,重叠部分的表面属性将由编辑器中物体编号较大的物体决定。在此示例中,此重叠部分的表面属性将由物体3的表面1决定,提供衍射功能。

图片

另外值得一提的是,我们之所以这样建立系统,是因为坐标系统。首先,我们可以通过从物体属性中选中“绘制局部坐标轴”选项来查看物体3的局部坐标,如下所示。可以看到,物体3的z轴指向内侧。

图片

另一方面,如果我们查看json文件,可以看到它假设-z侧(n_lower)的折射率为1.565,+z侧(n_upper)的折射率为 1.0。这就是为什么我们需要将物体3放置在玻璃平板之外,但将其与玻璃平板(物体2)重叠。另请注意,这也是为什么物体3的材料是空白的,意味着折射率为1.0,这确保了+z侧的折射率为1.0。同样地,物体3的-z侧折射率为1.565,来自物体2(玻璃平板)的材料属性。

通过这样做,我们可以确保 .json文件中的折射率条件与OpticStudio中的设置相匹配。请注意,json文件中的数据进一步来自Lumerical中的设置。从根本而言,在将json文件分配到物体时,我们是将Lumerical和OpticStudio中物体之间的坐标系相匹配。

图片

5. Plan_B_period_1um-2023R1.zar

6. Plan_B_period_1um_use_real_IR_coating-2023R1.zar

下图展示了Plan_B_period_1um_use_real_IR_coating-2023R1.zar中的数据。

图片

7. Plan_B_period_4um-2023R1.zar

8. Plan_B_period_4um_use_real_IR_coating-2023R1.zar

下图展示了Plan_B_period_4um_use_real_IR_coating-2023R1.zar中的数据。

图片

这篇关于Ansys Zemax | 如何将光栅数据从Lumerical导入至OpticStudio(下)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/892029

相关文章

javaScript在表单提交时获取表单数据的示例代码

《javaScript在表单提交时获取表单数据的示例代码》本文介绍了五种在JavaScript中获取表单数据的方法:使用FormData对象、手动提取表单数据、使用querySelector获取单个字... 方法 1:使用 FormData 对象FormData 是一个方便的内置对象,用于获取表单中的键值

Rust中的BoxT之堆上的数据与递归类型详解

《Rust中的BoxT之堆上的数据与递归类型详解》本文介绍了Rust中的BoxT类型,包括其在堆与栈之间的内存分配,性能优势,以及如何利用BoxT来实现递归类型和处理大小未知类型,通过BoxT,Rus... 目录1. Box<T> 的基础知识1.1 堆与栈的分工1.2 性能优势2.1 递归类型的问题2.2

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate