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