资源中心

News Center

Lumerical Python API (二) - 初始配置

发布日期:
2023-12-06

浏览次数:

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 API (二) - 初始配置

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


如果不使用Lumerical自带的Python作为解释器,用户想用自己配置的anaconda环境来使用Python,那就需要将lumapi的父目录附在当前目录上。用append()函数添加带有接口包的路径,让import类可以成功检索到lumapi模块:
1 import sys, os2 sys.path.append('C:\\Lumerical\v221\\api\\python\\')  #Win默认路径3 sys.path.append(os.path.dirname(__file__))
4 import lumapi5 fdtd = lumapi.FDTD()  #开启FDTD会话
使用append( )函数添加的路径,只在程序运行时生效。如果想直接从其他路径导入lumapi.py文件,可以使用load_source( )函数:
1 import imp2 apipath = 'C:\\Lumerical\v221\\api\\python\\lumapi.py'  #Win默认路径3 imp.load_source('lumapi', apipath)
4 import lumapi5 fdtd = lumapi.FDTD()  #开启FDTD会话


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

Lumerical Python API (二) - 初始配置

图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


Lumerical Python API (二) - 初始配置



相关推荐

Lumerical 薄膜铌酸锂电光相位调制器
在这个示例中,我们基于Mercante等人的工作[1]模拟了一种薄膜铌酸...
Lumerical 单行载流子光电探测器仿真方法
综述在本例中,我们将研究混合硅基光电探测器的各项性能。单行载流子(uni...
使用 Lumerical 对铁电波导调制器进行仿真应用
01说明在本例中,我们仿真了使用BaTiO2的铁电波导调制器,BaTiO...
Lumerical 单光子雪崩二极管仿真
01说明二次光子在单光子雪崩探测器(SPAD)的雪崩过程中被发射,它们对...