Lumerical案例 | 2D 偏振分束光柵耦合器
引言
在本例中,介紹了一種用于優化2D偏振分束光柵耦合器(2D PSGC)的光子逆向設計工作流程。2D PSGC應用于光子集成電路(PIC)中以實現偏振分集,從而能夠高效耦合P偏振和S偏振。本示例演示了如何優化2D PSGC以降低峰值插入損耗、增加帶寬并降低偏振相關損耗(PDL)。本示例僅支持在Lumerical 2025 R2.1及更高版本上運行。此外,建議使用GPU進行計算。我們在優化過程中使用了兩塊H100 GPU顯卡(每塊95GB內存)。
概述
本示例將演示如何使用逆向設計方法生成2D PSGC。
本示例大量借鑒了LumOpt框架,可參考文末鏈接[1][2][3]。
步驟1:預優化
在此步驟中,可在預優化項目文件中修改2D PSGC結構以建立初始設計。接下來,執行一個準備腳本,將該項目文件的副本配置為LumOpt的輸入。該腳本還會生成LumOpt所需的其他輸入數據文件,具體說明請參見文末鏈接[4]“Run and Results”部分。此步驟為可選步驟,因為示例中提供的預優化文件已運行過該準備腳本。
步驟2:菱形優化
利用步驟1中生成的文件,我們對2D PSGC進行逆向設計優化。優化完成后,將運行一個腳本以準備步驟3(星形優化)所需的輸入文件。此步驟也可跳過,直接測試步驟3。不過,強烈建議將鉆石優化作為新設計的第一個階段,因為它的運行速度要快得多。
步驟3:星形優化
利用步驟2中獲得的理想解,我們進行第二次反向設計優化,以減小偏振相關損耗(PDL)。
運行和結果
步驟1:預優化
如果您想直接運行該示例,則無需執行此步驟;但若需根據您的需求修改初始設計,則必須進行預優化。
1.在FDTD中打開文件GenO-Si2-dia-Ppol_pre-opt.fsp和GenO-Si2-dia-Spol_pre-opt.fsp。
2.根據需要修改結構組,并運行腳本prepare-input-files_stage2.lsf。
下文所示的PSGC參數化基于參考文獻[1]和[2],而層厚和一般幾何參數(例如波導寬度)則取自參考文獻[3]。
PSGC由帶有兩個taper的2D散射體陣列形成,每個taper連接到一個波導(WG1和WG2)。波導之間的角度(αWG)為π/2,整個結構關于光纖的入射平面是對稱的。散射體排列在兩組共焦橢圓的交點形成的網格上,波導尖端位于遠焦點,如上圖所示。初始設計可以通過調整結構組(psgc-star-fast)中定義的變量(如dspot,Ltaper,和αtaper)進行修改。有關結構組的更多信息,請參閱文末鏈接[5]。
修改GenO-Si2-dia-Ppol_pre-opt.fsp和GenO-Si2-dia-Spol_pre-opt.fsp文件后,運行prepare-input-files_stage2.lsf文件,該文件準備每個偏振(P和S)的仿真文件。腳本首先加載兩個偏振的預優化文件(*pre-opt.fsp),并保存新版本用于優化。在此過程中,腳本還使結構組能夠將關鍵配置數據(如參數、散射體索引和中心位置)保存為.txt文件。
步驟2:菱形優化
1.在FDTD腳本文件編輯器中打開文件GenO-Si2-dia-Ppol.py。
2.根據需要修改優化配置(參數限制、優值中波長的范圍和權重等),然后運行Python腳本。有關優化配置的更多信息,請參閱文末鏈接[5]。
在此,我們加載步驟1中的初始設計和參數,并針對以1310nm為中心的多個波長運行優化,波長范圍為55nm,采樣點數為5個。
品質因數(FOM)定義為S偏振和P偏振之間的最小耦合效率,且禁用偏振相關損耗(PDL)懲罰項(difference_weight=0)。
在這種情況下,設計參數是圖中所示每個菱形散射體的距離p1,q1,p2和q2。
由于對稱性,有406個獨立的散射體用于優化,它們對應于結構的上半部分(正y軸)。每個散射體有4個參數(p1,q1,p2,q2),但沿二等分線(對稱平面)的散射體只有2個。因此,總共有1568個獨立參數將進行優化。
在此,優化在經過約22小時、44次迭代后終止,總優值約為0.52。
步驟3:星形優化
1.打開prepare-input-files_stage3.lsf文件,如果使用與步驟2不同的迭代以獲得理想設計,請更新步驟3中的pre_opt_file_fullname和pre_coopt_file_fullname。
2.在FDTD腳本文件編輯器中打開GenO-Si2-star-Ppol.py。
3.根據需要修改優化配置,并運行Python腳本。
4.優化完成后,運行best_design文件夾中的best_design_analysis.lsf文件,以比較初始設計、理想菱形設計和理想星形設計的耦合效率譜。該腳本還會為這三種設計生成GDS文件。
這里,FOM與步驟2相同,但啟用了PDL懲罰項(difference_weight=0.1)。除了步驟2的設計參數p1,q1,p2和q2(菱形優化)之外,這里引入了參數r1,s1,r2和s2來生成星形散射體,如圖所示。
由于此情況下每個散射體有四個附加參數,因此有3136個獨立參數進行優化(與菱形散射體的對稱性考慮相同)。在此,優化在經過約14小時、18次迭代后終止,總品質因數約為0.52。需注意,由于PDL懲罰項的存在,本例中的FOM初始值為0.28,低于步驟2(無懲罰項)的FOM。
完成所有優化步驟后,我們對比了初始設計與步驟2(菱形)和步驟3(星形)理想設計之間的總耦合效率和PDL,如下圖和下表所示。為方便起見,這些設計的項目文件副本已存放在best_design文件夾中,通過在同一文件夾中運行腳本文件best_design_analysis.lsf,即可重現下方的圖表和表格。請注意,原始項目文件中僅繪制了一半散射體;因此,該腳本會生成包含完整結構的新版本文件(以“_analysis”后綴標識),以便進行GDS提取。
重要模型設置
結構組-模式操作
由于結構組在每個迭代中都會根據每個參數進行更新,因此其設置腳本的性能對于加速網格梯度計算非常重要。
結構組以兩種不同的模式運行:
- "Construction"(full_reset=1):結構組重新生成所有散射體。當橢圓索引集(N1,N2)或除頂點位置以外的任何散射體屬性發生變化時,需要使用此模式。結構組的用戶屬性9-38(參見文末鏈接[6])定義了該模式下的散射體配置。建議在初始設置和優化前使用該配置。
- "Update"(full_reset=0):結構組僅更新散射體的頂點位置,顯著減少了執行設置腳本的時間。因此,本例中的優化配置為在此模式下使用基礎FDTD文件。在此模式下,僅使用結構組的兩個用戶屬性:
- - params:由LumOpt更新的1D數組(所有散射體的參數總數×1)。
- - Config:2D數組(散射體數量x10),包含(N1,N2)和所有散射體的頂點映射。
其他仿真對象
如果結構是對稱的,請分別對P偏振和S偏振使用對稱和反對稱邊界條件。此外,“opt_fields”監視器必須延伸到對稱/反對稱區域。
LumOpt設置-邊界框和參數限制
要定義每個邊界框的位置和大小,使用Bounds類作為輸入到ParameterizedGeometry類中。
get_bounds()函數訪問LumOpt當前使用的參數(current_params),使邊界框在整個優化過程中能夠動態更新。
然而,在當前設置中,邊界框是靜態的,每個散射體的初始位置和邊界距離每個散射體的中心設置為500nm。
如果邊界框的垂直尺寸與opt_fields監視器不一致,則可選擇將[zmin,zmax]包含在返回值中。
params中允許值的范圍由傳遞給ParameterizedGeometry的bounds列表指定。
LumOpt設置-優值(FOM)
本例中使用的FOM基于參考文獻[3],結合了一個軟最小值和PDL懲罰項。它在Python腳本中通過SuperOptimization類實現,使用use_advanced_fom=True參數。
FOM[3]定義為:
其中:
- Ts,i和Tp,i分別是S偏振和P偏振在波長i處的耦合效率。
- wi是每個波長的權重,由target_T_fwd設置。
- α是由SuperOptimization參數中的difference_weight設置的PDL懲罰項。
- Nλ是總波長數。
附加資源
參考文獻
1.A. Mekis et al., "A Grating-Coupler-Enabled CMOS Photonics Platform," in IEEE Journal of Selected Topics in Quantum Electronics, vol. 17, no. 3, pp. 597-608, May-June 2011
2.F.Van Laere, W. Bogaerts, P. Dumon, G. Roelkens, D. Van Thourhout and R. Baets, "Focusing Polarization Diversity Grating Couplers in Silicon-on-Insulator," in Journal of Lightwave Technology, vol. 27, no. 5, pp. 612-618, March1, 2009
3.Peng Sun, Thomas Van Vaerenbergh, Sean Hooten, and Raymond Beausoleil, "Adjoint optimization of polarization-splitting grating couplers," Opt. Express 31, 4884-4898 (2023)
另見
[1]Photonic Inverse Design Overview - Python API
https://optics.ansys.com/hc/en-us/articles/360049853854
[2]Getting Started with lumopt - Python API
https://optics.ansys.com/hc/en-us/articles/360050995394
[3]Optimizable Geometry - Python API
https://optics.ansys.com/hc/en-us/articles/360052044913
[4]Run and Results
https://optics.ansys.com/hc/en-us/articles/45496988997011-2D-Polarization-Splitting-Grating-Couplers#h_01HNW4RPNTT029YRNWJZ6X0WFS
[5]Important Model settings
https://optics.ansys.com/hc/en-us/articles/45496988997011-2D-Polarization-Splitting-Grating-Couplers#toc_3
[6]Appendix
https://optics.ansys.com/hc/en-us/articles/45496988997011-2D-Polarization-Splitting-Grating-Couplers#h_01HNW4RPNVEB02RCHJQ3B9H1ZG
[7]Grating coupler
https://support.lumerical.com/hc/en-us/articles/360042305334
[8]Python API
https://support.lumerical.com/hc/en-us/articles/360034416554
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















