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

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

    上一主题 下一主题
    在线infotek
     
    发帖
    5479
    光币
    21559
    光券
    0
    只看楼主 倒序阅读 楼主  发表于: 2023-01-19
    5?+ECxPt  
    为您的光学仿真提供最大的多功能性是我们的宗旨之一。 在本教程中,我们将解释如何使用可编程函数。它也可以被认为是在单个平面中起作用的理想化组件:工作流程需要在x,y平面上定义一个位置相关的复值函数,然后将该函数乘到入射场上。 我们以理想的柱面透镜为例来详细介绍整个过程。 ?{W@TY@S  
    ?\MvAG7Y  
    -lr)z=})  
    |^K-m42  
    可编程函数所在位置:目录 `9a %vN  
    8OoKP4,;  
    %xtTh]s  
    ,bhOIuep3  
    可编程函数所在位置:光学设置 Q}p+/-U\  
    LeBuPR$  
    w=.w*?>  
        编写代码 7iCH$}  
    P?GHcq$\  
    t#tAvwFM8  
    •右侧面板显示可用的独立参数列表。 M>+FIb(  
    •波长(Wavelength)是默认的独立参数,允许用户实现色散理想组件(函数)。 Az.(tJ X"  
    •折射率(RefractiveIndex)是另一个默认的独立参数,它读取嵌入介质的复值折射率。 (| DmYn!  
    •最后,x和y是最后两个默认的独立参数。 它们在定义理想组件(函数)的平面上。 0 e 1W&  
    •主函数必须返回每x,y(可能还有波长)的复数值,然后将其乘以入射场。 .LDK+c  
    •使用Snippet Body将支持函数中的部分代码分组。 Z?k4Kb  
    •请注意,可以在可编程函数的代码中使用导入的参考场和/或堆栈及其相关参数。 可以在“全局参数”选项卡中定义参考场和堆栈。 !+tz<9BBY  
    vzl+0"  
    Z -3i -(  
    MP/6AAt7=|  
            提示:全局参数(Global Parameters),代码段帮助(Snippet Help),高级设置选项卡(Advanced Settings tabs)和界面的其他方面与VirtualLab中的其他可编程元素具有等效功能。 (uV ~1  
    (q'w"qj  
    采样 /QDlm>FM4  
    vL"U=Q+/eY  
    mM.-MIp  
    •用户必须确保采样(组件后的场)足够精细,以解决可编程函数引入的频率。 x/*ndH  
    •为此,请使用“采样”选项卡。 qdoJIP{  
    •请注意,采样可能取决于定义的全局参数的实际值。 mJT<  
    O,(p><k$/  
    <Cc}MDM604  
    <rd7<@>5D  
    输出 fC>3{@h}*  
    mo1(dyjx  
    P@P(&{@  
    •可编程函数对每个波长产生一个定义在平面上的复值函数,用x,y表示。 __HPwOCG7  
    •在光学设置中,它与入射场相乘。 _:ypPR J  
    •提示:已编程用于函数的代码段也可用于可编程光源,反之亦然。 xQV5-VoFC  
    •该功能可以保存在边界响应(Boundary Responses)目录中供以后使用。  DJ?kQ  
    ~B0L7}d  
    j0b?dKd  
    P$z8TDCH  
    对柱面透镜函数进行编程 8 x$BbK  
    pp{Za@j  
    柱面透镜 ~e,k71  
    Qhlgu!  
    JBa( O- T  
            柱面透镜的函数是以下形式的纯相位调制: =KfV;.&  
    K)5'Jp@  
    ~~eR,HYk  
            可编程函数所在位置:目录 ~IvAnwQ'  
    z(]14250  
    Bw2-4K\"kc  
    (=:9pbP  
    可编程函数所在位置:光学设置 =Q985)Y&  
    4%wP}Zj#  
    ~nk{\ rWO  
        可编程界面:全局参数 bQG2tDvu[  
    t,#9i#q#  
    [4uTp[U!r  
    •打开“编辑”对话框后,转到全局参数选项卡。 lA[BV7.=7  
    •在那里,添加和编辑两个全局参数: l \~w(8g<A  
    - 双精度类型角度(double  Angle)= 0度(0度,360度):表示由光轴和聚焦方向形成的角度。 mY9^W2:  
    -  双精度类型焦距(double  FocalLength)= 100毫米 uJ jm50R<  
            (0米,1米):表示镜头的焦距。 nb}*IExd  
    •使用带有“注释”图标的小按钮可以为您的自定义全局参数添加一些说明。 6 R}]RuFQ  
            提示:此处可能有必要添加一些陈述文本以促进其他使用者理解和使用代码段。 >r+Dl\R  
    3vx*gfr3  
    SaK aN#C  
    UFnz3vc  
    可编程界面:代码段帮助(Snippet Help) ER0nrTlB<  
    M\5aJ:cQ+  
    L&3Ak}sh  
         _l$V|  
    Y;3DU1MG0  
    •可选功能“Optional”:您可以使用“代码段帮助”选项卡编写指令,说明以及与代码段相关的一些元数据。 H8d%_jCr  
    •此选项对于使用可编程元素跟踪进度非常有用。 3|4jS"t{f  
    •当可编程元素被发送给其他用户处理时,它的作用发挥得尤为明显! PveY8[i  
    G+Ft2/+\  
    6gz !K"S  
         6Yw;@w\  
    可编程界面:编写代码 wc7gOrPpm  
    nX(2&<  
    }Z5f5q  
         tU2 8l.  
    采样 5Vo8z8]t`  
    uan%j]|q%  
    R;+vE'&CO  
    •根据入射场和自定义函数的属性,用户必须在“采样”选项卡中确定适当的采样。 W]E6<y'  
    •例如,对于我们的柱面透镜和轴上准直入射光束,对于较小的镜头焦距,采样必须更精细(更多的采样点)。 )xgOl*D  
    9 ?"]dEM  
    3F fS2we  
         7: 7i}`O  
    可编程界面:使用您的代码段(Snippet) ^ NZq1c  
    KQ0Zy  
    OwXw9  
         olc7&R  
    将自定义函数保存到目录中 O_%X>Q9  
    'Fi\Qk'D@  
    A1Tk6i<F1  
    "G. L)oD  
    提示:如果您使用目录来定义您的自定义界面,系统将会自动提示您将工作保存到目录中。 zu8   
    cMxuG'{=.  
    可编程函数的输出 ;Fw{p{7<  
    VJW%y)_[  
    ;a@%FWc  
         _P6e%O8C#  
    此表面由代码完全解析定义——完全准确“full accuracy”(已提升到双精度水平) t[HfaW1W  
    JC| j*x(k/  
    测试代码! $ ?ayE  
         o+{]&V->gN  
    * E$&  
      
     
    分享到