PR+L6DT_ 為您的
光學(xué)仿真提供最大的多功能性是我們的宗旨之一。在本文檔中,我們將向您展示如何編寫(xiě)自定義表面:即如何定義高度函數(shù)h(x,y)。該
函數(shù)是在
參數(shù)化平面上用x,y坐標(biāo)來(lái)表示3D表面。我們可以使用這些表面來(lái)配置
系統(tǒng)中的光學(xué)組件。在
VirtualLab的默認(rèn)模板中,我們提供最基本的錐形表面; 但在本
教程中,我們使用球面作為簡(jiǎn)單的
編程示例。
_6Z}_SiOl v)c[-:"z
BN]{o(EB 可編程界面所在位置:目錄
ov xX.hO 1b``y
QKP@+E_U 提示:您可以在界面目錄中保存自定義界面“customized interface”(作為用戶自定義“User Defined”)供以后使用。
Jf</83RZ Au"7w=G`f 可編程界面所在位置:組件
!'5t(Zw5 ^U;r>[T9h
LX%UkfA9 yt5'2!jc L"x9O'U 編寫(xiě)代碼
M/x*d4b_ .ng:Z7 i_'u:P<t •右側(cè)面板顯示了可用的獨(dú)立參數(shù)列表。
=5kTzH. •x和y表示獨(dú)立變量,即平面上的2D坐標(biāo)。
7dh--.i •由孔直徑X“ApertureDiameterX”和孔直徑Y(jié)“ApertureDiameterY”(兩者都在界面的常規(guī)配置對(duì)話框中確定)來(lái)定義x和y的間隔。
lm[LDtc •主函數(shù)中的代碼必須每x,y點(diǎn)返回一個(gè)雙
精度“double”類(lèi)型的值。該值表示該點(diǎn)的高度。所有這些高度值的集合定義了3D表面。
#J w\pOn •使用Snippet Body將支持函數(shù)中的部分代碼分組。
C<B1zgX G5Z_[Q~z
b&g`AnYT @C"w
1} 提示:全局參數(shù)(Global Parameters),代碼段幫助(Snippet Help),高級(jí)設(shè)置選項(xiàng)卡(Advanced Settings tabs)和界面的其他方面與VirtualLab中的其他可編程元素具有等效功能。
#U?=D/ d@QC[$qXj 表面梯度的定義
cERmCe|/CG au?5^u\ Y(97}, •精確計(jì)算界面的梯度是光學(xué)仿真的基礎(chǔ)。
V|T3blG?D •VirtualLab中的可編程界面允許兩種不同的梯度定義模式:數(shù)值模式,具有可調(diào)精度(由
軟件自動(dòng)執(zhí)行)或解析模式(由用戶另外編程)。
];U}'&
".|?A9m_ s9.nU 用戶自定義的表面梯度
B,NHy
C1i F7N4qq1 *{%d{x}l •右側(cè)面板顯示了相同的可用獨(dú)立參數(shù)列表。
1k39KO@ •該情況下,主函數(shù)中的代碼必須返回一個(gè)向量D“VectorD”——一個(gè)帶有兩個(gè)雙精度“double”(實(shí)值)坐標(biāo)的向量。使用Snippet Body將支持功能中的部分代碼分組。
8 aC]" C •盡可能使用梯度的解析定義,以獲得更準(zhǔn)確的替代方案。軟件會(huì)檢查代碼的一致性,但用戶必須確保為梯度輸入的函數(shù)與相應(yīng)的界面一致!
nep-?7x Fq`wx
zKf.jpF^ $?Yw{%W 可編程界面的輸出
noSBwP|v* ^hIKDc!.m yq,%ey8 •輸出是3D表面,其可用于定義系統(tǒng)中實(shí)際光學(xué)組件的界面。
O ]Stf7]%; •在有需要時(shí),可在實(shí)際組件內(nèi)直接編程自定義界面。
K4|{[YpPB •或者,將其保存在目錄中供后續(xù)使用。
j87IxB?o n%%u0a%
vkg."G:= &-B&s.,kj 6~y7A<[^ 9xZ?}S:d C+<z;9` Xw<5VIAHm; 對(duì)球形表面進(jìn)行編程