模擬計算 (Calculation)

中文/English

【模擬計算 (Calculation)】

計算時間(Calculate Time)

步數 (Time-Step) : 這個是整個程式會計算的步數,需特別注意的是,計算時間步數只能多不能少,下圖是風行計算的流程圖。需注意的是,整個模擬環境需要到達穩定態(steady state),所計算出來的結果才能使用。

穩定參數 (Courant S) :

時域有限差分法有一穩定條件,時間dt必須小於一定的值才能避免色散,請參考有限差分時域法的相關書籍,皆有說明。二維及三維條件並不相同,

FDTD:

二維: dt=S/cc/sqrt(1/dx^2+1/dz^2);

三維: dt=S/cc/sqrt(1/dx^2+1/dy^2+1/dz^2);

SFM :

二維:dt=S/cc/sqrt(1/dx^2+1/dz^2)*(1-Sinq);

三維:dt=S/cc/sqrt(1/dx^2+1/dy^2+1/dz^2)*(1-Sinq);

CompactFDTD:

二維: dt=S/cc/sqrt(1/dx^2+(beta/2)^2);

三維: dt=S/cc/sqrt(1/dx^2+1/dy^2+(beta/2)^2);

總計算時間 = 計算步數 * 【單位計算時間 dt】

當程式【單位計算時間 dt】大於上面的穩定條件值時,程式將發生色散甚至崩潰。因此Courant S就是作為調整dt大小用,當然越小於臨界值則系統越穩定,但需要的總計算的步數將越大,程式要執行將越久。

以下是計算時間達到穩定態及沒有達到穩定態的比較

頻譜 Spectrum : Pulse Wave

計算時間到達穩定時,模擬計算所得的散射吸收頻譜與理論值比較

計算時間到達穩定時,模擬計算所得的散射吸收頻譜與理論值比較

這個是入射一TM脈波(Pulse Wave)至二維柱形金屬材料所得到的散色吸收頻譜圖。由兩圖中可知,當系統未達穩定時,觀測點上傅立葉積分計算的時間不足,導致傅立葉轉換頻域後結果會有誤差,所計算出來的結果是不能使用的!是否達到穩定態在有限差分時域法的計算上是很需要注意的一點。

那麼!計算的步數大於穩定態要多少步數才夠?這個其實並沒有一個肯定的答案。通常取模擬計算結構的對角線長的10-20倍。例如,若模擬的二維結構大小 x=100, z=100 格,則計算步數取個2000步左右。但這也跟模擬的材料有關,如材料折射率(refractive index)較大時,則需更長的時間來計算才夠(因為波在高折射率介質行進較慢)。

設定停止條件 (Set Stop Condition)

若我們初始計算設定步數為500,步數增加量為1000如上圖,那麼當程式執行至500步時,程式會判斷此時內部電場|E|是否小於最大內場值(Max Field)。若是則輸出結果結束計算,若否,則從501步繼續計算至500+1000=1500步。程式在1500步時將再次判斷是否內部電場最大值小於0.001,若是就輸出結果結束計算,若否則再次從1501步計算至2500步....以此列推。

停止條件為滿足以下其中一個即停止

1.執行到達最大步數( Max. Time Step)

2.截止內電場值 (Max. Cut-OFF Field)

linear to dB ==> 10*log10(linear)

0.1 = -10 dB,

0.01 = -20 dB

0.001= -30 dB

(注意,此自動停止條件只能在脈波(Pulse)入射時使用,而且必須模擬計算系統是內部電場會消散的情形。若系統內電磁場不會漸漸消散(如四周邊界皆為完美導體),那麼模擬系統的電磁場永遠也不會小於設定為停止條件的最大內場)

例如

如果我們設定停止條件(stop condition)如圖

然後我們可以得到頻譜在步數 n=300, n=1300, n=2300 .........

停止條件為滿足以下其中一個即停止

1.執行到達最大步數( Max. Time Step)

2.截止內電場值 (Max. Cut-OFF Field)

輸出場 (Output Files)

□ 穩態場輸出(Output Steady State - Fields )(Poynting DFT) (Discrete Fourier Transform 離散傅立葉轉換)

波印亭積分方式,上圖為圓極化的入射。若是單一偏振入射。則只需將E2H2拿掉即可。

若勾選則輸出模擬計算的結果

脈波Pulse

TFSF-RCS

TFSF-RCS-SF

TFSF-RCS-Sub

TFSF-RCS-Sub-SF

這四個是計算散射吸收頻譜(Scattering Absorption Spectrum)

Extinction=Scattering + Absorption 這是定義

其中吸收Absorption,散射Scattering檔案裡有-x,+x,-y,+y,-z,+z 六個方向的分量波印亭Poynting積分值,而CrossSection裡則會有 Extinction, Scattering, Absorption (皆是所有總和)的值,以及入射波源(Source)做傅立葉頻率轉換後之值

