[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)

摘要

 

為您的光學仿真提供最大的多功能性是我們的宗旨之一。 在本教程中,我們將介紹可編程探測器:可以最大限度地靈活地訪問矢量場中包含的任何物理信息或到達探測器的光線(取決于模擬引擎)。 我們在這里使用一個簡單的編程示例來說明其操作流程。

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖1

 

可編程探測器所在位置:目錄

 

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖2

 

可編程探測器所在位置:光學系統

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖3

關于光表征的注釋

 

在物理光學中表示光的矢量電磁場在VirtualLab Fusion中始終可以通過系統進行追跡。

?從計算效率的角度來看,為了使這種方法更實用,最重要的是擁有一套多樣化的數學技術(高效傅里葉變換算法,插值和擬合方法,異構采樣機制等)。

?在當前版本的VirtualLab Fusion中,該技術由多個模擬引擎的共同呈現:

 - 光線追跡:純光線追跡,產生2D和3D結果

 - 經典場追跡:可處理等距采樣的EM場數據

 - 第二代場追跡:還能夠處理非等距的EM場數據

?這與可編程探測器相關:探測器的良好實施需要考慮不同引擎中的光線表現方式!

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖4

 

關于光表征的注釋

 

?此外,為了表達光的一系列重要物理屬性(部分相干,例如,無論是時間還是空間),VirtualLab使用模態分解。

 

?可通過一系列索引在可編程探測器中訪問不同的模態。

 

?如果要可編程探測器呈現要求的正確物理特性,則考慮不同的模態也是至關重要的!

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖5

 

編寫代碼:等距場數據

 

?可編程探測器提供兩種不同的編程控制設置。 這些與模擬引擎有關。 第一個標題為等距場數據的代碼段,處理在等距矩形x,y網格上采樣的電磁場對象。

?這是麥克斯韋方程的直接結果,在均勻介質中,六個電磁分量中只有兩個是獨立的; 因此,到達探測器的僅由Ex和Ey分量組成,所有其他分量因此可以明確地按需計算。

?根據輸入場的偏振特性,Ex和Ey可以是兩個獨立的函數(局部偏振),也可以通過常數Jones'向量(在x和y是常數)從單個場函數U獲得,因此Ex = Jx * U和Ey = Jy * U。

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖6

 

提示:全局參數(Global Parameters),代碼段幫助(Snippet Help),高級設置選項卡(Advanced Settings tabs)和界面的其他方面與VirtualLab中的其他可編程元件一致。

編寫代碼:等距場數據

?右側面板顯示可用的獨立參數列表。

?IndexOfDetector和IndexOfLinkage指的是包含相關探測器的光學系統配置中的相應元件。

?SystemTemperature和SystemPressure是整個系統的參數,其值可以在代碼中用于實現與溫度和壓力相關的響應。

?AutomaticFieldSize,...,ManualNumberSamplingPoints是影響最終等距采樣場結果的參數,其值可在探測器配置對話框的“探測器窗口”和“分辨率”選項卡中進行修改。

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖7

提示:全局參數(Global Parameters),代碼段幫助(Snippet Help),高級設置選項卡(Advanced Settings tabs)和界面的其他方面與VirtualLab中的其他可編程元件一致。

 

編寫代碼:等距場數據

?ResolveLinearPhase和ResolveRelativePosition是標志,其值可在探測器配置對話框的“探測器函數”選項卡中進行修改。 它們表明用戶希望保持存儲在光場內部坐標系中的線性相位和位置移位,或相反地,精確地分辨(這導致更高的采樣要求,如Shannon-Nyquist所示)。 程序員有責任實現能夠以某種方式正確反映這些愿景的代碼。

?InputField表示到達探測器的光場(等距采樣)。 遵循VirtualLab的模式概念,它由一組完全自相關的電磁模式組成,它們之間可以表現出不同的相干特性,如實地模擬物理場的相干特性。

?ParentLightPath是指包含相關探測器的光學系統。 使用Snippet Body將支持函數中的部分代碼分組。

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖8

