摘要
為您的仿真提供最大化的多功能性是我們最核心的目標(biāo)之一。這種多功能性在模塊化中體現(xiàn)的最為突出:VirtualLab Fusion 中的其他編程元件(光源、探測器、組件等)都有一個預(yù)定義的輸入和輸出,該模塊為用戶提供了完全的實(shí)施自由。原因之一是其作用在光學(xué)系統(tǒng)之外,因此可由用戶決定其代碼的輸入與輸出:這也意味著讀入和傳送不同的文件類型是基本的。
1. 如何找到Module
2. 編寫代碼
特別重要的是,要熟悉VirtualLab中可用的不同數(shù)據(jù)類型,以及如何讀入和顯示它們。一些有用的例子:
- VL_GUI.AskForDouble() → 提示用戶輸入一個double參數(shù)值。也可使用int和Complex。
- VL_GUI.WriteToMessagesTab() 或 WriteLineToMessagesTab() → 在“消息”選項(xiàng)卡中顯示字符串。 第一個變量不包括回車。 用戶可以使用string內(nèi)的特殊字符 n在任何位置手動添加返回。
- VL_GUI.ShowDocument() → 顯示實(shí)現(xiàn)接口IDocument的任何類的圖形。一個例子是ComplexAmplitude或HarmonicFieldsSet。
- VL_GUI.SelectOpenField() → 提示用戶選擇ComplexAmplitude類型的打開文檔。 其他文檔類型也有類似的選項(xiàng)。
- ComplexAmplitude →
- 設(shè)計用于存儲單色,等距采樣的復(fù)振幅(在平面上的場的橫向分布)的對象。 它存儲了Ex和Ey的ComplexField,無論是全局偏振形式(兩個常見的場函數(shù)和一個在平面中恒定的瓊斯矢量)還是局部偏振形式(Ex和Ey的兩個不同函數(shù))。 根據(jù)麥克斯韋方程,所有其他電磁分量可以根據(jù)需要從這兩個計算得出。
- HarmonicFieldsSet → 用于對ComplexAmpltiude的多個實(shí)例進(jìn)行分組的對象類型。 例如,一個多色場,每個光譜采樣將包含一個ComplexAmpltiude。
- DataArray2D → 包含在2D支持集上定義一個或多個一般復(fù)數(shù)函數(shù)的離散值。 可以等距或非等距地采樣這些值。 函數(shù)及其支持集的維度可供用戶自由定義。 同樣,還存在數(shù)據(jù)陣列的1D版本。
3. Module 的采樣與運(yùn)行
編寫計算兩個場之間標(biāo)準(zhǔn)差的C#模塊
1. 標(biāo)準(zhǔn)偏差
給定兩個采樣在x,y平面上定義的復(fù)函數(shù)f和g,g相對于f的相對標(biāo)準(zhǔn)偏差定義為:
(1)
絕對偏差的計算具有相同的表達(dá)式,但沒有歸一化常數(shù)。
有時,有趣的是允許將復(fù)常數(shù)與個g(x,y)相乘,以使偏差值最小化。這使我們可以僅比較兩個函數(shù)的形狀,而不關(guān)注比例。正如我們在示例中所使用的,在VirtualLab中實(shí)現(xiàn)的用于計算偏差的函數(shù)(我們將在整個示例中使用)允許兩種可能性(有和沒有縮放)。該函數(shù)自動傳遞復(fù)數(shù)常數(shù)的值,使誤差最小化。
2. 如何找到Module
3. 測試代碼
4. Module 的編譯與運(yùn)行
5. 文件和技術(shù)信息
|