新聞動(dòng)態(tài)

News Center

Lumerical FDTD仿真中的數(shù)據(jù)傳遞

發(fā)布日期:
2022-05-20

瀏覽次數(shù):

以下文章來源于微信公眾號(hào):硅光口袋?,作者李子正



Lumerical軟件具有較強(qiáng)的擴(kuò)展性,可以仿真波長量級(jí)光電器件中的各種現(xiàn)象。軟件官網(wǎng)提供了各方向的基礎(chǔ)案例,利用自帶的腳本語言和數(shù)據(jù)傳遞流,將一部分功能打包以供調(diào)用。我們?cè)谶M(jìn)行自己領(lǐng)域內(nèi)的仿真時(shí),可以借鑒案例思路,使用腳本控制整個(gè)仿真過程。這方面的教程基本沒有,導(dǎo)致我自學(xué)軟件的時(shí)候浪費(fèi)了大量時(shí)間,這期借助一個(gè)簡單的例子:彎曲波導(dǎo)插入損耗的掃描,總結(jié)FDTD仿真中數(shù)據(jù)傳遞的方式,以及腳本控制該過程的方法。



首先,用如下一張動(dòng)圖來表達(dá)軟件中指令和數(shù)據(jù)的關(guān)系。這里我用編程中常見的語言來類比(如云朵中所示),黑色箭頭代表指令的傳遞方向,紅色箭頭代表結(jié)果數(shù)據(jù)的返回方向?!癝cript File Editor”是個(gè)編譯器,其語法類似C和matlab的混合體,也支持python,用它可以控制仿真的整體運(yùn)行,這就像主函數(shù)調(diào)用各個(gè)自定義函數(shù)并對(duì)變量進(jìn)行操作的過程,結(jié)果各函數(shù)會(huì)將結(jié)果數(shù)據(jù)返回。“Optimizations and Sweeps'是用來實(shí)現(xiàn)參數(shù)化掃描和優(yōu)化的模塊,相當(dāng)于一個(gè)自定義函數(shù),可以被主函數(shù)調(diào)用。剩下的部分都在項(xiàng)目樹中,“model”代表整個(gè)仿真模型,是極大的父類,包含了仿真區(qū)、結(jié)構(gòu)組、分析組、光源等子類,而波導(dǎo)、微環(huán)、監(jiān)視器等則是子類的子類,子子類。這些子類中包含了各種可調(diào)參數(shù),包括位置、尺寸、材料等,以及用于記錄有限時(shí)域差分結(jié)果的數(shù)組變量,包括電場、磁場、透射譜等。


Lumerical FDTD仿真中的數(shù)據(jù)傳遞


該流程圖以FDTD Solutions為基準(zhǔn),可以推廣至其他幾個(gè)孿生軟件。接下來,用一個(gè)很簡單的測彎曲損耗的例子說明該過程,模型就是一個(gè)槽波導(dǎo),如下圖。我們要實(shí)現(xiàn)的是一鍵掃描在不同彎曲半徑條件下,波導(dǎo)的插入損耗,并將相應(yīng)的結(jié)果圖畫出來。


Lumerical FDTD仿真中的數(shù)據(jù)傳遞


接下來按照前面的流程圖,描述具體設(shè)置。在父類model中,在設(shè)置頁面設(shè)置變量bending_radius記錄波導(dǎo)的彎曲半徑,該參數(shù)可以被傳遞到任何子類內(nèi),只需在設(shè)置頁面用腳本設(shè)置即可,具體如圖中所示。與使用其他仿真軟件類似,所有的設(shè)置盡量參數(shù)化(也就是盡量用自變量彎曲半徑來表達(dá)其他變量),這樣后續(xù)想要自變量時(shí),其他內(nèi)容都會(huì)隨之改變,可以省去很多麻煩。


Lumerical FDTD仿真中的數(shù)據(jù)傳遞

Lumerical FDTD仿真中的數(shù)據(jù)傳遞


