JCMsuite布局描述提供了許多(duō)設置複雜幾何圖形的方法。例如,在多(duō)核光子晶體(tǐ)光纖示例中,我們使用晶格副本來(lái)創建固體(tǐ)核光子晶體(tǐ)光纖的空(kōng)氣孔的排列。然而,在某些(xiē)應用中,可(kě)能需要描述幾何圖形,這些(xiē)圖形不能用簡單的圓、平行(xíng)四邊形等表示,或者類似物體(tǐ)的複雜陣列非周期排列在規則網格中,需要晶格複制(zhì)來(lái)實現。在這種情況下,通(tōng)常需要用任意邊界曲線來(lái)描述幾何對象,即一般多(duō)邊形。這就是本例的情況,其中光子晶體(tǐ)包層的內(nèi)部孔和(hé)中心孔形成複雜的形狀。其幾何結構為(wèi)中空(kōng)光子晶體(tǐ)光纖,如下圖所示:
顯然,這個(gè)描述很(hěn)難“手工”完成,輸入所有(yǒu)點的坐(zuò)标。相反,在JCMsuite的Matlab®接口的幫助下,建立一個(gè)複雜的幾何圖形和(hé)模拟運行(xíng)完成。
JCMsuite的Matlab®接口允許使用所謂的模闆文件生(shēng)成這樣複雜的文件。因此,可(kě)以将JCMsuite語句和(hé)Matlab語句進行(xíng)混合,例如,計(jì)算(suàn)孔隙的點位置。Matlab循環允許在位移位置或修改形狀生(shēng)成多(duō)個(gè)對象。關于該機制(zhì)的完整描述可(kě)以在Matlab®Interface中找到,并且超出了本例的範圍,本例僅用于演示嵌入式腳本的能力。
這個(gè)例子的project.jcmp、 layout.jcm 和(hé) materials.jcm文件包含了模闆文件 ,就要添加一個(gè)“t”作(zuò)為(wèi)對應模闆的後綴。模闆被設計(jì)成這樣一種方式,隻需要定義幾個(gè)用戶定義的參數(shù),如圓角、周期、包層環的數(shù)量等,就可(kě)以生(shēng)成複雜的布局描述。這些(xiē)主要的輸入參數(shù)是在run_project中設置的。m腳本。當它在Matlab中執行(xíng)時(shí),命令:
results = jcmwave_solve('project.jcmp', keys);
在run_project.m腳本內(nèi)将模闆轉換為(wèi)常規的JCMsuite輸入文件,網格劃分并布局,并運行(xíng)模拟。此外,腳本将結果結構中存儲的特征值寫入控制(zhì)台。
計(jì)算(suàn)得(de)到的空(kōng)心模式是雙重簡并的。下圖顯示了計(jì)算(suàn)得(de)出的模态強度(第一行(xíng))和(hé)相應的向量場(chǎng)分布(第二行(xíng))。
|