內建結構 : 範例
中文/English
使用內建結構函數輸入結構
內建結構函數 矩形 Brick 參考 : 內建結構
Initializedgeometries
%=================矩形 Brick===========================
xstart=1*gdx;
xend=10*gdx;
ystart=1*dy;
yend=1*dy;
zstart=50*gdz;
zend=100*gdz;
nindex=1^2;
sigma=0;
choice='E_Model1'; %E_Iso,PEC,M_Iso,PMC,E_Model1,M_Model1,EM_Model1
gridtype=-1; %
Iso_Brick(choice,gridtype,nindex,sigma,xstart,xend,ystart,yend,zstart,zend)
%=================矩形 Brick===========================
Initializedgeometries : 初始化結構
gdx是(grid) dx的大小, gdy = dy. gdz = dz;
ib= X grids, jb= Y grids, kb= Z grids;
icenter= ib/2; jcenter= jb/2; kcenter=kb/2;
上圖為可使用的材料參數,對應程式碼中的choice
若選擇
E_Iso: 則nindex= (refractive index)^2 = epsilon_r
H_Iso: 則nindex = mu_r
1.勾選要使用的材料
2.輸入內建結構函數
3.執行區塊內的指令函數
4.檢查結構是否正確
5.確認後輸出結構
下方為進階設定用法、請參閱FDTD書本閱讀
===========================================================
一高度100 nm;寬度50 nm的單狹縫結構
%=================狹縫 Slit===========================
lengthx=50e-9;
lengthz=100e-9;
nindex=1^2;
sigma=0;
choice='PEC'; %E_Iso,PEC,M_Iso,PMC,E_Model1,M_Model1,EM_Model1
gridtype=-1; %
xposition=icenter*gdx;
yposition=jcenter*gdy;
zposition=kcenter*gdz;
Iso_Slit(choice,gridtype,nindex,sigma,xposition,zposition,lengthx,lengthz)
%=================狹縫 Slit===========================
grid type:
我們使用完美導體(PEC)做為材料。gridtype為-1 在此我們先解釋為什麼要有gridtype這個分別 gridtype=-1 為電性材料填充對應的網格; gridtype=1 為磁性材料填充對應的網格; gridtype=0 則不做網格對應 這是因為在FDTD裡,電性材料"各分量"與電場"各分量"所對應"各分量"的網格之間一致的,相互之間會有0.5格網格差,而磁性材料與磁場亦同。而電場與磁場間則亦會錯開0.5個網格,即Ex,Ey,Ez,Hx,Hy,Hz六個場相互之間都有0.5個格子差異,即Yee網格的理論。
下方是我們比較用【Yee grid => Fast】與【Yee grid => xyz】(真實反應Yee grid的格子位置)兩者的不同
Yee grid => Fast
Yee grid => xyz
可以看出【Yee grid => xyz】在狹縫口端有些許不一樣,這是因為在真實的模擬空間上,x,y,z三個分量彼此間都是錯開0.5格的。那麼我們講電場與磁場的網格放出來一併對比,看起來會容易的多,下面是開啟電磁場網格的方法 在輔助顯示中,這兩個勾選且選擇 (只有在【Yee grid => xyz】勾選才有作用,因為這是反應真實網格) □E grid □H grid (這兩個功用是專為學習FDTD理論而寫的,平時不會用到。而當模擬的結構格子數太多會因為過於密集而造成閱讀困難,且若是三維且結構大小的網格過多記憶體會用量非常可觀,因為每個網格都會畫出來,因此要學習時,請用小尺寸(網格數少)來學習就好)
(Yee grid => xyz, E grid, H grid 皆勾選)
gridtype = -1 (電性材料網格)
完美電性導體單狹縫 (PEC Single Slit)
紅色箭頭為電場Ex(x方向),
Ez(z方向)網格。藍色為Hy(y方向) (gridtype=-1)
gridtype = -1 (電性材料網格)
完美電性導體單狹縫 (PEC Single Slit)
(由上圖左可看出,用X=60; Z=60; 所畫出來的真實網格已經很密集了,因此若要開啟此功能學習者記得不要用太大的網格) 上圖右我們將結構拉近,我們可看出完美導體電性材料在轉角的時候都有在對應電場的方向將材料填進去。這是gridtype=-1時代表電性材料的用法 那麼同樣來比較看看,當我們選擇gridtype=0時及gridtype=1時又會是如何
(Yee grid => xyz, E grid, H grid 皆勾選)
gridtype = 1 (磁性材料填充網格)
完美電性導體單狹縫 (PEC Single Slit)
(Yee grid => xyz, E grid, H grid 皆勾選)
gridtype = 0
完美電性導體單狹縫 (PEC Single Slit)
上圖左為同樣使用電性完美導體做為材料的單狹縫,而填進去的網格使用【gridtype=1】磁性材料填充對應的網格,可看到畫出的單狹縫已經不左右對稱。且我們看狹縫中右邊的位置,PEC電性完美導體材料並沒有正確的填充進z方向的位置,而變成以x方向做為邊界 上圖右為同樣使用電性完美導體做為材料的單狹縫,而填進去的網格使用【gridtype=0】的網格,即不做任何對應。也可看出左右兩邊狹縫不對稱,且在狹縫中右邊的位置,也是以x方向做為邊界 我們來看看用這三種不同的gridtype所填充的完美電性導體單狹縫其結果會如何
gridtype = -1
gridtype = 0
gridtype = 1
我們可以看出gridtype=-1完美的對應與模擬。而gridtype=0時,可看到脈波在狹縫中傳播時會有些許不對稱。而gridtype=1時,則不對稱的情況更加明顯。這是因為原本狹縫是完美電性材料(PEC)做為邊界的、但因為填充材料時,網格沒有對應好。而以錯誤的邊界造成的誤差。而這也是FDTD的誤差來源之一,不過這個0.5格網格所造成的誤差通常可以忽略,解析度建議高於 波長/15 甚至 波長/20 以上。
當我們所要模擬的結構為非矩形時,如圓形,由於傳統FDTD網格是在直角座標網格系統所做,因此這種誤差就會存在。因此另外有許多不同網格形狀的FDTD技術,例如:Hexagonal Grids,Nonuniform Orthogonal Grids, Curvilinear Coordinates, Structured Nonorthogonal Grids, Irregular Nonorthogonal Unstructured Grids, Bodies of Revolution (Cylindrical Coordinates)等等。