資源中心

News Center

Lumerical Python API (二) - 初始配置

發(fā)布日期:
2023-12-06

瀏覽次數(shù):

Lumerical各仿真軟件 (如FDTD, DEVICE, INTERCONNECT) 與Python編程語言的交互,依靠仿真軟件預留的接口Python API實現(xiàn),這種接口具體而言就是一個叫做lumapi的Python庫。導入lumapi庫并初始化會話即可實現(xiàn)仿真軟件與Python的交互,該過程需要GUI lisence。
Lumerical的求解器附帶了一個基本的Python 3發(fā)行版供用戶使用[1],可以直接從軟件安裝路徑中的\Lumerical\v221\python-3.6.8-embed-amd64\打開python.exe并導入lumapi庫:
??import?lumapi

python的開發(fā)工具很多,個人習慣用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環(huán)境來使用Python,那就需要將lumapi的父目錄附在當前目錄上。用append()函數(shù)添加帶有接口包的路徑,讓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( )函數(shù)添加的路徑,只在程序運行時生效。如果想直接從其他路徑導入lumapi.py文件,可以使用load_source( )函數(shù):
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搭建環(huán)境時,只能選擇python的版本,不能具體指定使用哪個python解釋器,如圖2所示。

Lumerical Python API (二) - 初始配置

圖2? 用conda環(huán)境配置PyCharm工程


所以在用anaconda作為新建工程的環(huán)境時,推薦將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等,可能會出現(xiàn)缺乏依賴報錯等問題,例如常見的一個情況就是找不到interopapi.dll:


FileNotFoundError:?

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

如果只是簡單地將該dll文件復制到anaconda環(huán)境的路徑下,是無法和python關(guān)聯(lián)起來的,運行依然會報錯。這種由于版本不同導致的問題,解決起來比較麻煩,不如在配置的時候選用版本相同的python作為解釋器,避免這類問題出現(xiàn)。當然,正如圖1處介紹的,也可以不使用anaconda搭建環(huán)境,在新建工程時直接用Lumerical自帶的python作為解釋器。

本節(jié)總結(jié)了Python API的初始配置技巧,后續(xù)文章會繼續(xù)介紹會話管理、數(shù)據(jù)傳遞等,最終用實際的例子展示該過程。


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


Lumerical Python API (二) - 初始配置



相關(guān)推薦

Lumerical 薄膜鈮酸鋰電光相位調(diào)制器
在這個示例中,我們基于Mercante等人的工作[1]模擬了一種薄膜鈮酸...
Lumerical 單行載流子光電探測器仿真方法
綜述在本例中,我們將研究混合硅基光電探測器的各項性能。單行載流子(uni...
使用 Lumerical 對鐵電波導調(diào)制器進行仿真應用
01說明在本例中,我們仿真了使用BaTiO2的鐵電波導調(diào)制器,BaTiO...
Lumerical 單光子雪崩二極管仿真
01說明二次光子在單光子雪崩探測器(SPAD)的雪崩過程中被發(fā)射,它們對...