摘要 t>(}LV.
3R$*G8v
p3{ 3[fDx
THDyb9_g
我们最基本的目标之一是为光学模拟提供最大的通用性。在本教程中,我们将解释如何使用可编程函数,可以将其认为是一个理想化的组件,作用在一个平面上:工作流程需要在x、y平面上定义一个与位置相关的复数函数,然后将其乘以输入场。我们以一个理想的圆柱形透镜为例来详细介绍整个过程。 p EbyQ[
."JtR
在哪里可以找到可编程函数:目录 6J%yo[A(w
G>c:+`KS
0N>R!
%u02KmV.
在哪里可以找到可编程函数:光学设置 <Yy|.=6 D
);5H<[
ygfUy
5IiZnGu
编写代码 $23dcC*hI
)*n2,n
924a1
5\eM3w'd
•右边的面板显示了可用的独立参数列表。 YhNO{4D
•波长是一个默认的独立参数,允许用户实现色散的理想元件(函数)。 VRa>bS
•折射率是另一个默认的独立参数,用于读取嵌入介质的复数折射率。 l|&DI]gw
•最后,x和y是最后两个默认的独立参数。它们跨越了定义理想元件(函数)的平面。 xnD"LK
z;ko )
编写代码 h1.<\GO
]<IK0
z1 P=P%F
L9":=
•主函数对每个x、y(可能也是波长)必须返回一个复数值,然后将其乘以输入场。 3Ja1|;(2
•使用代码段将代码中的部分代码分组到支持函数中。 zsuXN *
•注意,可以在可编程函数的代码中使用导入的参考场和/或堆栈及其相关参数。参考场和堆栈可以在全局参数选项卡中定义。 &+zS4)UK
i-*ZW:
采样 *3]_Huw<
YPNG9^Y
]KE"|}B
M|xs>+r*
•用户必须确保采样(元件后方的场)足够精细,以分辨可编程功能引入的频率。 }MXC0Z~si
•为此,请使用采样选项卡。 \RDS~u\d
•请注意,采样可能取决于定义的全局参数的实际值。 FA3YiX(-e
6@;
P
输出 {<1 ]cP
M"Q{lR
DZE@C^0%
<P1yA>=3`
•可编程函数在一个平面(在x,y范围)上定义的每个波长上产生一个复值函数。 7@uhw">mX
•在光学设置中,它被乘以输入场。 }*9mNE
•提示:已经被编程为一个函数的代码段也可以在可编程光源中使用,反之亦然。 N- :.z]j#_
•该函数可以保存在边界响应目录中,以便以后使用。 g,]GzHV1
X/' t1
圆柱形透镜函数的编程 |g,99YIv>
圆柱形透镜 ].r~?9'/
圆柱形透镜的函数是相位调制的形式: Usz O--.C
R7ze~[oF
f→焦距 SM8Wg>
k→波数 H4"'&A7$
α→光轴与透镜焦距方向之间的夹角 "9bd;Tt:
FH7h?!|t
在哪里可以找到可编程功函数:目录 r!e:sJAB.
GLtd6; V
{7Q)2NC
G3_HX<|f*
在哪里可以找到可编程函数:光学设置 I )wc&>Lc
@Tz}y"VG
*BFG{P
编程界面:全局参数
&-zW1wf
6Mh"{N7
•打开编辑对话框进入全局参数选项卡。 7X`]}z4g
•在这里,添加和编辑两个全局参数。 [Lal_}m?
- double Angle=0度(0度,360度):表示光轴和对焦方向形成的角度。 hYB3tT
- double FocalLength=100 mm(0 m,1 m):表示透镜的焦距。 S-%itrB*
•使用带有小 "注释 "图标的按钮,为你的自定义全局参数添加一些解释。 wlsq[xP
<kOdd)X
<e'/z3TbRW
{U"=}j(
编程界面:代码段帮助 5u=>~yK+
SS*3Qx:[
WiiAIv&
92XG|CWX
•选项:你可以使用代码段帮助选项卡来编写指令、说明和一些与你的代码段相关联的元数据。 B|SE |
•这个选项对追踪你使用可编程元素的进度非常有帮助。 dwJnPJ=z
•当可编程序元素以后被移交给其他用户处理时,这个选项特别有用! 9zE/SDu7\
v+(-\T\i
编程接口:代码段帮助 9oQ$w?=#$
as3*49^9
TY;%nT
编程界面:编写代码 _|VF^\i
%Hu?syo
ex6QHUQ
u5N&W n{
采样 #Oi{7~
vR4omB{
•根据入射场的属性和自定义功能,用户必须在采样选项卡中确定适当的采样。 OEnCN
•例如,在我们的圆柱形透镜的情况下,对于轴上准直入射光束,对于较小焦距的镜头,采样必须更细(采样点数量更多)。 /(8"9Sfm
~yiw{:\
O;+
sAt
{4eI}p<
编程界面:使用你的代码 D6,Ol4d
^C'{# p"
i5cK5MaD
suHisc*
保存自定义的函数到目录 |.;*,bb|3
(;9j#x
nxMZd=Y
<f#pS[A
可编程函数的输出 wC?>,LOl
MO@XbPZB
moRo>bvN~
^h!}jvqE
测试代码 9#E)H?`g
K57u87=*X?