Imag 表示虛部之意。

通常我們只需觀察實部波印亭積分!輸出虛部波印亭積分是若有人有特殊需要(例如觀察吸收層的能量回流問題)則可使用!

★若入射波只有一偏振光入射,輸出的檔案是

Result_RCS_Absorption.csv

Result_RCS_Absorption_Imag.csv

Result_RCS_Scattering.csv

Result_RCS_Scattering_Imag.csv

Result_RCS_CrossSection.csv

Result_RCS_CrossSection_Imag.csv

Result_RCS_CrossSection.csv 裡的Scattering是Result_RCS_Scattering.csv裡六個方向的總和。

Result_RCS_CrossSection.csv 裡的Absorption是Result_RCS_Absorption.csv裡六個方向的總和。

Result_RCS_CrossSection.csv 裡的Extinction是Scattering+Absorption的所有總和

Imag等以此列推

★若入射波為橢圓極化或圓極化光入射,則輸出的檔案為

Result_RCS_Scattering_RCP_Imag.csv

Result_RCS_Scattering_RCP.csv

Result_RCS_Scattering_p1_Imag.csv

Result_RCS_Scattering_p1.csv

Result_RCS_Scattering_p2_Imag.csv

Result_RCS_Scattering_p2.csv

Result_RCS_Scattering_LCP_Imag.csv

Result_RCS_Scattering_LCP.csv

Result_RCS_CrossSection_RCP_Imag.csv

Result_RCS_CrossSection_RCP.csv

Result_RCS_CrossSection_p1_Imag.csv

Result_RCS_CrossSection_p1.csv

Result_RCS_CrossSection_p2_Imag.csv

Result_RCS_CrossSection_p2.csv

Result_RCS_CrossSection_LCP_Imag.csv

Result_RCS_CrossSection_LCP.csv

Result_RCS_Absorption_RCP_Imag.csv

Result_RCS_Absorption_RCP.csv

Result_RCS_Absorption_p1_Imag.csv

Result_RCS_Absorption_p1.csv

Result_RCS_Absorption_p2_Imag.csv

Result_RCS_Absorption_p2.csv

Result_RCS_Absorption_LCP_Imag.csv

Result_RCS_Absorption_LCP.csv

LCP (Left Circular Polarization) 左圓偏振,無論是左旋橢圓偏振或左旋圓偏振,輸出的檔案都是這個名字

RCP (Right Circular Polarization) 右圓偏振,無論是右旋橢圓偏振或右旋圓偏振,輸出的檔案都是這個名字

p1 (Polarization 1)

p2 (Polarization 2)

若您是輸入圓極化入射,那麼會產生上列四種結果都會輸出。而其中p1的檔案若設定上結構上都相同於前面的單一偏振光入射時,是會『完全相同』於前面單一偏振入射光的結果。這是因為我們在做左右圓極化入射時,是使用兩種線偏振光的疊加。

(倘若模擬的結構、設定都不變,只是多了線偏振2 (Polarization 2)。那麼p1的結果內容,會全等於單一偏振入射的結果)

Result_RCS_Absorption_Imag.csv = Result_RCS_Absorption_p1_Imag.csv

Result_RCS_Absorption.csv = Result_RCS_Absorption_p1.csv

Result_RCS_Scattering.csv = Result_RCS_Scattering_p1.csv

Result_RCS_Scattering_Imag.csv = Result_RCS_Scattering_p1_Imag.csv

Result_RCS_CrossSection.csv = Result_RCS_CrossSection_p1.csv

Result_RCS_CrossSection_Imag.csv = Result_RCS_CrossSection_p1_Imag.csv

TFSF-Line

SoftSource

HardSource

SoftSource(Load)

HardSource(Load)

其中反射率Reflection,穿透率Transmission檔案裡有-x,+x,-y,+y,-z,+z 六個方向的分量波印亭Poynting積分值

而TRSpectrum裡有 Transmission+Reflection (T+R) 及 Transmission, Reflection (皆是所有總和)的值,以及入射波源(Source)做複立葉頻率轉換後之值

Imag 表示虛部之意。

★若入射波只有一偏振光入射,輸出的檔案是

Result_Reflection.csv

Result_Reflection_Imag.csv

Result_Transmission.csv

Result_Transmission_Imag.csv

Result_TRSpectrum.csv

Result_TRSpectrum_Imag.csv

Result_TRSpectrum.csv 裡的Transmission是Result_Transmission.csv裡六個方向的總和。

Result_TRSpectrum.csv 裡的Reflection是Result_Reflection.csv裡六個方向的總和。

