摘要
gEcnn.(S 3Yn:fsy
]L5Z=.z& ^(E"3 c 我们最基本的目标之一是为
光学模拟提供最大的通用性。在本
教程中,我们将解释如何使用可编程函数,可以将其认为是一个理想化的组件,作用在一个平面上:工作流程需要在x、y平面上定义一个与位置相关的复数函数,然后将其乘以输入场。我们以一个理想的圆柱形
透镜为例来详细介绍整个过程。
'p4da2% w*|= k~z 在哪里可以找到可编程函数:目录
r4]hS`X~% k1~nd=p
g_-?h&W #n6FQ$l8m 在哪里可以找到可编程函数:光学设置
RPa?Nv?e CDwFVR'_Af
4]|9!=\
t-?KKU8 编写代码
9-X{x95] M ,.0[+
,_wm, =Qjw.6@ •右边的面板显示了可用的独立
参数列表。
WrIL]kJw^ •波长是一个默认的独立参数,允许用户实现色散的理想元件(函数)。
LOyCx/n •折射率是另一个默认的独立参数,用于读取嵌入介质的复数折射率。
WF3DGqs_] •最后,x和y是最后两个默认的独立参数。它们跨越了定义理想元件(函数)的平面。
,?7xb]h y~4SKv
$ 编写代码
&deZ URmAI8fq*M
UIm[DYMS xPn'yo •主函数对每个x、y(可能也是
波长)必须返回一个复数值,然后将其乘以输入场。
U_N5~#9 •使用代码段将代码中的部分代码分组到支持函数中。
2Be ?5+ •注意,可以在可编程函数的代码中使用导入的参考场和/或堆栈及其相关参数。参考场和堆栈可以在全局参数选项卡中定义。
YI? C-, x):k#cu[L 采样
?-RoqF 8VAYIxRv
D-2v>l_ ;?O883@r8 •用户必须确保采样(元件后方的场)足够精细,以分辨可编程功能引入的频率。
u+I r:k •为此,请使用采样选项卡。
E<98ahZ?l •请注意,采样可能取决于定义的全局参数的实际值。
~_# Y,)S!z N c&i) qh 输出
'!r+Tz a@V/sh
9wDBC~. +cE tm •可编程函数在一个平面(在x,y范围)上定义的每个波长上产生一个复值函数。
mv9E{m •在光学设置中,它被乘以输入场。
GP7)m •提示:已经被编程为一个函数的代码段也可以在可编程
光源中使用,反之亦然。
Gn2bZ%l •该函数可以保存在边界响应目录中,以便以后使用。
I[cV"BDa ,;+91lR3 圆柱形透镜函数的编程
4/-))F&s 圆柱形透镜
#?b^B~ # 圆柱形透镜的函数是相位调制的形式:
w$U/;C
foP>w4pB f→
焦距 7gdU9c/q, k→波数
skC|io-Zv α→光轴与透镜焦距方向之间的夹角
>b!X&JU f2w=ln 在哪里可以找到可编程功函数:目录
gw~em 33,JUQ2u
y
T1Qep w?$u! X 在哪里可以找到可编程函数:光学设置
*3etxnQc R6WgA@Z|r
M_e$l`"G 编程界面:全局参数
:(?hLH.W[ %&=(,;d •打开编辑对话框进入全局参数选项卡。
;KZtW •在这里,添加和编辑两个全局参数。
;MRC~F= - double Angle=0度(0度,360度):表示光轴和对焦方向形成的角度。
!$KhL.4P - double FocalLength=100 mm(0 m,1 m):表示透镜的焦距。
@BHS5^| •使用带有小 "注释 "图标的按钮,为你的自定义全局参数添加一些解释。
QSs$ ?od}~G4s#
DP6{HR$L cLyuCaH>c 编程界面:代码段帮助
x 1x j\O 3}#XA+Z
;iC'{S <K=B(-~ •选项:你可以使用代码段帮助选项卡来编写指令、说明和一些与你的代码段相关联的元数据。
:kiO •这个选项对追踪你使用可编程元素的进度非常有帮助。
~ Dp:j*H •当可编程序元素以后被移交给其他用户处理时,这个选项特别有用!
@aV~.!! @gqs4cg{f 编程接口:代码段帮助
1={Tcq\] <Ec)m69P
sc $QbO c 编程界面:编写代码
R;TEtu7 <
8 Y<w|Hh
9X{nJ" X-N$+[# 采样
Rn~Xu)@e ?'/5%f` •根据入射场的属性和自定义功能,用户必须在采样选项卡中确定适当的采样。
ks#Z~6+3 •例如,在我们的圆柱形透镜的情况下,对于轴上准直入射
光束,对于较小焦距的
镜头,采样必须更细(采样点数量更多)。
n40MP5RxY if!`Qid
M+R)P+ `jQ}^wEgu 编程界面:使用你的代码
{|J2clL GWqY$YT
`Ig2f$} FPUR0myCU 保存自定义的函数到目录
B%g :Z Qhr]eu;z
#HuA(``[d UrcN? 可编程函数的输出
'GzhZ`E6 G*~*2>~
,f0g|5yDf \y )4`A 测试代码
@oc%4~zl E e\-q