中文/English
單狹縫繞射在基本物理是一個很基礎的問題。這裡我們來驗證課本所學的繞射強度分佈
第一個我們試著做一入射波源300 nm,單狹縫開孔寬度1200 nm的範例
1. 選取模擬的維度
2. 定義總x,y,z長度相等於模型檔案,然後調整適當的各軸解析度
3. 按【建立網格 Cad to Grids (Create)】按鈕建立模擬網格
使用線性極化平面波由下方入射(theta=0)
設定一 1200 nm 單狹縫,材質為完美導體
【指令輸入方塊】輸入以下程式碼,然後按【執行】,確定好結構無誤的話後再按【輸出結構】
%=================狹縫 Slit===========================
lengthx=1200e-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=100*gdz;
Iso_Slit(choice,gridtype,nindex,sigma,xposition,zposition,lengthx,lengthz)
%=================狹縫 Slit===========================
內建結構的寫法則如下
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;
內建結構函數 矩形 Brick 參考 : 內建結構
1.設定連續波 => 場圖分析
2.檢查波源 (確定是連續波)
要計算近場轉遠場(NTFF Transformation),遠場是指穿透狹縫的穿透波。那麼要作近場轉遠場,就使用如下圖虛線的位置作積分圖。左、右兩張圖分別是不同的位置作積分,那麼要哪個才是正確的?
答案是都可以!因為是近場轉遠場,因此只要將出口用ㄇ字型包起來即可
上圖中近場轉遠場設定中,我們勾選了☑X-,☑X+,☑Z+
範圍X從200=>400, Z從103=>180
也就是說
☑X- 的範圍是 x=200, Z=103:180
☑X+ 的範圍是 x=400, Z=103:180
☑Z+ 的範圍是 x=200:400, Z=180
這樣就是個ㄇ字型了,接著按下【確定】按鈕,就能畫出如上圖右邊的遠場分佈圖
比對FDTD計算與理論解析解
【指令輸入方塊】輸入以下程式碼,然後按【執行】
#RCS_theta為內部可用變數
figure;
plot(scan_theta,sqrt(RCS_theta),'r','linewidth',2.5);
hold on;
d=1200e-9;
angles=linspace(-90,90,180);
beta=1/2*2*pi/(lambda0)*d*sin(angles/180*pi);
Intensity=abs(sin(beta)./beta);
plot(angles,Intensity*max(sqrt(RCS_theta)),'*b','linewidth',0.5);
title('\bf\it Far Field','Color','k','VerticalAlignment','bottom')
xlabel('\bf theta','FontSize',12,'FontName','Arial','Color','b','VerticalAlignment','middle')
ylabel('\bf intensity (a.u.)','FontSize',12,'FontName','Arial','Color','b')
legend('FDTD','Analytical Solution')
figure;
polar(scan_theta'/180*pi,sqrt(RCS_theta),'r');
hold on;
polar(angles/180*pi,Intensity*max(sqrt(RCS_theta)),'b');
title('\bf\it Polar Plot (theta)','Color','k','VerticalAlignment','bottom')
雙狹縫 (Double Slits)
如前設定,換成雙狹縫的結構
d=1200e-9;
b=d;
%=================矩形 Brick===========================
xstart=icenter*gdx-d/2;
xend=icenter*gdx+d/2;
ystart=1*gdy;
yend=1*gdy;
zstart=100*gdz;
zend=100*gdz+100e-9;
nindex=1^2;
sigma=0;
choice='PEC'; %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===========================
%=================矩形 Brick===========================
xstart=1*gdx;
xend=icenter*gdx-b-d/2;
ystart=1*gdy;
yend=1*gdy;
zstart=100*gdz;
zend=100*gdz+100e-9;
nindex=1^2;
sigma=0;
choice='PEC'; %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===========================
%=================矩形 Brick===========================
xstart=icenter*gdx+b+d/2;
xend=ib*gdx;
ystart=1*gdy;
yend=1*gdy;
zstart=100*gdz;
zend=100*gdz+100e-9;
nindex=1^2;
sigma=0;
choice='PEC'; %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===========================
分析結果(Result Analysis)
下圖就是穩定態(Steady State)電場強度與波印亭實部的分佈圖
上圖中近場轉遠場設定中,我們勾選了☑X-,☑X+,☑Z+
範圍X從30=>570, Z從103=>150
也就是說
☑X- 的範圍是 x=30, Z=103:150
☑X+ 的範圍是 x=30, Z=103:150
☑Z+ 的範圍是 x=30:570, Z=150
這樣就是個ㄇ字型了,接著按下【確定】按鈕,就能畫出如上圖右邊的遠場分佈圖
比對FonSinEM計算與理論解析解
【指令輸入方塊】輸入以下程式碼,然後按【執行】
figure;
plot(scan_theta,sqrt(RCS_theta),'r','linewidth',2.5);
hold on;
d=1200e-9;
distance=2.*d; %兩狹縫中心距離
angles=linspace(-90,90,360);
beta=1/2*2*pi/(lambda0)*d*sin(angles/180*pi);
Intensity=abs(sin(beta)./beta.*cos(pi/(lambda0)*distance*sin(angles/180*pi)));
plot(angles,Intensity*max(sqrt(RCS_theta)),'*b', 'MarkerSize',5);
title('\bf\it Far Field','Color','k','VerticalAlignment','bottom')
xlabel('\bf theta','FontSize',12,'FontName','Arial','Color','b','VerticalAlignment','middle')
ylabel('\bf intensity (a.u.)','FontSize',12,'FontName','Arial','Color','b')
legend('FDTD','Analytical Solution')
figure;
polar(scan_theta'/180*pi,sqrt(RCS_theta),'r');
hold on;
polar(angles/180*pi,Intensity*max(sqrt(RCS_theta)),'b');
title('\bf\it Polar Plot (theta)','Color','k','VerticalAlignment','bottom')