Result_TRSpectrum.csv 裡的T+R是Transmission+Reflection的所有總和

Imag等以此列推

★若入射波為橢圓極化或圓極化光入射,則輸出的檔案為

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

LCP (Left Circular Polarization) 左圓偏振,無論是左旋橢圓或左旋圓偏振,輸出的檔案都是這個名字

RCP (Right Circular Polarization) 右圓偏振,無論是右旋橢圓或右旋圓偏振,輸出的檔案都是這個名字

p1 (Polarization 1)

p2 (Polarization 2)

若您是輸入圓極化入射,那麼會產生上列四種結果都會輸出。而其中p1的檔案若設定上結構上都相同於前面的單一偏振光入射時,是會『完全相同』於前面單一偏振入射光的結果。這是因為我們在做左右圓極化入射時,是使用兩種線偏振光的疊加。

(倘若模擬的結構、設定都不變,只是多了線偏振2 (Polarization 2)。那麼p1的結果內容,會全等於單一偏振入射的結果,同上)

連續波CW(Continue Wave)

★若入射波只有一偏振光入射,輸出的檔案是

Result_FieldPattern.csv

★若入射波為橢圓極化或圓極化光入射,則輸出的檔案為

Result_FieldPattern.csv

Result_FieldPattern_Imag

#這裡無論是脈波(Pulse)或是連續波(CW)的輸出結果,都能藉由『圖形分析介面=>分析結果(Analysis)』來分析。

□E,H,V,I (FFT : Fast Fourier Transform)

若勾選,則開啟使用探測 E 電場,H 磁場,V 電壓,I 電流的功能。我們即可自行定義欲觀測的E,H,V,I位置,觀測的設定檔案為

Data_ProbeFields.csv #觀測的參數設定檔

模擬計算後的結果會產生

Result_ProbedFields.csv #觀測計算電磁場的紀錄檔

欲分析探測結果,一樣開啟

【設計分析圖形介面=>分析結果(Analysis)】

可見範例有展示

□暫態場輸出 (Output Temp Fields)

若勾選,則將在主迴圈計算時輸出暫態場

輸出的條件是

for n=1:TotalStep

if(n>=start & n<=End)

if(n/Spare=.....0 整除餘數為0)

輸出此時的電磁場暫態場

end

end

end

E(t) 是輸出時域的暫態場值

E(w) 是輸出頻域的暫態場值

但當我們模擬三維結構,且入射波為橢圓偏振或者圓偏振時(Polarization 2 勾選)。

會多出左、右旋偏振的選擇。

輸出的檔案名稱為

Result_Temp_Field_T_p1_0001.csv

Result_Temp_Field_T_p1_0002.csv

Result_Temp_Field_T_p1_0003.csv ...

若是橢圓偏振或圓偏振的話,則會輸出

輸出的檔案名稱為

Result_Temp_Field_T_p1_0001.csv

Result_Temp_Field_T_p1_0002.csv

Result_Temp_Field_T_p1_0003.csv ...

Result_Temp_Field_T_p2_0001.csv

Result_Temp_Field_T_p2_0002.csv

Result_Temp_Field_T_p2_0003.csv ...

會多輸出Polarization 2 (p2)的檔案

輸出的檔案由選單上暫態分析(Temp Analysis)來讀取分析這些暫態檔

另外,這裡需提醒的一點!

右旋偏振與左旋偏振選擇何者輸出的檔案都一樣並無分別!

在【設計與繪圖介面】時可以重新選擇要觀看右旋或左旋

□歸一化 Normalized ,會將波印亭(Poynting)積分值除上觀測範圍的面積來作歸一化,在做穿透反射頻譜(Transmission,Reflection Spectrum)時請勾選,其他則看情況而定使用。

在入射波為脈波,作傅立葉積分時會除上網格數。在計算穿透率反射率時,會歸一化為1.歸一化使用的情況是,X,Y皆為週期性條件、入射單方向平面波TFSF-Line (入射波源最大值為1),這樣穿透率Transmission及反射率Reflection將會等於波源的值。也就是說

Transmission + Reflection = 1 (入射場峰值若設1)

平行化 (Parallel - MPI)

平行化 Message Passing Interface (MPI)

計算模擬時能將程式平行化運算,X,Y,Z對應總尺寸的X,Y,Z。記得要能整除才可以。

例如總尺寸(Total Size)網格

X:100

那麼平行化

X=2 , 100/2 ..0 (可以)

X=3 , 100/3 ..1 (錯誤)

X=4 , 100/4 ..0 (可以)

X=5 , 100/5 ..0 (可以)

x=6 , 100/6 ..4 (錯誤)

其他軸同樣。

計算(Cal.) - Calculate : 開始作計算模擬。

停止(Stop) :停止模擬