槽波導(dǎo)結(jié)構(gòu)是用圖中的90 degree bend結(jié)構(gòu)組定義的,其下嵌套三個(gè)子結(jié)構(gòu)組,分別代表中間彎曲波導(dǎo)、左側(cè)直波導(dǎo)和右側(cè)直波導(dǎo)三部分。變量bending_radius由父類定義,記錄波導(dǎo)的彎曲半徑。在設(shè)置頁面腳本內(nèi)定義波導(dǎo)的寬度為0.6um,槽寬度為0.3um,通過設(shè)置mesh order實(shí)現(xiàn)覆蓋開槽。



Lumerical FDTD仿真中的數(shù)據(jù)傳遞

Lumerical FDTD仿真中的數(shù)據(jù)傳遞

Lumerical FDTD仿真中的數(shù)據(jù)傳遞


類似地,在存放監(jiān)視器的分析組IL_cal中,父類中定義過的變量bending radius可以直接調(diào)用,在設(shè)置頁面定義監(jiān)視器的參數(shù)。同時(shí),在分析頁面調(diào)用監(jiān)視器FDTD計(jì)算得到的結(jié)果,給出計(jì)算插入損耗的定義,設(shè)置分析組返回插入損耗和波長兩個(gè)結(jié)果。這兩個(gè)返回值可以選擇返回到父類model中,統(tǒng)一管理方便調(diào)用,這個(gè)例子很簡單只有一個(gè)分析組,所以不返回。雖然在流程圖里沒有體現(xiàn),但分析頁面的作用也相當(dāng)于自定義函數(shù),對(duì)于監(jiān)視器有限時(shí)域差分得到的結(jié)果,包括電場、磁場、時(shí)域頻域譜等,可以進(jìn)行取相位,計(jì)算時(shí)延色散,以及很多對(duì)于計(jì)算結(jié)果的初步處理。



Lumerical FDTD仿真中的數(shù)據(jù)傳遞

Lumerical FDTD仿真中的數(shù)據(jù)傳遞

Lumerical FDTD仿真中的數(shù)據(jù)傳遞



這樣項(xiàng)目樹部分就設(shè)置好了,其他不發(fā)生改變的部分例如襯底、包覆層、光源波長范圍、監(jiān)視器監(jiān)視內(nèi)容等,可以將其看成常量,直接設(shè)置即可。這里為了簡便我沒有特別設(shè)置網(wǎng)格,可以將網(wǎng)格的參數(shù)定義在父類model里隨其他參數(shù)變化,也可以直接手動(dòng)定義,是具體情況而定。軟件里有三種組,布局組只有定義位置坐標(biāo)的作用,結(jié)構(gòu)組可以實(shí)現(xiàn)繞xyz三個(gè)軸的任意角度旋轉(zhuǎn)。結(jié)構(gòu)組和分析組涉及到參數(shù)傳遞,可以進(jìn)行父類到子類的繼承,可以選擇將這兩類的參數(shù)定義在父類model中進(jìn)行統(tǒng)籌管理。只有分析組具有自定義函數(shù)的功能,通過在上面提到的在分析頁面中寫腳本,可以實(shí)現(xiàn)各種功能。



相信有些朋友也有這樣的感受:在草稿紙上計(jì)算大量點(diǎn)坐標(biāo),構(gòu)建了一個(gè)非常復(fù)雜的模型,滿懷期待地點(diǎn)擊運(yùn)行之后,經(jīng)過長達(dá)十幾小時(shí)的等待,發(fā)現(xiàn)結(jié)果不盡人意,這時(shí)看著自己的模型,發(fā)現(xiàn)有些結(jié)構(gòu)上的坐標(biāo)已經(jīng)忘記當(dāng)時(shí)是怎么算的,想起來之后開始修改,發(fā)現(xiàn)牽一發(fā)而動(dòng)全身,又得把所有點(diǎn)的坐標(biāo)重新算一遍。所以,在整個(gè)設(shè)置過程中,能參數(shù)化的地方盡量參數(shù)化,包括comsol等類似的軟件,這會(huì)使整個(gè)工程自動(dòng)化,后續(xù)不管是優(yōu)化掃描還是導(dǎo)出到python、matlab處理,都方便很多,修改參數(shù)的時(shí)候也非常省心。

