LASTIP 軟體主要的操作程序是利用輸入元件的材料系統、結構設定以
及一些初始參數,再經過檔案轉換的過程將原始的輸入檔轉成程式內部計 算用的語言後,便可以執行模擬。詳細的操作流程如下圖所示,其中方框 內的文字敘述與軟體面板上操作按鈕的文字均一致。直得注意的是,在操 作 LASTIP 軟體模擬元件之主要發光波長時,.gain 檔是可先行獨立被操作,
亦即使用者可執行有關於.gain 檔的步驟,來決定元件在此發光波長下活性 層該如何設計,而後再將此一活性層設計(包含量子井寬度與材料各成分比 濃度)輸入至.layer 檔內,再依如下所示步驟進行模擬,即可得到模擬結果。
(1) Setup .layer file
(2) Process .layer file
(3) Generate Mesh file
View Mesh file
Setup .gain file
View gain spectrum
(4) Setup .sol file
(5) Start the simulation
(6) Setup .plt file
(7) View results
將.layer 檔轉換成程式內部計
A.1 步驟一:建立.layer 檔
利用簡單的程式語言架構起元件的結構、材料成份,是最初始的輸入 檔。建立.layer 檔的方法常用的有兩種,一種是先利用程式內建的圖形操作 介面(直接執行〝Draw GUI〞,就會開啟此一介面。)架構起整個結構,再 轉換檔案成.layer 檔;另外一種方式則是直接撰寫.layer 檔。一般而言,如 果是要建立新的結構,往往會使用前者的方式;如果只是要對舊結構作稍 許的修改或調變材料成份,則直接修改.layer 檔會比較方便(在 LASTIP 軟 體中,所有參數的單位均設定為 MKS 制)。
A1.1 直接撰寫.layer 檔
程式中以 column 代表元件的縱向橫截面特性;大部份的光電半導體元 件只需要一個 column 即足以描述其系統結構,但是在某些特殊結構的情況 下(如氮化物元件的脊狀結構)則需要用到兩個或以上的 column。其中 w 指的是 column 的寬度,mesh_num 與 r 則是指電腦在進行差分計算時所區 分的網目數目以及網目分佈的等比級數,網目的數目越多則模擬結果越準 確,但所需要的計算時間也就越多,而且有時設定過大的網目數目時,在 執行程式時有時會因為記憶體不足而無法進行模擬,一般而言網目數目大 多設定在 10 以下。在.layer 檔第一行指令內 column 這一段中所輸入的網目 數值代表整個 column 橫向的網目分佈,而在元件中各結構層中所輸入的數 值(如 n = 3)則代表各層縱向的網目分佈。程式會依據我們所輸入的 mesh_num 與 r 值來對網目進行等比分佈(由下到上、由左至右),因此若 輸入的 r 值為 1,則代表網目均勻分佈,若 r 值小於 1,則表示網目分佈越 來越密。一般來說,我們常將活性區下方薄膜的 r 值設定為小於 1,活性區 上方薄膜的 r 值則設為大於 1,以增加活性區邊界區域的計算(其他區域,
包括活性區,都將 r 值設定為 1。)。
程式中的電極設定以 bottom_contact 以及 top_contact 表示;我們可以在
這裡設定電極的橫向範圍(from、to),邊界參數(contact_num)以及電極 型式(contact_type)等等,其中電極型式可以設定為 ohmic 以及 schottky 兩種。
LASTIP 程式在設定結構時主要是依據由下到上、由左至右的原則,將 整體結構分成各層(layer)來加以個別設定。在各層中可以輸入材料名稱
(macro_name)、成份比例(var1、var2…)以及該層厚度(d)、摻雜濃度
(n_doping1 或 p_doping1)等參數;由於程式會依據所輸入的材料名稱自 動至 crosslight.mac 檔案中載入所有的材料參數,因此這裡所輸入的材料名 稱必須跟巨集檔內該檔案中的名稱設定一致,如以巨集檔名稱 ingaasp_xy 為例,於.layer 中使用此一結構層時,就必須輸入 var1 =, var2 =,其中 var1 與 var2 分別表示 ga 與 as 的成分比濃度,否則在執行程式轉檔時就會出現 錯誤訊息,使用者必須熟練程式,當程式出現各種錯誤訊息時要有能力找 出錯誤所在加以修正。
此外,在某些層中會特別設定 xp1 以及 xp2 兩個參數,其所代表意義是 指對邊界進行額外更詳細的計算(extr_mesh_point);其中 xp1 代表的是此 一層的下邊界,xp2 則為上邊界。將此一數值設定為 1 則代表開啟此一額外 計算功能,設定為 0 或者根本不設定此一參數則代表不使用額外計算功能。
在正常的情況下,我們只在活性區以及最靠近活性區的邊界使用此一功能。
活性層的設定跟上述各層的設定極為相似,只是要多設定活性材料
(active_macro)及其成份比例(avar1、avar2…)。其中活性材料若為塊材,
則直接輸入其材料名稱;活性材料若為量子井結構,則需以 A/B 的形式輸 入,A 為活性層材料(well),B 為披覆層材料(barrier)。相關的材料名稱可參 考 crosslight.mac 檔或使用手冊之說明。
A.1.2 步驟二:Process .layer file
此一步驟是將初始的輸入檔(.layer 檔)轉換成 LASTIP 內部所使用的語
言,經由此一步驟會產生.geo 檔、.mater 檔、.doping 檔以及.mplt 檔四個檔 案。這些檔案個別描述元件的結構、材料、摻雜濃度…等特性,並且會被 使用在之後的正式模擬中。
A.1.3 步驟三:Generate Mesh file
此一步驟是將上述的.geo 檔轉換成.msh 檔,也就是將網目分佈的資料轉 換成電腦所能運算的檔案。完成後還可以利用〝View Mesh file〞的步驟來 觀看元件的網目分佈(此一步驟的完成與否並不會影響到模擬結果,因此 往往被省略掉)。
A.1.4 步驟四:Setup .sol file
此一檔案是模擬過程中最主要的輸入檔,大部份的計算時間都會花費在 這裡。.sol 檔的建立可以利用程式內建的交談式介面(直接執行〝Setup .sol file〞即可開啟此一介面),依其指示一步一步輸入,或者是直接撰寫的方式。
由於.sol 檔的內容比較簡單且沒有變化,因此我們大部份都利用舊有的檔案 來直接加以修改,再變更檔案名稱即可。
檔案的一開始是在載入之前已經設定好的結構與參數,如.msh 檔、.mater 檔以及.doping 檔,並將模擬結果資料設定為以.out 檔的型式輸出。接著再 設定牛頓法的非線性參數(newton_par),如 damping_step、max_iter 等;除 非特殊需要,否則這些參數不會被改變。
init_wave 的設定則是在輸入解波方程時的一些初始值,其中 point_ll 與 point_ur 代表解波方程時所要計算的方形區域(point_ll 為下方、左邊的邊 界點,point_ur 則為上方、右邊的邊界點),此一區域必須小於或等於之前 所輸入的元件大小;fld_center 則是預計的光學模式中心(optical mode center),此一數值僅僅只是一個初始值,程式在執行的過程中會自動調整 至之正確的數值;length 指的是雷射腔長度,由於之前的結構設計與參數設
定均是二維的,因此加上此一參數後,就能夠架構成完整的三度空間元件;
backg_loss 則為系統的背景損失參數(background loss coefficient),各層的 吸收…等效應都包含在此一參數內;init_wavel 與 wavel_range 分別代表預 估的雷射輸出波長以及可能的雷射波長範圍,程式會從 init_wavel 的數值開 始計算波方程,並在 wavel_range 的範圍中尋找真正的增益波峰;front_back 則是在設定雷射前後反射鏡的反射率,如果此一參數改成 mirror_ref,則表 示前後反射鏡的反射率均一致。
接下來所要設定的則是程式作運算時之電壓或電流條件(scan)。如果 我們選擇的是電壓,則程式會從初始電壓依不定的間隔(bias step 或 bias interval)增加至最終電壓,並在每一個指定間隔均輸出模擬資料。value_to 指的是計算過程中的運算終點;print_step 則是上述所謂的指定間隔(電壓 間隔或電流間隔…等),程式會在每個指定間隔將模擬所得的資料輸出至電 腦中(以.out 檔的型式輸出);min_step 以及 max_step 則是模擬所允許的最 小與最大的條件間隔。
跟 A.1 小節一樣,本小節的內容是選擇較常用在.sol 檔中的參數來加以 說明,如果需要用到其他的參數或指令,可以在使用手冊中找到相關的說 明。
A.1.5 步驟五:Start the simulation
在執行此一步驟後,LASTIP 程式開始正式進行模擬,並將模擬所得的 結果以.out 檔的型式紀錄在硬碟中。當程式進行運算的時候,所有的運算進 度會以及時顯示或存成 report 檔的方式顯示出來,因此如果程式執行的過程 中有任何的錯誤、問題都可以從其中看出端倪,再依 report 黨所告知之錯誤 或原因對.layer 或.sol 檔進行修改即可。Crossligh 公司也額外提供當使用者 遇到模擬上的困難而無法解決時的線上詢問功能,不過只要使用者熟悉此 一軟體,任何問題必可自行解決。
A.1.6 步驟六:Setup .plt file
此一步驟是在設定欲輸出模擬結果的輸入檔。在上一步驟中我們已經獲 得全部的模擬結果資料(.out 檔),而在這裡則是要設定哪些資訊是我們所 想要的,然後在下一個步驟將這些選定的資訊從.out 檔中解析出來,並以圖 形或資料點的方式呈現在我們面前。
要 設 定 .plt 檔 仍 然 有 兩 種 主 要 方 式 , 一 種 就 是 直 接 執 行 程 式 中 的 Setup .plt file 以開啟程式內建的交談式介面,並依其指示一步步輸入;另外 一種方式則是手動撰寫.plt 檔。跟.layer 檔一樣,如果是要建立新的.plt 檔,
則建議使用前者的方式;相反的,如果所要取得的資訊都一樣,則建議以 直接修改.plt 檔的方式會比較方便。
A.1.7 步驟七:View results
執行上述的.plt 檔以取得.out 檔中所紀錄的資料。
Appendix B. code for AlInGaN as electron blocking layer for
405nm LD
*.layer
begin_layer
$
column column_num=1 w=2. mesh_num=5 r=1.
column column_num=2 w=2 mesh_num=10 r=1 column column_num=3 w=2. mesh_num=5 r=1.
column column_num=4 w=2 mesh_num=2 r=1.
column column_num=5 w=2 mesh_num=5 r=1.
top_contact column_num=2 from=0 to=2 contact_num=1 contact_type=ohmic top_contact column_num=5 from=0 to=2 contact_num=2 contact_type=ohmic
$
layer_mater macro_name=gan.temp column_num=1 var1=300 layer_mater macro_name=gan.temp column_num=2 var1=300 layer_mater macro_name=gan.temp column_num=3 var1=300 layer_mater macro_name=gan.temp column_num=4 var1=300 layer_mater macro_name=gan.temp column_num=5 var1=300
layer d=2.5 n=5 r=1 n_doping1=2.00e+024 n_doping2=2.e+24 n_doping3=2.e+24 &&
n_doping4=2.e+24 n_doping5=2e+24
$
layer_mater macro_name=gan.temp column_num=1 var1=300 layer_mater macro_name=gan.temp column_num=2 var1=300 layer_mater macro_name=gan.temp column_num=3 var1=300 layer_mater macro_name=air column_num=4
layer_mater macro_name=void column_num=5
layer d=0.5 n=5 r=1. n_doping1=2.e+24 n_doping2=2.e+24 n_doping3=2.e+24
$
layer_mater macro_name=algan.temp var1=0.07 var2=300 column_num=1 layer_mater macro_name=algan.temp var1=0.07 var2=300 column_num=2
layer_mater macro_name=algan.temp var1=0.07 var2=300 column_num=1 layer_mater macro_name=algan.temp var1=0.07 var2=300 column_num=2