首页/文章/ 详情

Lumerical Python API (二) - 初始配置

1月前浏览936
Lumerical各仿真软件 (如FDTD, DEVICE, INTERCONNECT) 与Python编程语言的交互,依靠仿真软件预留的接口Python API实现,这种接口具体而言就是一个叫做lumapi的Python库。导入lumapi库并初始化会话即可实现仿真软件与Python的交互,该过程需要GUI lisence。
Lumerical的求解器附带了一个基本的Python 3发行版供用户使用[1],可以直接从软件安装路径中的\Lumerical\v221\python-3.6.8-embed-amd64\打开python.exe并导入lumapi库:

import lumapi

python的开发工具很多,个人习惯用pyCharm写代码,接下来以pyCharm为例,介绍使用Lumerical自带的Python配置新工程的过程。新建pyCharm工程时,在图1中黄圈位置,选择Lumerical自带Python作为解释器,在安装路径"Lumerical\\v221\\python-3.6.8-embed-amd64\\"下选python.exe即可 (不同版本的路径可能略有不同)。这样建立的工程,可以用pip等工具安装和管理包。

图一  使用Lumerical自带Python配置pyCharm工程

如果不使用Lumerical自带的Python作为解释器,用户想用自己配置的anaconda环境来使用Python,那就需要将lumapi的父目录附在当前目录上。用append()函数添加带有接口包的路径,让import类可以成功检索到lumapi模块:






import sys, ossys.path.append("C:\\Lumerical\v221\\api\\python\\")  #Win默认路径sys.path.append(os.path.dirname(__file__))
import lumapifdtd = lumapi.FDTD()  #开启FDTD会话
使用append( )函数添加的路径,只在程序运行时生效。如果想直接从其他路径导入lumapi.py文件,可以使用load_source( )函数:






import impapipath = 'C:\\Lumerical\v221\\api\\python\\lumapi.py'  #Win默认路径imp.load_source('lumapi', apipath)
import lumapifdtd = lumapi.FDTD()  #开启FDTD会话

这里需要注意的是,用anaconda搭建环境时,只能选择python的版本,不能具体指定使用哪个python解释器,如图2所示。

图2  用conda环境配置PyCharm工程

所以在用anaconda作为新建工程的环境时,推荐将python版本设置为相同的3.6,如图2红框所示。以Lumerical 2022 R1版本为例,在安装路径Lumerical\\v221\\python-3.6.8-embed-amd64\\python.exe下,有其自带python,版本为3.6.8。如果选用其他版本,例如3.7、3.8等,可能会出现缺乏依赖报错等问题,例如常见的一个情况就是找不到interopapi.dll:

FileNotFoundError: 

    Could not find module 'interopapi.dll' (or one of its dependencies). Try using the full path with constructor syntax.

如果只是简单地将该dll文件复 制到anaconda环境的路径下,是无法和python关联起来的,运行依然会报错。这种由于版本不同导致的问题,解决起来比较麻烦,不如在配置的时候选用版本相同的python作为解释器,避免这类问题出现。当然,正如图1处介绍的,也可以不使用anaconda搭建环境,在新建工程时直接用Lumerical自带的python作为解释器。

本节总结了Python API的初始配置技巧,后续文章会继续介绍会话管理、数据传递等,最终用实际的例子展示该过程。


[1]https://support.lumerical.com/hc/en-us/articles/360041873053-Session-management-Python-API

来源:摩尔芯创
pythonUMLumerical
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-09-29
最近编辑:1月前
摩尔芯创
光学仿真、光学培训、硅基光电子
获赞 6粉丝 5文章 35课程 0
点赞
收藏
作者推荐

【Lumerical案例实操】使用MODE模块中的FDE和varFDTD进行微环的设计和初步仿真

