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

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

    上一主题 下一主题
    离线infotek
     
    发帖
    4701
    光币
    17881
    光券
    0
    只看楼主 倒序阅读 楼主  发表于: 2020-08-28
    摘要 -4nSiI  
    _16IP  
    为您的光学仿真提供最大的多功能性是我们的宗旨之一。 在本教程中,我们将解释如何使用可编程函数。它也可以被认为是在单个平面中起作用的理想化组件:工作流程需要在x,y平面上定义一个位置相关的复值函数,然后将该函数乘到入射场上。 我们以理想的柱面透镜为例来详细介绍整个过程。 y?yWM8  
    !Di*y$`}b  
    {{ /-v3n  
    V [r1bF  
    可编程函数所在位置:目录 .]H1uoci|  
    >Yt+LdG!-  
    4Q n5Mr@<  
    4]%v%6 4U  
    可编程函数所在位置:光学设置 +'QE-#%{=  
    Z2hIoCT  
    0X[uXf  
    编写代码
    k1Thjt  
    Ob>M]udn  
    Iji9N!Yx  
    •右侧面板显示可用的独立参数列表。 0dKi25J  
    •波长(Wavelength)是默认的独立参数,允许用户实现色散理想组件(函数)。 %:hU:+G E  
    •折射率(RefractiveIndex)是另一个默认的独立参数,它读取嵌入介质的复值折射率。 ,T\)%q  
    •最后,x和y是最后两个默认的独立参数。 它们在定义理想组件(函数)的平面上。 $g+q;Y~i0  
    •主函数必须返回每x,y(可能还有波长)的复数值,然后将其乘以入射场。 :ZP`Y%dt'  
    •使用Snippet Body将支持函数中的部分代码分组。 "fX9bh^  
    •请注意,可以在可编程函数的代码中使用导入的参考场和/或堆栈及其相关参数。 可以在“全局参数”选项卡中定义参考场和堆栈。 $@ Fvl-lK  
    z]O,Vqpl?  
    Z/w "zCd  
    |>L|7>J{<d  
    提示:全局参数(Global Parameters),代码段帮助(Snippet Help),高级设置选项卡(Advanced Settings tabs)和界面的其他方面与VirtualLab中的其他可编程元素具有等效功能。 G tSvb6UNn  
    z9 )I@P"  
    采样 Ec;{N  
    +1Ua`3dWN_  
    ?wQaM3 |^:  
    •用户必须确保采样(组件后的场)足够精细,以解决可编程函数引入的频率。 WyD L ah^/  
    •为此,请使用“采样”选项卡。 XDcA&cM}p  
    •请注意,采样可能取决于定义的全局参数的实际值。 S@PAtB5  
    xD3Y-d9  
    wEJ) h1=)^  
    BmGY#D,  
    输出 .|Zt&5osI  
    .S =^)  
    #Kd^t =k  
    •可编程函数对每个波长产生一个定义在平面上的复值函数,用x,y表示。 :M'V**A(  
    •在光学设置中,它与入射场相乘。 ~Dz`O"X3  
    •提示:已编程用于函数的代码段也可用于可编程光源,反之亦然。 gV-x1s+  
    •该功能可以保存在边界响应(Boundary Responses)目录中供以后使用。 8#&axg?a  
    WC<K(PP  
    fF*{\  
    N! N>/9  
    对柱面透镜函数进行编程 mFdj+ &2\  
    ~KF>Jow?Y  
    柱面透镜 X[Q:c4'  
    FJl_2  
    }g\1JSJ%H  
    柱面透镜的函数是以下形式的纯相位调制: X[{tD#  
    /:],bNb  
    G^Q8B^Lg  
    可编程函数所在位置:目录 UZ` <D/  
    gZLzE*NZ  
    9;*-y$@  
    sa26u`?  
    可编程函数所在位置:光学设置 |q:p^;x  
    2y0J~P!I  
    QFS5PZ  
    可编程界面:全局参数 byW9]('e  
    =T0;F0@#4  
    E"l/r4*f@  
    •打开“编辑”对话框后,转到全局参数选项卡。 5i42o+'  
    •在那里,添加和编辑两个全局参数: fi.[a8w:W  
    - 双精度类型角度(double  Angle)= 0度(0度,360度):表示由光轴和聚焦方向形成的角度。 &+v!mw>  
    -  双精度类型焦距(double  FocalLength)= 100毫米 Z:2a_A tm  
    (0米,1米):表示镜头的焦距。 Bl"BmUn  
    •使用带有“注释”图标的小按钮可以为您的自定义全局参数添加一些说明。 &rmXz6 F  
    提示:此处可能有必要添加一些陈述文本以促进其他使用者理解和使用代码段。 c'8pTP%[  
    IW<nfg  
    CC<(V{Png  
    c{X:0man  
    可编程界面:代码段帮助(Snippet Help) L~PBD?l  
    2Vn~o_ga  
    nGqD{!i<  
    D; bHX  
    qP}187Q1  
    •可选功能“Optional”:您可以使用“代码段帮助”选项卡编写指令,说明以及与代码段相关的一些元数据。 k,mgiGrQ  
    •此选项对于使用可编程元素跟踪进度非常有用。 P wY~L3,  
    •当可编程元素被发送给其他用户处理时,它的作用发挥得尤为明显! C =6.~&(  
    | pA  
    6(5YvT  
    c :{#H9  
    可编程界面:编写代码 OrJuE[R.  
    G'M;]R9EP  
    +6$|No  
    'Cv>V"X: `  
    采样 BM,]Wjfdj  
    aA|<W g  
    "^UJC-  
    •根据入射场和自定义函数的属性,用户必须在“采样”选项卡中确定适当的采样。 -s zSA  
    •例如,对于我们的柱面透镜和轴上准直入射光束,对于较小的镜头焦距,采样必须更精细(更多的采样点)。 fUg<+|v*  
    pp2,d`01[L  
    5S EyAhB  
    pmIOV~K  
    可编程界面:使用您的代码段(Snippet) {%"n[DLps  
    rEF0A&5  
    26&$vgO~:  
    ?m(]@6qa  
    将自定义函数保存到目录中 T|%pvTIe  
    t{ R\\j  
    L^{1dVGWNa  
    BIk0n;Kz<L  
    提示:如果您使用目录来定义您的自定义界面,系统将会自动提示您将工作保存到目录中。 VPh0{(O^=  
    !'jZ !NFO  
    可编程函数的输出 LrGLIt`  
    ye-EJDZN  
    A%[ BCY_  
    5vmc'Om  
    此表面由代码完全解析定义——完全准确“full accuracy”(已提升到双精度水平) e}u68|\EC  
    cOq'MDr  
    测试代码! hn -!W;j  
    b5@sG^  
    1z6$>{FUR  
    l 10p'9 n  
    文件信息 aWCZ1F  
    n?[JPG2X  
    0|J]EsPxu  
    2d#3LnO  
    X>la!}sV  
    QQ:2987619807 nqFJNK]a  
     
    分享到