首页 -> 登录 -> 注册 -> 回复主题 -> 发表主题
光行天下 -> 讯技光电&黉论教育 -> 如何使用可编程函数及示例(柱面透镜) [点此返回论坛查看本帖完整版本] [打印本页]

infotek 2023-01-19 08:27

如何使用可编程函数及示例(柱面透镜)

\]d*h]Hms  
为您的光学仿真提供最大的多功能性是我们的宗旨之一。 在本教程中,我们将解释如何使用可编程函数。它也可以被认为是在单个平面中起作用的理想化组件:工作流程需要在x,y平面上定义一个位置相关的复值函数,然后将该函数乘到入射场上。 我们以理想的柱面透镜为例来详细介绍整个过程。 \t~u : D  
|jCE9Ve#  
U*Q5ff7M6"  
wx?{|  
可编程函数所在位置:目录 h"Yqm"U/  
+#*z"a`  
{Z{NH:^  
*#{.\R-D  
可编程函数所在位置:光学设置 8T1DcA*  
KzH}5:qI  
|LGNoP}SA  
    编写代码 G cLp"  
YF[!Hpzq  
o3[sF  
•右侧面板显示可用的独立参数列表。 :+V1682u  
•波长(Wavelength)是默认的独立参数,允许用户实现色散理想组件(函数)。 !NY^(^   
•折射率(RefractiveIndex)是另一个默认的独立参数,它读取嵌入介质的复值折射率。 jKi*3-&  
•最后,x和y是最后两个默认的独立参数。 它们在定义理想组件(函数)的平面上。 Pc-8L]2oaF  
•主函数必须返回每x,y(可能还有波长)的复数值,然后将其乘以入射场。 9+;f1nV  
•使用Snippet Body将支持函数中的部分代码分组。 oG_'<5Bv>  
•请注意,可以在可编程函数的代码中使用导入的参考场和/或堆栈及其相关参数。 可以在“全局参数”选项卡中定义参考场和堆栈。 \?ws0Ax  
mUY:S |  
rM?Dp2  
r.G/f{=<@  
        提示:全局参数(Global Parameters),代码段帮助(Snippet Help),高级设置选项卡(Advanced Settings tabs)和界面的其他方面与VirtualLab中的其他可编程元素具有等效功能。 .j'IYlv/P  
rL+n$p X-  
采样 JFk|Uqs(  
KUqS(u  
,,j=RG_  
•用户必须确保采样(组件后的场)足够精细,以解决可编程函数引入的频率。 z# ?w/NE  
•为此,请使用“采样”选项卡。 _!g NF=  
•请注意,采样可能取决于定义的全局参数的实际值。 D]`B;aE>A*  
qQR YHo>/e  
<!nWiwv  
_G*x:<  
输出 |+=:x]#vV  
e/#&5ISk  
EG8R*Cm,}  
•可编程函数对每个波长产生一个定义在平面上的复值函数,用x,y表示。 Pds*M?&F  
•在光学设置中,它与入射场相乘。 FG36,6N%2j  
•提示:已编程用于函数的代码段也可用于可编程光源,反之亦然。 cz~FWk  
•该功能可以保存在边界响应(Boundary Responses)目录中供以后使用。 $aI MQ[(  
Wjk;"_"gd  
F`}w0=-*(  
i/EiUH/~  
对柱面透镜函数进行编程 i|noYo_Ah\  
+rw3.d  
柱面透镜 fJ lN'F7  
kb\v}gfiD/  
(_5+`YsV  
        柱面透镜的函数是以下形式的纯相位调制: [hj'Yg8{  
-6Si  
'>3RZ& O  
        可编程函数所在位置:目录 ~u& O  
{O oNhN9  
")gCA:1-  
q5?mP6   
可编程函数所在位置:光学设置 )Nd:PnA  
EUS]Se2  
RSeezP6#  
    可编程界面:全局参数 ojqX#>0K  
E1v<-UPbA  
DL!s)5!M  
•打开“编辑”对话框后,转到全局参数选项卡。 0x/V1?gm  
•在那里,添加和编辑两个全局参数: )_.H #|r  
- 双精度类型角度(double  Angle)= 0度(0度,360度):表示由光轴和聚焦方向形成的角度。 J+|V[E<x  
-  双精度类型焦距(double  FocalLength)= 100毫米 Ym2m1  
        (0米,1米):表示镜头的焦距。 54j $A  
•使用带有“注释”图标的小按钮可以为您的自定义全局参数添加一些说明。 \> dG'  
        提示:此处可能有必要添加一些陈述文本以促进其他使用者理解和使用代码段。 W >IKy#  
.Vjpkt:H  
M_)T=s *  
1T?%i  
可编程界面:代码段帮助(Snippet Help) LtIZgOd<  
] CE2/6Ph  
% 7:  
     XArLL5_L  
0].5[Jo  
•可选功能“Optional”:您可以使用“代码段帮助”选项卡编写指令,说明以及与代码段相关的一些元数据。 !_#js  
•此选项对于使用可编程元素跟踪进度非常有用。 nu -wQr  
•当可编程元素被发送给其他用户处理时,它的作用发挥得尤为明显! DcDGrRuh  
%LW~oI.  
rt;>pQ9,  
     JPzPL\  
可编程界面:编写代码 @"2-tn@q_  
HWZ*Htr  
u8=|{)yL  
     emO!6]0gJ  
采样 $MGd>3%y  
%.Y`X(g6/  
Y" |U$  
•根据入射场和自定义函数的属性,用户必须在“采样”选项卡中确定适当的采样。 KJSy7F  
•例如,对于我们的柱面透镜和轴上准直入射光束,对于较小的镜头焦距,采样必须更精细(更多的采样点)。 (dZ&Af  
kS!*kk*a  
gE(03SX  
     A 76yz`D  
可编程界面:使用您的代码段(Snippet) $OuA<-  
/n=/WGl  
^PszZ10T  
     ?2c:|FD  
将自定义函数保存到目录中 .YbD.{]D  
|zlwPi.  
Y?x3JU0_  
7n.J.<+9  
提示:如果您使用目录来定义您的自定义界面,系统将会自动提示您将工作保存到目录中。 T]k@g_  
n$iz   
可编程函数的输出 a r%Rr"  
wEyh;ID3#  
.kV/ 0!q?  
     KDk^)zv%!  
此表面由代码完全解析定义——完全准确“full accuracy”(已提升到双精度水平) 5j %jhby?  
c-{]H8$v  
测试代码! W X9BS$}0  
     K;O\Pd  
Fx2&ji6u  
  
查看本帖完整版本: [-- 如何使用可编程函数及示例(柱面透镜) --] [-- top --]

Copyright © 2005-2025 光行天下 蜀ICP备06003254号-1 网站统计