工作原理传统的上下载型微环谐振器(MRR)的基本结构如图1(a)所示,它由两个直波导和一个环形谐振腔构成。当光从输入端耦合进MRR后,会被限制在环形谐振腔内循环传输,对于一些特定波长的光,其在MRR中传输一周之后的相位变化量是2π的整数倍,使得该光会与输入光发生相长干涉,当光不断输入MRR后,光能在MRR中稳定分布,传输和贮存,这就是MRR的谐振态。而其他波长的光无法与输入光发生相长干涉,使其无法在MRR中稳定传输,这就是非谐振态。由相长干涉的条件可知,对于谐振态的光,其会满足公式下式: 式中neff表示波导中光的有效折射率,L为环形谐振腔的长度,m为整数。在耦合区域1中,假设直波导在耦合前后的电场强度的分别为A1和A2,而环形波导中的电场分别为B1和B2。在耦合区域2中,直波导两侧的电场强度分别为A4和A3,对应的环形波导中的电场分别为B4和B3。定义其耦合系数为k,透过系数为t,环形波导内的损耗系数为a,而光在环形波导中传输一周所积累的相位为φ=2πLneff/λ,通过计算可得直通端和下载端的传输响应:由上式可得其传输谱如图1(b)所示。由图可知,MRR的下载端能分离出处于谐振态的波长,因此该结构具有波长选择性,多用于设计波分复用器件。 图1 (a)MRR结构示意图;(b)传输谱图MRR设计仿真实操本次案例我们将展示如何使用MODE进行MRR的设计。本次案例仿真 主要分为如下步骤:建立一个MRR模型。添加FDE求解器,求解波导的群折射率以及耦合长度等参数。添加并设置varFDTD求解器。加入光源以及其他监视器(包括频域监视器,时间监视器等)。运行仿真与结果分析。案例实操:第一步:在进行模型建立时我们可以通过Lumerical软件自带的物件库添加MRR结构,当然也可以通过脚本编写结构与材料模型,这样更有利于结构参数的优化扫描,本次仿真实操选择直接从物件库进行添加。首先是加入SIO2衬底层,其具体参数如图2所示。SI芯层是MRR结构,我们选择直接在物件库中添加,具体参数如图3所示。图2 SIO2衬底层参数图3 MRR具体参数第二步:在进行参数确定时,某些参数我们可以通过计算提前得出。比如MRR的自由光谱范围(FSR)可表示为下式:其中λ表示波长,ng表示群折射率,因此,要想设计特定FSR的MRR,除了需要特定的环形谐振腔长度L,还需要知道波导的群折射率。因此,我们将FDE求解器添加到输入波导附近,如图4(a)所示,通过计算可得波导的群折射率如图4(b)所示,结果显示在1550nm处波导的群折射率约为4.63。FDE求解器的具体参数设置如图5所示。本次案例所设计FSR在1550nm处为25.6nm,通过计算可得所需的环形谐振腔长度L约为20.2μm 。图4 (a)结构示意图;(b)群折射率图5 FDE求解器参数设置除此之外,我们还知道MRR的耦合长度可以由对称和反对称耦合模式的有效折射率之差确定,可由下式表示:因此,我们将FDE求解器放置在耦合区域处,如图6(a)所示。通过计算可得对称和反对称耦合模式的光场图如图6(b)和图6(c)所示,当波导间隙为100nm时,波长在1550nm处的有效折射率差为0.109,于是计算可得耦合长度应该为1427nm。但是实际耦合过程中,弯曲波导部分也会发生部分耦合,因此,耦合长度设置为0就能满足耦合需求了,结合耦合长度就能计算出MRR的半径约为3.1μm。图6 (a)结构示意图;(b)对称模光场图;(c)非对称模光场图第三步:确定好相关参数后,就可以加入varFDTD求解器,其具体参数如图7所示。 图7 varFDTD参数设置光源、频域监视器和时间监视器的具体参数如图8(a-c)所示。图8 (a)光源参数;(b)频域监视器参数;(c)时间监视器参数最终设置完成的示意图如图9所示。图9 仿真示意图MRR是一种高Q值结构,它可以在环形谐振腔中捕获多次往返的光。与非谐振器件相比,高Q值结构需要更长的仿真时间,因此我们将默认的仿真时间(1000fs)增加到5000fs,因为如果仿真时间设置得不够长,会导致仿真结束时并未达到收敛值,使得场衰减,频域监测结果等不准确。此外,光源的波长范围为1.5-1.6μm,过大的光源范围会使得仿真发散,因此修改光源范围为1.53-1.57μm。运行仿真后,可得其传输谱如图10(a)所示,将监视器的波长设置为该MRR的谐振波长,可以得到其在器件中的电场强度如图10(b)所示。图10 (a)传输谱图;(b)电场图注意:MRR的耦合间隙往往会非常小,为了计算结果更精确,应在相应的耦合区域加入mesh,单独设置该区域的网格精度。在使用varFDTD进行仿真时,光源的波长范围不应过大。原因在于模式求解器是计算光源范围的中心频率处的模式分布,所选模式分布将注入到光源的整个频率范围内,这可能导致注入和反向散射误差。简单来说就是光源中模式求解器是使用频域技术来进行模式的计算,本质上是单频的,默认设置是通过光源的中心频率进行计算。如果频率范围很大,其模场在不同频率范围内会发生变化,这会导致在光源注入的平面范围内发生反射和散射,可以理解为在该频率下实际存在的模场与正在注入的中心频率的模场不匹配。为了避免varFDTD中的这些错误,需要使用较小波长范围的光源。如果需要收集宽带数据,就需运行多次仿真。更多Lumerical产品资讯,欢迎关注摩尔芯创!- END - 近期热门活动推荐 ↓↓ 培训报名|Lumerical光子器件培训班报名进行中! 为支持高等院校、科研院所及事业单位在光学仿真方面的实际应用和开发研究,推动光学设计领域的进步与发展;培养掌握Lumerical软件的光学设计人才,为学员提供优质的学习平台,拓展职业发展路径,摩尔芯创将开展Lumerical光子器件培训班。培训班分为:Lumerical光子器件设计初阶班Lumerical光子器件设计中级班✦关注更多产品资讯关注摩尔芯创摩尔芯创专注于为硅基光电子、电力电子、高科技半导体等行业提供先进的电子设计自动化(EDA)和计算机辅助工程(CAE)协同解决方案;提供从光学、光电子学、电磁场、结构、流体、多物理场耦合等全面的工业软件应用解决方案和咨询服务。来源:摩尔芯创

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