专栏首页硅光技术分享光学仿真的常用数值方法

光学仿真的常用数值方法

我们常常会对一些光学结构进行仿真设计,一款好用的仿真软件是必不可少的。深入了解这些仿真工具的工作原理,有助于我们更有效地选择与利用这些工具,得到合理的结果。工欲善其事,必先利其器。这一篇整理下几种常用的电磁学仿真方法。

先上Maxwell方程组镇楼,

Maxwell方程组是一组偏微分方程组,电磁仿真的过程就是在求解Maxwell仿真。不同的数值方法,也就是不同的求解方法。

1. BPM方法

BPM的全称是beam propagation method, 即光束传播法。它通过求解Helmholtz方程得到光场的分布,

假设E(x,y,z)满足缓变包络近似条件, 经过一定的计算,可以得到下面的式子,

z+delta_z处的光场可以通过z处的光场求得,这正是BPM的核心思想所在。其计算过程是将结构沿着传播方向分成若干个传播截面,基于初始位置处光场的分布,一步步算出每个传播截面上的光场分布,整个过程类似光束在一步步向前传输,示意图如下,

(图片来自 https://nanohub.org/resources/16841/watch?resid=16845)

由于使用了缓变包络近似的条件,BPM方法适用于计算折射率对比度不是很大的波导。BPM方法对电脑硬件的要求不是很高,计算时间较短。对于对比度比较大的波导体系,选用BPM方法是不合适的。

2. FDTD方法

FDTD方法的全称是finite difference time-domain method, 即有限时域差分法。其基本思想是将Maxwell方程组的微分方程转换为差分方程,将空间域和时间域进行离散化处理。根据初始时刻t的电场分布,求解差分方程组,得到下半个时刻的磁场分布,进而得到下一时刻的电场分布,如此迭代下去(类似蛙跳),交替求解各个时刻不同空间位置处的电场与磁场分布, 示意图如下。

(图片来自http://www.ece.utah.edu/~ece6340/LECTURES/lecture%2014/FDTD.pdf)

通过对求解到的时域电磁场进行傅里叶变换,就可以得到系统电磁场的稳态分布。求解过程中,空间中任一位置处的E分量和H分量,如下图所示,

(图片来自http://ammar-hakim.org/sj/je/je7/je7-dual-yee.html)

上图这个立方体结构称为Yee元胞。图中E的三个分量分别在元胞的边上,而H的三个分量位于元胞的面上,H被E环绕。这样处理有助于后续的差分计算。

FDTD方法精确求解Maxwell方程组,使用的范围比较广泛。它适用于计算一些波长量级的结构,它对硬件的要求相对较高。

3. FEM方法

FEM方法的全称是finite element method, 即有限元法。其基本思想是将所需求解的物理结构划分为多个小的单元,对每个单元分别进行偏微分方程的求解(并不局限于Maxwell方程组,可以是其他方程,例如热传导方程),再将每个单元求得的数值进行整合,得到整个系统的电磁场分布,如下图所示。整个过程先化整为零,然后集零为整。

(图片来自http://web.mit.edu/16.810/www/16.810_L4_CAE.pdf)

有限元方法的优势之一是可以灵活地设置网格单元,特别是一些不太规则的形状。而在FDTD中,网格单元通常为矩形,对于不太规则形状的设置不是很方便。

有限元方法的另外一个优势可以同时对多种物理过程进行仿真,例如同时仿真光学过程和热学过程。

以上是对三种常用的电磁仿真计算方法的简单介绍。BPM适用于器件尺寸远大于波长的情况,而FDTD和FEM方法算的更加准确点,代价是对系统硬件资源的要求更高。FDTD和FEM方法,都是Maxwell方程组进行离散化处理,FDTD在时间域求解,而FEM在频域求解,它不太方便计算系统对宽波段的响应。这几种方法各有利弊,需要根据实际情况选择合适的方法。

文章中如果有任何错误和不严谨之处,还望大家不吝指出!

本文分享自微信公众号 - 光学小豆芽(photonwalker),作者:Photonwalker

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-11-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 日光灯的正确打开方式

    昨晚家里日光灯坏了,灯管两头微微亮,中间部分点不亮。老婆觉着是灯管坏了,但我凭借书本上日光灯知识的理解,觉得是镇流器坏了,达不到高电压。我们带着灯管去五金店,试...

    光学小豆芽
  • 光芯片上的全光脉冲神经网络

    Nature昨天刊登了德国明斯特大学的一篇最新进展,研究人员在光芯片上实现了脉冲神经网络(spike neural network)。先睹为快,这篇笔记主要介绍...

    光学小豆芽
  • 中日量子通信卫星对比

    本周一Nature Photonics报道:日本NIST利用超小型卫星实现量子通信。听到这个新闻,先是愣了下,日本啥时候也发量子卫星了?都没怎么看到什么相关报道...

    光学小豆芽
  • 漫谈 SLAM 技术(上)

    本文对 SLAM 技术及其发展进行简要介绍,分析视觉 SLAM 系统的关键问题以及在实际应用中的难点,并对 SLAM 的未来进行展望。

    DancingWind
  • OpenLayers3基础教程——加载资源

    你可以在OL官网去下载,下载地址为http://openlayers.org/download/,也可以去我的百度云盘下载,下载地址为http://pan.ba...

    lzugis
  • 出资500寻大神求解极值问题

    在学习极值寻优过程中一道题可把我给难倒了,苦苦奋斗几日始终无法求的解,故一咬牙一跺脚决定出资五百元寻求一位数学大神来解答我的疑惑,废话不多请看题。

    艾木樨
  • 使用Excel的分析工具来进行变量求解(一元一次,一元多次,多元多次)

    单变量是规划求解的简化版,顾名思义就是一元函数的求解,而规划求解不管是一元一次,还是一元多次都可以运算。

    逍遥之
  • 组合求解器 + 深度学习 =?这篇ICLR 2020论文告诉你答案

    GitHub 链接:https://github.com/martius-lab/blackbox-backprop

    机器之心
  • 前后端分离使用pagehelper

    因为项目需要实现分页显示,所以需要重新写之前 的SQL语句,但是按照笔者以前的思路,是准备使用两条SQL语句配合使用实现分页查询的就比如下图;

    萌萌哒的瓤瓤
  • 使用Substrate开发区块链存证dApp

    前面文章介绍了在Substrate上开发智能合约,包括使用原生的ink!语言开发ERC20智能合约,以及将以太坊的Solidity智能合约跑在Substrate...

    jasonruan

扫码关注云+社区

领取腾讯云代金券