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

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

    上一主题 下一主题
    离线infotek
     
    发帖
    6080
    光币
    24553
    光券
    0
    只看楼主 倒序阅读 楼主  发表于: 2021-05-21
    摘要 +zs6$OI]V  
    fr#lH3  
    为您的光学仿真提供最大的多功能性是我们的宗旨之一。 在本教程中,我们将解释如何使用可编程函数。它也可以被认为是在单个平面中起作用的理想化组件:工作流程需要在x,y平面上定义一个位置相关的复值函数,然后将该函数乘到入射场上。 我们以理想的柱面透镜为例来详细介绍整个过程。 iY|YEi8  
    ri JyH;)  
    _f3A6ER`  
    ]Hd 0 Y%  
    可编程函数所在位置:目录 !W%HAlUAG[  
    9x?;;qC"m9  
    %&_(IY$d  
    D8?$Fn=  
    可编程函数所在位置:光学设置 u=E?N:I~F  
    BXfaqYb;Q  
    b(Z%#*e  
    编写代码
    _kY5 6  
    zt,-O7I'1  
    .v" lY2:N  
    •右侧面板显示可用的独立参数列表。 MW`a>'0t?  
    •波长(Wavelength)是默认的独立参数,允许用户实现色散理想组件(函数)。 }qD.Ek  
    •折射率(RefractiveIndex)是另一个默认的独立参数,它读取嵌入介质的复值折射率。 ]R4)FH|><  
    •最后,x和y是最后两个默认的独立参数。 它们在定义理想组件(函数)的平面上。 /2@%:b)  
    •主函数必须返回每x,y(可能还有波长)的复数值,然后将其乘以入射场。 7lVIN&.=  
    •使用Snippet Body将支持函数中的部分代码分组。 rp'fli?0e  
    •请注意,可以在可编程函数的代码中使用导入的参考场和/或堆栈及其相关参数。 可以在“全局参数”选项卡中定义参考场和堆栈。 d(@A  
    kuH;AMdv  
    D@^F6am%  
    Pm1 " 0  
    提示:全局参数(Global Parameters),代码段帮助(Snippet Help),高级设置选项卡(Advanced Settings tabs)和界面的其他方面与VirtualLab中的其他可编程元素具有等效功能。 o`77gkLO  
    Rm*}<JN31  
    采样 D+SpSO7yg  
    sRZ:9de+  
    4iLU "~  
    •用户必须确保采样(组件后的场)足够精细,以解决可编程函数引入的频率。 M)J*Df0@  
    •为此,请使用“采样”选项卡。 W1@;94Sb~  
    •请注意,采样可能取决于定义的全局参数的实际值。 sd[QtK^  
    wFJK!9KA8  
    Dz50,*}J  
    okcl-q  
    输出 '!2t9B8XX  
    |?| u-y  
    eYcx+BJ  
    •可编程函数对每个波长产生一个定义在平面上的复值函数,用x,y表示。 qXI30Yo#d  
    •在光学设置中,它与入射场相乘。 og\XLJ}_  
    •提示:已编程用于函数的代码段也可用于可编程光源,反之亦然。 U2AGH2emw  
    •该功能可以保存在边界响应(Boundary Responses)目录中供以后使用。 5{g9Wh[  
    MJG%HakK0  
    RE.@ +A  
    =N{eiJ.(p  
    对柱面透镜函数进行编程 xI<dBg|]+  
    V1:3  
    柱面透镜 P\ s+2/  
    .]e6TFsrO  
    w3w*"M  
    柱面透镜的函数是以下形式的纯相位调制: od}x7RI%m  
    u W|x)g11a  
    d>`(.qvxR  
    可编程函数所在位置:目录 =_dd4`G&<  
    vQ/\BN  
    ^ <VE5OM  
    ziycyf.d  
    可编程函数所在位置:光学设置 K D-_~uIF  
    7:L~n(QpP  
    S <_pGz$V  
    可编程界面:全局参数 +zdkdS,2<  
    "r V4[MVxt  
    'U"3'jh  
    •打开“编辑”对话框后,转到全局参数选项卡。 z{g<y^Im+E  
    •在那里,添加和编辑两个全局参数: oPy zk7{  
    - 双精度类型角度(double  Angle)= 0度(0度,360度):表示由光轴和聚焦方向形成的角度。 "J5Pwvs-  
    -  双精度类型焦距(double  FocalLength)= 100毫米 `fkri k  
    (0米,1米):表示镜头的焦距。 t lERis  
    •使用带有“注释”图标的小按钮可以为您的自定义全局参数添加一些说明。 h<K;VpL6  
    提示:此处可能有必要添加一些陈述文本以促进其他使用者理解和使用代码段。 |I}+!DDuv  
    Kk98FI0]  
    .:ZXtU  
    iFCH$!  
    可编程界面:代码段帮助(Snippet Help) Ql@yN@V  
    ZY!pw6R1>*  
    'TrrOq4  
    OZ;E&IL  
    /V<`L  
    •可选功能“Optional”:您可以使用“代码段帮助”选项卡编写指令,说明以及与代码段相关的一些元数据。 Kg`x9._2  
    •此选项对于使用可编程元素跟踪进度非常有用。 j& o+KV  
    •当可编程元素被发送给其他用户处理时,它的作用发挥得尤为明显! ~9 WJrRWB  
    p\_qHq\;j  
    4D8yb|o  
    8Qz7uPq  
    可编程界面:编写代码 m=.7f9  
    M y"!j,Up  
    pd>a6 lI`  
    K}=8:BaUL  
    采样 @!a]qAt  
    &#oZ>`Qu  
    ~<aeA'>OA  
    •根据入射场和自定义函数的属性,用户必须在“采样”选项卡中确定适当的采样。 ar qLp|  
    •例如,对于我们的柱面透镜和轴上准直入射光束,对于较小的镜头焦距,采样必须更精细(更多的采样点)。 l6B^sc*@  
    u4#~ i0@  
    l&sO?P[ /  
    Go+xL/f  
    可编程界面:使用您的代码段(Snippet) 9poEUjBI  
    ul=a\;3x#|  
    ~2A$R'xb  
    `^bvj]>l  
    将自定义函数保存到目录中 mf]( 3ZL  
    UGC|C F2K  
    zUEfa!#?  
    9{UP)17  
    提示:如果您使用目录来定义您的自定义界面,系统将会自动提示您将工作保存到目录中。 \, %o>M'  
    $>h!J.t  
    可编程函数的输出 %I|+_ z&x  
    ,'1Olu{v[s  
    w-'D*dOi  
    o9T@uWh+  
    此表面由代码完全解析定义——完全准确“full accuracy”(已提升到双精度水平) -M1~iOb  
    x^#6>oOR  
    测试代码! \o62OfF!  
    2iR:*}5  
    iFwyh`Bcg  
    Vyq#p9Q  
    文件信息 Ukh$`q}  
    qr'x0r|<>  
    [V2omSZo  
    QQ:2987619807 (DG@<K,6  
     
    分享到