中文/English
接續範例:
● 多層膜-垂直入射 (Multi-layers-Normal Incident)
考慮p wave 與 s wave (雙垂直極化偏振) 斜向入射此多層膜其穿透與反射率,再與理論的解析解做比較驗證
p wave 對應FDTD polarization 1 (psi =90,Ex偏振) ( Result_TRSpectrum_p1.csv
s wave 對應FDTD polarization 2 (psi=0,Ey偏振)(Result_TRSpectrum_p2.csv
使用線性極化平面波由下方入射(theta=0,電場極化方向為Ey (psi=0)
反射頻譜觀測為-Z 方向
穿透頻譜觀測為+Z 方向
這次要做兩種(S wave, P wave)不同極化偏振入射
勾選 ☑極化Polarization 2
其中
p wave 對應FDTD polarization 1 (psi =90,Ex偏振) ( Result_TRSpectrum_p1.csv
s wave 對應FDTD polarization 2 (psi=0,Ey偏振) (Result_TRSpectrum_p2.csv
其他設定接相同
對照引用 Comparison & Reference:
OptiScan Simulation Program
http://fp.optics.arizona.edu/milster/optiscan/OptiScan_MENU_PAGE.htm
或此 pdf 檔案
下面是理論解析解的程式碼,請與下方PDF裡的multilayer_p.m, multilayer_s.m兩的檔案一起執行
% This program is an example to use thin film model. The design if a
% broadband reflector for the visible region of design.
% Data resource: Figure 4-27 in "Optical thin film"
% initial program
clear all;
close all;
um = 1e-6;
nm = 1e-9;
% define admittance for medium
Air = 1;
Glass = 1.52;
% define the reference wavelength and thickness
lambda_f = 880*nm;
% define visible region of light
lambda = linspace(200,1500,501)*nm;
% define thin film structure
y_inc = Air; % incident medium admittance
y_sub = Air; % substrate medium admittance
theta = 60; % in degree
%d = film thickness
%y = index for d, n-ik
d=[100*nm;200*nm;300*nm;];
y=[1.25;1.5;1.75;];
%rho= sqrt(R), complex reflection coefficient
%tao= sqrt(T), complex reflection coefficient
% y_inc|y|y_sub 共三層
for ii=1:length(lambda),
[rho(ii),tao(ii),R(ii),T(ii)] =multilayer_s(d,y,y_inc,y_sub,lambda(ii),theta);
end
% plot the result
figure;hold on;
plot(lambda/nm,R*1,'-k','LineWidth',3);
plot(lambda/nm,T*1,'-k','LineWidth',3);
title('A broadband reflector for the visible region');
xlabel('Wavelength(nm)');
ylabel('Reflectance(%)');
%axis([350 850 0 105]);
grid on;
for ii=1:length(lambda),
[rho2(ii),tao2(ii),R2(ii),T2(ii)] =multilayer_p(d,y,y_inc,y_sub,lambda(ii),theta);
end
% plot the result
figure;hold on;
plot(lambda/nm,R2*1,'-k','LineWidth',3);
plot(lambda/nm,T2*1,'-k','LineWidth',3);
title('A broadband reflector for the visible region');
xlabel('Wavelength(nm)');
ylabel('Reflectance(%)');
%axis([350 850 0 105]);
grid on;
=====================================================================
我們看到FDTD的dt =9.1477e-18 s,而SFM的dt=1.2256e-18。調整入射角度theta看看,SFM的dt會隨著角度變大而變小,也就是說我們所需要的計算步數將會越大!(在接近水平入射時,theta>=80度或<=-80),此時dt會幾乎接近於0、等於要計算的步數接近無窮大,這是SFM法的使用限制,入射角不能過大。
因為這次入射角度使用60,我們看到SFM的dt小於FDTD大約八倍左右。這意味著,計算步數將需要傳統FDTD的八倍左右。讓我們看看各計算步數的SFM結果。
30000步
50000步
80000步
100000步
上面共有四種不同的步數, 30000,50000,80000,100000步,可看30000步所計算的時間肯定是不夠的。系統時間不足作傅立葉轉換結果將失真。50000步好一些,但一樣不太夠。80000步則差不多已經穩定,但反射率長波長部分還有一些震盪現象。100000步反射率部分更加收斂,但穿透率開始出現一些震盪現象。稍會會再提
這次計算會產生出
Result_TRSpectrum_RCP_Imag.csv
Result_TRSpectrum_RCP.csv
Result_TRSpectrum_p2_Imag.csv
Result_TRSpectrum_p2.csv
Result_TRSpectrum_p1_Imag.csv
Result_TRSpectrum_p1.csv
Result_TRSpectrum_LCP_Imag.csv
Result_TRSpectrum_LCP.csv
Result_Transmission_RCP_Imag.csv
Result_Transmission_RCP.csv
Result_Transmission_p2_Imag.csv
Result_Transmission_p2.csv
Result_Transmission_p1_Imag.csv
Result_Transmission_p1.csv
Result_Transmission_LCP_Imag.csv
Result_Transmission_LCP.csv
Result_Reflection_RCP_Imag.csv
Result_Reflection_RCP.csv
Result_Reflection_p2_Imag.csv
Result_Reflection_p2.csv
Result_Reflection_p1_Imag.csv
Result_Reflection_p1.csv
Result_Reflection_LCP_Imag.csv
Result_Reflection_LCP.csv
這些結果檔案,我們可以直接打開.csv檔來讀取資料如
Result_TRSpectrum_p1.csv 對應 p wave (psi=90, Ex偏振)
Result_TRSpectrum_p2.csv 對應 s wave (psi=0, Ey偏振)
而左旋、右旋的這兩個結果此次不會用到。
Result_TRSpectrum_RCP.csv
Result_TRSpectrum_LCP.csv
#SFM大角度入射
原則上雖然計算時間寧願設定長一些,好確保系統達到穩定。但一旦出現像上面100000步時穿透率(長波長部分)開始抖動的現象,這意味著有限時域差分法網格所造成的色散因為計算時間過長累加過多開始影響整個模擬系統。再繼續更長時間的計算,比較壞的情況是算出來的值可能會因為誤差開始累加放大再放大,直至整個數值計算系統值變成無窮而崩潰。
避免的方式可以調整【穩定參數(Courant:S)】,將之調小一點,整個系統會更穩定這個問題就可改善掉。但如此一來,計算的時間也將需要更久。更小的網格色散誤差,更能確保系統的穩定。建議穩定參數S設定0.7或0.8,會是比較穩妥的作法。
例如這是我們將穩定參數S調為0.7、計算步數調為200000。左圖為SFM計算結果、右圖為與理論解析解的比較值。可以看出計算的結果有更改善一些
然而在大角度入射時,SFM還是會有一些誤差震盪的產生。根據個人的經歷、並不是穩定參數S調小後系統就不再出現色散誤差的震盪。當總計算時間拉的太長後,網格色散誤差、吸收層反射誤差等等還是會累積疊加再反饋回系統,因此適當的時間還是必須的。Total dt總時間大略為FDTD的1.5-2倍總時間是較為適合的。
###
例如垂直入射時,FDTD的總計算時間是Total dt =9.1477e-13 s
斜向60度入射時,SFM的Total dt=1.2256e-13。
那麼比較適合的計算步數是 9.1477/1.2256*2* (FDTD垂直入射時可達到穩定的計算步數)
想對SFM有更進一步瞭解的人
可參考
對照引用 Comparison & Reference:
Wolfsim simulator
http://www.ece.ncsu.edu/oleg/wiki/WOLFSIM
他們有詳細教學及開源程式碼可對照學習