完成了項(xiàng)目樹部分的設(shè)置,接下來進(jìn)行器件設(shè)計(jì)中較常見的操作——參數(shù)掃描。軟件中將掃描、優(yōu)化、蒙特卡洛仿真和S參數(shù)提取放在了一個(gè)集合內(nèi),較常用的還是掃描。掃描可以多級(jí)嵌套,也可以作為子過程嵌套在優(yōu)化中?,F(xiàn)在有比較成熟的python的接口,做優(yōu)化或者基于優(yōu)化進(jìn)行逆設(shè)計(jì)都可以實(shí)現(xiàn)。這里只進(jìn)行對(duì)自變量彎曲半徑的掃描,直接用腳本編輯器完成,如下圖所示。


Lumerical FDTD仿真中的數(shù)據(jù)傳遞


當(dāng)然手動(dòng)設(shè)置也是可行的,掃描和優(yōu)化存在嵌套時(shí)可能手動(dòng)設(shè)置還更省心一點(diǎn)。如果先不運(yùn)行掃描,只執(zhí)行runsweep()函數(shù)之前的代碼,就在Optim-ization and Sweeps頁面得到掃描sweep_IL??梢钥吹?,參數(shù)和結(jié)果均符合腳本編輯器中的設(shè)置。


Lumerical FDTD仿真中的數(shù)據(jù)傳遞


執(zhí)行整個(gè)腳本,指令下達(dá)到Optimization and Sweeps,該函數(shù)循環(huán)十次,將父類中的變量bending_radius從小到大設(shè)置為從1um到20um的長度值,每次循環(huán)執(zhí)行一次FDTD仿真,計(jì)算當(dāng)前彎曲半徑下的結(jié)果,并將每次的兩個(gè)結(jié)果返回值記錄在數(shù)組IL和lamda中。整個(gè)流程遵循本文在前面的動(dòng)圖,實(shí)現(xiàn)對(duì)于不同彎曲半徑下波導(dǎo)插入損耗的計(jì)算,結(jié)尾處結(jié)果圖會(huì)直接彈出。這里再來看一下點(diǎn)擊運(yùn)行腳本后,仿真區(qū)的變化過程。


Lumerical FDTD仿真中的數(shù)據(jù)傳遞


除了FDTD以外,對(duì)于MODE,DEVICE,INTERCONNECT,本文提到的規(guī)律也有效,幾個(gè)軟件之間模型結(jié)構(gòu)是可以直接ctrl+c,ctrl+v的,處理數(shù)據(jù)的方式,寫腳本的語法,也基本一致。在仿真更加復(fù)雜的目標(biāo)時(shí),變量和監(jiān)視器繁多,搞清楚數(shù)據(jù)的傳遞方式會(huì)顯得更加重要。


相關(guān)推薦

【Lumerical系列】一種高效多模耦合/(解)復(fù)用的新方案
本期文章將介紹一種通過引入硅平面光波電路(PLC)作為中間體來實(shí)現(xiàn)高效多...
用于光子集成電路的集成微透鏡和光柵耦合器
本文介紹了一種用于光子集成電路光纖-波導(dǎo)耦合系統(tǒng)的多尺度仿真工作流程。光...
【2024 R2】Ansys Fluent 電池?zé)崾Э睾彤a(chǎn)氣模型案例教程
01簡要說明‐ Ansys Fluent 2024R2版本正式發(fā)布了電池...
Zemax | 如何在OpticStudio內(nèi)對(duì)斜切端面光線進(jìn)行建模
本文介紹了如何在 OpticStudio 中對(duì)具有一定角度斜切端面的接收...