切换到宽版
  • 广告投放
  • 稿件投递
  • 繁體中文
    • 532阅读
    • 0回复

    [技术]如何使用可编程函数及示例(柱面透镜) [复制链接]

    上一主题 下一主题
    离线infotek
     
    发帖
    6613
    光币
    27214
    光券
    0
    只看楼主 倒序阅读 楼主  发表于: 2024-08-22
    摘要 ~L4eZ  
    Fu)Th|5GZ  
    为您的光学仿真提供最大的多功能性是我们的宗旨之一。 在本教程中,我们将解释如何使用可编程函数。它也可以被认为是在单个平面中起作用的理想化组件:工作流程需要在x,y平面上定义一个位置相关的复值函数,然后将该函数乘到入射场上。 我们以理想的柱面透镜为例来详细介绍整个过程。 @2' %o<lF  
    ^ vbWRG~  
    <k]qH-v4  
    TnE+[.Qu  
    可编程函数所在位置:目录 nGrVw&  
    L2|aHI1'l  
    8A{6j  
    ]d'^Xs  
    可编程函数所在位置:光学设置 rt b*n~  
    2u:4$x8  
    C6@t  
    编写代码
    +?d}7zh  
    dr })-R  
    x / XkD]Hq  
    •右侧面板显示可用的独立参数列表。 -G b-^G  
    •波长(Wavelength)是默认的独立参数,允许用户实现色散理想组件(函数)。 xmH-!Da  
    •折射率(RefractiveIndex)是另一个默认的独立参数,它读取嵌入介质的复值折射率。 # *,sa  
    •最后,x和y是最后两个默认的独立参数。 它们在定义理想组件(函数)的平面上。 h~miP7,c<u  
    •主函数必须返回每x,y(可能还有波长)的复数值,然后将其乘以入射场。 [7W(NeMk  
    •使用Snippet Body将支持函数中的部分代码分组。 AcC8)xRpk4  
    •请注意,可以在可编程函数的代码中使用导入的参考场和/或堆栈及其相关参数。 可以在“全局参数”选项卡中定义参考场和堆栈。 "mZ.V  
    a8s4T$  
    3jPB#%F  
     Q_4Zb  
    提示:全局参数(Global Parameters),代码段帮助(Snippet Help),高级设置选项卡(Advanced Settings tabs)和界面的其他方面与VirtualLab中的其他可编程元素具有等效功能。 T1N H eH>  
    ;f%|3-q1[  
    采样 xncwYOz  
    3Gd0E;3sk~  
    ]T^ is>  
    •用户必须确保采样(组件后的场)足够精细,以解决可编程函数引入的频率。 OFy,B-`A{  
    •为此,请使用“采样”选项卡。 i\p:#'zk5  
    •请注意,采样可能取决于定义的全局参数的实际值。 *Bw#c j  
    Tsz NlRxc  
    +ld;k/  
    ;KcFy@ 6q5  
    输出 arj$dAW  
    s4t0f_vj`  
    6?SFNDQ"C  
    •可编程函数对每个波长产生一个定义在平面上的复值函数,用x,y表示。 z="L4  
    •在光学设置中,它与入射场相乘。 uec|S\~M  
    •提示:已编程用于函数的代码段也可用于可编程光源,反之亦然。 mJMq{6;  
    •该功能可以保存在边界响应(Boundary Responses)目录中供以后使用。 =`p&h}h-L  
    PDC]wZd/  
    DuNcX$%%  
    (cs~@  
    对柱面透镜函数进行编程 <lo`q<q  
    }gCHQ;U7`  
    柱面透镜 dVGbe07  
    =_QkH!vI  
    )zJ=PF  
    柱面透镜的函数是以下形式的纯相位调制: 2k+16/T  
    Sdc*rpH"(  
    hKksVi  
    可编程函数所在位置:目录 ;[Tyt[  
    #&siHHs \  
    9} *$n&B  
    OoaY  
    可编程函数所在位置:光学设置 -1 W  
    J Jy{@[m  
    D#v?gPo4  
    可编程界面:全局参数 SE!L :  
    f z%tA39m  
    oh\1>3,Ns  
    •打开“编辑”对话框后,转到全局参数选项卡。 K0<yvew  
    •在那里,添加和编辑两个全局参数: (,LL[&;:  
    - 双精度类型角度(double  Angle)= 0度(0度,360度):表示由光轴和聚焦方向形成的角度。 3w'W~  
    -  双精度类型焦距(double  FocalLength)= 100毫米 ]kS7n @8  
    (0米,1米):表示镜头的焦距。 pULsGb  
    •使用带有“注释”图标的小按钮可以为您的自定义全局参数添加一些说明。 u(hC^T1  
    提示:此处可能有必要添加一些陈述文本以促进其他使用者理解和使用代码段。 6V;:+"BkJ  
    },PBqWe  
    PU+1=%'V  
    AZ wa4n}"  
    可编程界面:代码段帮助(Snippet Help) s.y}U5Ty?P  
    Dl\d_:+  
    7) 0q--B  
    AgsR-"uh  
    A&l7d0Z^j5  
    •可选功能“Optional”:您可以使用“代码段帮助”选项卡编写指令,说明以及与代码段相关的一些元数据。 Wz{%"o  
    •此选项对于使用可编程元素跟踪进度非常有用。 bi,mM,N/  
    •当可编程元素被发送给其他用户处理时,它的作用发挥得尤为明显! AbZ:(+@cP  
    "Ot{^ _e  
    :bv|Ah  
    Nza; O[  
    可编程界面:编写代码 FpdHnu i1  
    };p~A-E=  
    ifrq  
    iQ{z6Qa  
    采样 %#9P?COs&W  
    xid:"y=_&  
    ]) n0MF)p  
    •根据入射场和自定义函数的属性,用户必须在“采样”选项卡中确定适当的采样。 oKiD8':  
    •例如,对于我们的柱面透镜和轴上准直入射光束,对于较小的镜头焦距,采样必须更精细(更多的采样点)。 owM mCR  
    hbnS~sva  
    'w6hW7"L  
    CB]l[hM$  
    可编程界面:使用您的代码段(Snippet) V}:'Xgp*N  
    w_H2gaQ  
    hVZo"XUb  
    (}0S1)7t  
    将自定义函数保存到目录中 w\DspF  
    7TdQRB  
    Ff)@L-Y\K  
    [<Jp#&u6sb  
    提示:如果您使用目录来定义您的自定义界面,系统将会自动提示您将工作保存到目录中。 CWvlr nv  
    _BwKY#09Zp  
    可编程函数的输出 UoRDeYQ`E  
    _ n_sfT6)B  
    e YDUon  
    B^m!t7/,  
    此表面由代码完全解析定义——完全准确“full accuracy”(已提升到双精度水平) f9F2U )  
    X <FOn7qf  
    测试代码! DZP*x  
    * gHCy4u{  
    ~o Fh>9u  
    H9E(\)@  
     
    分享到