Ansys Zemax | 如何模拟双折射偏振器件

这篇文章介绍了什么是双折射现象、如何在OpticStudio中模拟双折射 (birefringence)、如何模拟双晶体的双折射偏振器以及如何计算偏振器的消光比。(联系我们获取文章附件)

什么是双折射现象

一般的光学材料都是均匀的各向同性的,也就是说无论光从哪个方向穿过材料,其折射率都保持一致。对于单轴材料来说,例如方解石 (Calcite),其晶轴定义了材料的对称轴。这类材料对光线的偏折能力随入射光的偏振态及入射光与晶轴的夹角不同而不同。因此对于任意一束光,两个正交的偏振态下可能存在不同的折射角。这种现象称为光的双折射。

光线在双折射材料中的折射总是遵循斯涅耳定律 (Snell`s Law) 的,但是材料中的有效折射率与入射光的偏振态和入射方向与晶轴夹角相关。其中“寻常光 (Ordinary)”的折射角由下式定义:

其中no为寻常光的折射率,这是斯涅耳定律的一般形式。“非寻常光 (Extraordinary)”的折射角由下式定义:

该式同样遵循斯涅耳定律,但是此时的折射率是角度θw的函数,该角度表示晶轴向量a和折射光波矢k的夹角。

光线向量S指向能量传播方向。在普通材料中,光线向量S与波矢k为同一向量,此时我们使用k表示。但在双折射材料中,光线向量S与波矢k的方向存在较小的夹角,因此需要单独考虑。其中向量S和k与晶轴向量a共面且满足:

非寻常光的有效折射率由下式定义:

其中ne为非寻常折射率。

双折射输入面

准确的进行双折射光线的追迹要比追迹普通光线复杂的多:我们必须分别考虑寻常光和非寻常光的折射率和波矢方向。因此双折射光线追迹功能只在光线入射到双折射输入 (Birefringent-In) 表面时开始执行,在双折射输出 (Birefringent-Out) 表面结束。并且在双折射输入和双折射输出表面之间只允许存在坐标间断 (Coordinate Break) 表面。

在寻常光追迹中,光线向量S和波矢k的方向一致,因此OpticStudio使用寻常光的波矢k的分量来定义光线的方向余弦。

在非寻常光追迹中,k、S和晶轴向量a处于同一平面但不重合,因此使用S的分量定义光线的方向余弦。

以下为模拟一块方解石晶体双折射的示例,其中虚线表示晶轴:

入射光线入射到方解石晶体上并分裂为两个方向的光线。其中寻常光线产生正常的折射,由于入射表面为平面,因此光线没有发生偏折。非寻常光线则产生双折射,因此即便光线正入射平面也产生了偏折。

下图为OpticStudio中有关双折射晶体的设置:

光线在入射到双折射输入面之前都是按照正常情况进行光线追迹。双折射输入表面与标准表面一样(可定义为圆锥面),此时材料使用的是CALCITE,OpticStudio将使用该材料折射率进行寻常光光线追迹。OpticStudio将在相同的材料库中寻找材料名为CALCITE-E的材料,并使用该材料折射率进行非寻常光光线追迹。通过使用两种实际材料,追迹过程可以考虑材料的所有属性(透过率、色散和热膨胀属性等)。

晶轴方向与表面法向量的夹角在双折射输入表面中定义:

在双折射输入面的局部坐标系下直接输入晶轴的方向余弦。其中参数“显示轴线 (Draw Axis)”用来定义布局图中表示晶轴的虚线的长度(透镜单位)。如果您不想显示晶轴则设置该参数为零即可。

您可能会对布局图中的结果存在一些疑问:光线因双折射而分裂为寻常光和非寻常光两个分量,但是在序列模式下光线是无法产生分裂的(这意味着输入一条光线时输出也是一条光线)。实际上OpticStudio执行了两次光线追迹分别追迹两种情况,并使用模式参数 (Mode Flag) 来决定当前光线追迹的类型:

·如果模式参数为0,则将追迹寻常光线

·如果模式参数为1,则将追迹非寻常光线

上文中显示的布局图同时显示了多重结构下模式参数为0和模式参数为1的结构:

双折射偏振器件

模拟双折射偏振器件通常需要使用两块双折射材料,并且材料的晶轴方向存在一定夹角。例如洛匈偏振器 (Rochon polarizer) 使用两块双折射棱镜组成偏振器(本例为KDP晶体):

在这个偏振器中,两块KDP晶体材料的棱镜以晶轴夹角为90°组合在一起,如上图所示。第一块棱镜的晶轴(上图橙色虚线表示)的方向余弦为 (0, 0, 1),与局部Z轴重合。在第二块棱镜中,晶轴的方向余弦为 (0, 1, 0),与局部X轴重合。这些参数都是在双折射输入表面中输入的。您可以输入任意方向余弦来定义以表面顶点为起点的晶轴方向。

当光线穿过双折射材料时,材料的折射率在偏振态P和S下并不相同。(需要注意的是偏振态S和前文中的向量S不同。S向量为光线向量,表示光能量的传播方向。与该向量相联系的电场垂直于S,向量S实际上是偏振态S和P在该方向上的叠加。同样需要注意的是在双折射介质中,偏振态S和P方向的定义与其他计算如镀膜和菲涅尔表面效应计算中所指的偏振方向并不相同。)在双折射介质中,S和P表示与晶轴垂直或平行的方向,而不是参考于表面法向量。其中寻常光的折射率为垂直方向(S偏振态)的折射率,非寻常光的折射率为平行方向(P偏振态)的折射率。

如果模式参数为0,则系统追迹寻常光线(只包含S分量),P分量光的透过率为0。如果设置模式参数为1则系统追迹非寻常光线,S分量光的透过率为0。

这个方法可以正确设置每个模式的透过率,但如果想得到总透过率,则需要将每种模式的光组合叠加在一起。如果系统中包含2组双折射面,则共需要进行4次光线追迹;如果系统中有3组双折射面,则共需要进行8次光线追迹,以此类推。

对于该偏振器来说,我们需要设置4个结构以表示4次光线追迹:

对于每个结构来说:

结构1:追迹了晶体1中的寻常光和晶体2中的寻常光

结构2:追迹了晶体1中的寻常光和晶体2中的非寻常光

结构3:追迹了晶体1中的非寻常光和晶体2中的寻常光

结构4:追迹了晶体1中的非寻常光和晶体2中的非寻常光

之后我们需要将各个结构的场振幅 (field amplitudes) 叠加在一起,而不是强度叠加在一起。这一点非常关键,我们之后将详细讨论。

计算消光比

在本节使用的示例文件中我们可以看到,第二块晶体的非寻常折射率使光线在晶体与晶体的交界面发生了偏折。在第一块晶体中,光轴方向与局部Z轴一致,因此不同偏振态光线的折射率相同。需要注意的是,在双折射介质中S偏振所在的平面与晶轴垂直,P偏振所在平面与晶轴平行。因此当光线沿晶轴方向入射时,两偏振态的光无法区分。在第二块晶体中,晶轴方向与局部X轴重合,S偏振态仍然与晶轴方向垂直,P偏振态与晶轴平行。此时两种偏振态的光可以被区分开来,因此Y方向上的偏振光在晶体与晶体的交界面上会产生偏折。

在本例中,结构1和3(均追迹晶体2中的寻常光线)的光线不发生偏折,而结构2和4的光线发生双折射偏折。

假设我们需要计算偏振光的消光比。如果通过实验的方法进行测量,我们需要使用Y方向偏振的光入射偏振器并测量透过的光强,再计算X方向的偏振光透过的光强并计算两者之比。实际上这也是OpticStudio计算消光比的方式。唯一复杂的点在于透过的光强为两个结构的相干叠加。因此我们需要先计算场振幅的叠加再计算光强。最简便的方法是使用ZPL宏来完成这一计算过程。

以下是我们需要用到的宏语言关键词(完整的语法请参考用户手册)

POLDEFINE Ex, Ey, PhaX, PhaY:用来定义光线的起始偏振态

POLTRACE Hx, Hy, Px, Py, wavelength, vec, surf:用来对特定的光线在特定的表面上执行偏振光线追迹,并将追迹结果保存在参数vec定义的数组中。数据保存格式如下所示:

2: E-Field X component, real

3: E-Field Y component, real

4: E-Field Z component, real

5: E-Field X component, imaginary

6: E-Field Y component, imaginary

7: E-Field Z component, imaginary

为了计算结构1和结构3中光线的总能量,我们使用以下宏程序进行计算:

数据依照如下格式进行打印:

宏程序的主函数部分如下所示:

使用这段宏追迹轴上光线的消光比时其结果为无穷大;当计算倾斜光线时其结果显示少部分X方向的偏振光穿过了偏振器,因此存在一定的消光比数值:

使用偏振光瞳图 (Polarization Pupil Map) 也可以计算场振幅并查看给定入射偏振态下的透过率,如下图所示:

在实际使用情况中可能存在任意数量的双折射晶体,因此有可能存在更多数量的多重结构。您可以在该功能的参数设置中以空格为间隔输入任意数量的结构进行分析。

小结

这篇文章介绍了在OpticStudio中模拟双折射元件基本技巧:

·OpticStudio在双折射材料中进行光线追迹时会追迹两条光线,这两条光线分别表示寻常光和非寻常光

·使用双折射输入面中的模式参数和多重结构功能可以分析任意偏振态光线的偏振追迹结果

·分析由2个双折射晶体组成的偏振器件需要4个多重结构;分析由3个双折射晶体组成的偏振器件需要8个多重机构,以此类推

·在计算多个结构光的总透过光强时需要计算光线振幅的叠加而不仅仅是光强的叠加

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/15293.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32物联网实战开发(6)——PWM驱动LED灯

PWM驱动LED灯 之前是使用标准库函数配置引脚输出PWM控制呼吸灯,因为开发板上的蜂鸣器是有源的,所以这次还是用来确定LED灯,这次使用的是HAL库,用CubeMX软件初始化PWM功能 PWM输出原理 Period:周期,单位是秒…

语音处理加窗分帧

语音处理加窗分帧 一、分帧 语音数据和视频数据不同,本没有帧的概念,但是为了传输与存储,我们采集的音频数据都是一段一段 的。为了程序能够进行批量处理,会根据指定的长度(时间段或者采样数)进行分段,结构化为我们编程…

Javaweb | 转发、重定向

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 转发 转发与页面跳转 转发 转发的作用在服务器端,将请求发送给服务器上的其他资源,以共同完成一次请求的处理 页面跳转 使用forward跳转时&am…

拍卖小程序开发:从需求分析到设计实现

在当今数字时代,拍卖小程序已经成为了一个重要的销售和交易工具。拍卖小程序的开发不仅能够提供高效的销售渠道,还能够为用户提供全新的购物体验。因此,开发一个拍卖小程序成为了许多商家的首要任务。 拍卖小程序的开发可以帮助商家拓展销售…

Linux下实现共享内存的两种机制(附源码)

START Hello 大家好。 今天来讲一下Linux进程通信中重要的通信方式:共享内存作为Linux软件开发攻城狮,进程间通信是必须熟练掌握的重要技能,而共享内存是在程序开发中常用的也是重要的一种进程间通信方式。 下面我们就来聊一聊Linux下进程间…

pytest自动化框架之allure测试报告的用例描述设置

allure测试报告的用例描述相关方法;如下图 allure标记用例级别severity 在做自动化测试的过程中,测试用例越来越多的时候,如果执行一轮测试发现了几个测试不通过,我们也希望能快速统计出缺陷的等级。 pytest结合allure框架可以对…

每日学术速递4.26

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.AutoNeRF: Training Implicit Scene Representations with Autonomous Agents 标题:AutoNeRF:使用自主代理训练隐式场景表示 作者:Pierre Marz…

SaaS云HIS系统源码功能介绍

SaaS云HIS首页功能:包括工作计划、预警、主功能菜单、医院机构公告。 一、工作计划 1.值班概况:值班日期、值班时间、值班科室(内科、外科等) 2.待处理患者:内科人数、外科人数等 病历统计:入院病历、出…

华为面试题:1+4=5,2+5=12,3+6=21,问8+11=?网友:幼儿园级别

面试,一直都是职场人士绕不过去的坎,对于有的人来说,或许更擅长日常的工作,在面试环节可谓是自己的薄弱环节,但对于有的人来说,相比于工作,更擅长应付面试! 最近,有一位…

《面向基于人工智能的学习健康系统,使用心电图进行人群水平的死亡率预测》阅读笔记

目录 一、摘要 二、十个问题 Q1论文试图解决什么问题? Q2这是否是一个新的问题? Q3这篇文章要验证一个什么科学假设? Q4有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员? Q5论文中提到…

过来人转本考试后的感悟和经验,真的很受用

过来人转本考试后的感悟和经验,真的很受用!转本不仅是分数的较量,也是信息收集、时间管理、学习能力、毅力等等的较量。同学们在转本中难免会遇见一些困难,为了避免走弯路,一起来看看过来人的感悟和经验吧!…

项目范围控制:如何控制项目范围的变化?

一个成功的项目需要在进度、成本和质量之间取得平衡。控制项目交付范围是实现这个平衡的关键。然而,项目范围是会变化的,因此控制项目范围变化是必要的。 如何控制项目范围的变化? 1、了解项目的交付范围 项目经理、团队成员、利益相关者和…

verilog手撕代码3——序列检测和序列发生器

文章目录 前言一、序列检测器1.1 重复序列检测1.1.1 序列缓存对比/移位寄存器法1.1.2 状态机法 1.2 非重复序列检测 二、序列发生器2.1 移位寄存器法2.2 反馈法2.3 计数器法 前言 2023.4.25 2023.4.26 学习打卡,天气转晴 一、序列检测器 1.1 重复序列检测 1.1.1 …

等级保护、风险评估和安全测评分别是什么?

2022-06-17 15:17 迈入“等保2.0时代”以后,我国对于等级保护的要求更为严格和具体。等级保护、风险评估和安全测评这三个词,也因此总是出现在人们的视野之中,还总是被混淆。那这三者究竟分别是什么呢?如何区分它们?它…

【Bus】编写一个Demo虚拟的总线-设备-驱动模型

文章目录 1. 前言2. 总线驱动模型三要素2.1 总线2.2 设备2.3 驱动 3. Demo Code3.1 virt_bus_core.c3.2 virt_device.c3.3 virt_driver.c 4. 工程代码下载地址5. 参考资料 1. 前言 Linux平台为了驱动的可重用性,虚拟了很多的虚拟总线。很经典的就是platform总线&am…

如何编写高质量代码、提高编程效率?

一、 前言 高质量代码是指在满足功能需求的基础上,具备高性能、安全、可扩展、易维护、可测试等特点的代码。它不仅可以提高开发效率和代码质量,更能有效减少代码维护成本,促进团队协作和项目成功。因此,编写高质量代码对程序员来…

【Java】什么是SOA架构?与微服务有什么关系?

文章目录 服务化架构微服务架构 我的一个微服务项目,有兴趣可以一起做 服务化架构 我们知道,早期的项目,我们都是把前后端的代码放在同一个项目中,然后直接打包运行这个项目,这种项目我们称之为单体项目,比…

【Vue】Vue-cli,创建项目设置自定义默认配置

Vue2.0,Vue-cli项目配置 步骤一,打开文件夹,导航栏输入cmd,打开命令行窗口步骤二,输入命令步骤三,选择第三个自定义新建项目步骤四,选择需要的项目模块,空格选择完,回车步…

密码学|AES加密算法|学习记录

AES简介 AES加密是分组加密的一种 明文长度为固定的128位 密钥可长度为128,192,256位 128bit16字节,在AES中我们将数据用4x4字节的矩阵表示。(注排列顺序为先从上到下再从左到右) AES的一般步骤 对于上图最终轮区…