提示:全局參數(Global Parameters),代碼段幫助(Snippet Help),高級設置選項卡(Advanced Settings tabs)和界面的其他方面與VirtualLab中的其他可編程元件一致。

 

編寫代碼:非等距場和光線數據

?可編程探測器中的另一個編程對話框處理非等距采樣的場數據和光線。

?右側的面板再次顯示可用的獨立參數列表。

?與等距采樣場的代碼段的唯一區別在于InputField被RayTracingResult替換。

?不要讓RayTracingResult這個名字欺騙你! 這種術語已經過時,將在未來的版本中逐步淘汰。

?對于非等距場,矢量場樣本可能與光線樣本重合。 因此,當所選引擎是第二代場追跡時,此代碼段可以返回光線信息(如果使用光線追跡引擎運行模擬)和物理光學結果。 程序員有責任考慮這兩種情況。

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖9

輸出 

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖10

?對于兩種代碼段,可編程探測器必須返回DetectorResultObject []數組。

?此類對象可以包含

 - 物理量值:例如,計算功率的探測器

 - 2D圖形表示:想象一個探測器,顯示探測器平面中的所有六個電磁分量。

?每一個DetectorResultObject [i]對應于一個物理量大小或一個2D圖形。

?可編程探測器的結果可用于參數掃描或參數優化!

?自定義探測器可以保存在目錄中供以后使用。

 

編程探測器探測入射光譜中的最小和最大波長

 

要求的自定義探測器的規格

?本例程產生的自定義探測器必須適用光線和場追跡兩個引擎。

 

?可編程探測器將產生至少三個結果:

 - 光譜中的樣本總數

 - 光譜中存在的最小波長的值

 - 光譜中存在的最大波長的值

 

?此外,還將包含用戶控制的布爾參數。

 

?此布爾參數將允許用戶選擇是否要返回其他結果:此附加結果對應于到達探測器的光(光線或場)。

 

可編程探測器所在位置:目錄

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖11

 

可編程探測器所在位置:光學系統

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖12

可編程探測器:全局參數

?點擊打開“編輯”對話框后,轉到“全局參數”選項卡。

?在那里,添加和編輯一個全局參數:

 - Boolean ShowLight = false(false,true):用戶定義的參數,用于表示確定到達探測器的光(矢量場或光線)是否將作為探測器結果與光譜中波長最小值和最大值一起返回。。

?請注意,“全局參數”,“代碼段幫助”和“高級設置”選項卡以及“代碼段分段(Snippet Body)”在兩種控制模式(等距采樣場,光線和非等距采樣場)共享和共用。

 

提示:此處可以添加一些陳述文本以便其他使用者理解和使用該代碼段。

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖13

 

可編程探測器:代碼段幫助(Snippet Help)

?可選功能“Optional”:您可以使用“代碼段幫助”選項卡編寫指令,說明以及與代碼段相關的一些元數據。

 

?此選項對于使用可編程元件跟蹤進度非常有用。

 

?當可編程元件被發送給其他用戶處理時,它的作用發揮得尤為明顯!

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖14

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖15

 

可編程探測器:編寫代碼(1)

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖16

 

可編程探測器:編寫代碼(2)

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖17

 

可編程探測器:比較代碼段

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖18

?變量需要在兩個代碼段中分別獨立聲明。

?甚至可以使用不同的命名法!

?程序員有責任確保代碼在兩個代碼段中以相同的方式運行。

?在所有全局參數(包括用戶定義的參數)中,只有一個與代碼段相關:與光表示相對應的參數(InputField?? RayTracingResult)

 

可編程探測器:使用您的代碼段(Snippet)

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖19

 

將自定義探測器保存到目錄

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖20

 

可編程探測器的輸出

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖21

測試代碼!

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖22

 

測試代碼!

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖23

 

文件信息

[VirtualLab] 如何使用可編程探測器和示例(最小和最大波長)的圖24

 

更多閱覽

-  Programming a Degree of Coherence Detector

-  Programming a Detector for Diffractive Optics Merit Functions Calculation

 

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP