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

2024-04-03 14:04

本文主要是介绍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,这意味着随机模式已关闭。

图片

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



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

相关文章

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

Java整合Protocol Buffers实现高效数据序列化实践

《Java整合ProtocolBuffers实现高效数据序列化实践》ProtocolBuffers是Google开发的一种语言中立、平台中立、可扩展的结构化数据序列化机制,类似于XML但更小、更快... 目录一、Protocol Buffers简介1.1 什么是Protocol Buffers1.2 Pro

Java实现TXT文件导入功能的详细步骤

《Java实现TXT文件导入功能的详细步骤》在实际开发中,很多应用场景需要将用户上传的TXT文件进行解析,并将文件中的数据导入到数据库或其他存储系统中,本文将演示如何用Java实现一个基本的TXT文件... 目录前言1. 项目需求分析2. 示例文件格式3. 实现步骤3.1. 准备数据库(假设使用 mysql

Python实现数据可视化图表生成(适合新手入门)

《Python实现数据可视化图表生成(适合新手入门)》在数据科学和数据分析的新时代,高效、直观的数据可视化工具显得尤为重要,下面:本文主要介绍Python实现数据可视化图表生成的相关资料,文中通过... 目录前言为什么需要数据可视化准备工作基本图表绘制折线图柱状图散点图使用Seaborn创建高级图表箱线图热

MySQL数据脱敏的实现方法

《MySQL数据脱敏的实现方法》本文主要介绍了MySQL数据脱敏的实现方法,包括字符替换、加密等方法,通过工具类和数据库服务整合,确保敏感信息在查询结果中被掩码处理,感兴趣的可以了解一下... 目录一. 数据脱敏的方法二. 字符替换脱敏1. 创建数据脱敏工具类三. 整合到数据库操作1. 创建服务类进行数据库