We have an exciting announcement about badges coming in May 2025. Until then, we will temporarily stop issuing new badges for course completions and certifications. However, all completions will be recorded and fulfilled after May 2025.
Photonics – Chinese

Photonics – Chinese

Topics related to Lumerical and more, in Chinese language.

圆屏夫郎和费衍射仿真时,发现四周具有高级衍射,是什么原因呢?

    • vision
      Subscriber

      老师,您好!

      我最近在做夫琅和费衍射仿真,仿真中遇到两个问题,请您帮忙解答,谢谢!

      1. 仿真周期结构时,使用grating order transmission分析组获得T-grating数据,将数据log后发现这样,图中为什么会出现旁瓣呢?
    • Guilin Sun
      Ansys Employee

      A1: 应该是出现高级衍射了。你可以用Grating分析函数试一下,看看多少衍射级。Ansys Insight: 关于光栅衍射级及其计算

      A2:这个情况是单个结构,不是高级衍射的问题,可能是仿真区和监视器横向尺寸太小的缘故。你看一下监视器边缘的场是否几乎为零?不知道你说的圆屏相对波长有多大,称谓夫郎和费衍射是否恰当。多年前我曾经有过这方面的文章。你可以网上搜一下。还有,此时用TFSA光源计算远场的物理意义可能不清楚,你需要甄别:Ansys Insight: FDTD 初学者: 平面波和全场散射场tfsf光源有什么区别

    • vision
      Subscriber
      老师,您好!
      感谢您的回答。
      Q1:我用grating transmisiion分析组看了衍射级,其衍射级数是26000,该怎样判断是否有高级衍射呢?我看了一下论坛里关于高级衍射问题,您说当衍射角大于70度,可认为是高级衍射,但无限周期由没有衍射角宽度,那这里的横纵坐标(n,m)是什么含义呢?(绿色圆圈里)

      Q2:圆屏半径是波长的12倍左右。我看了探测器边缘,其电场是基本为0的。同时,我将仿真区域和探测器放大了两倍,但是现象还是一样。“还有,此时用TFSA光源计算远场的物理意义可能不清楚,”这句话意思是,使用TFSF光源计算远场不合适?



    • Guilin Sun
      Ansys Employee

      A1:非零级就是高级。

      “您说当衍射角大于70度,可认为是高级衍射”这是指使用大角度PML的情况。注意,你第一个图仿真周期的文件应该修正,仅仿真一个周期,产生如此多的高级衍射也可能哪里出了问题。grating transmisiion分析组仅适合周期结构周期边界条件。感觉好像是仿真时间不够,或许有其它设置问题。请参考光栅例子的设置仔细调整。

      A2:

      “仿真区域和探测器放大了两倍”完全没有必要,一个周期即可。

      “还有,此时用TFSA光源计算远场的物理意义可能不清楚”,意思是,TFSF把直射光减去了,你用TFSA外面的散射场做远场投射的物理意义不明确!你想一想实验时是这样吗?如果要得到单个独立结构的远场,可能使用高斯光束较好,你试一下看看。

      不要同时讨论周期结构和单个独立结构,这样容易混淆。

      本贴先集中精力讨论周期结构。单个独立结构请另外发帖。谢谢!

    • vision
      Subscriber
      老师,您好!
      根据您的建议,我将网格进一步画细之后,其高级衍射消失但衍射级数仍然还是26000.
      然后我减小了周期结构的周期,同时减小了仿真区域,但圆的尺寸没有变,发现衍射级数降低了2800.
      这种现象正常吗?
      期待您的回答。
    • Guilin Sun
      Ansys Employee
      周期结构,周期远大于波长,出现高级衍射是正常的。对于你来说,可能是需要固定合适的周期,合适的网格以及用多层Steep Angle PML再研究可能更好一些。再有问题请将你所设置的参数等贴上来,周期用整数个网格,最厚的PML 测试看看。原结果感觉好像有两个周期结构产生调制一样,特别注意PML反射:增加传播距离上的长度,增加PML厚度看看衍射级改变不?如果改变就说了是有反射产生的问题。
    • vision
      Subscriber
      老师,您好!
      感谢您的回答。
      根据您的建议,改变了模型的设置,周期用整数个网格,PML设置用多层Steep Angle PML,PML层厚度大于半个波长厚度。但仿真的衍射级数仍然没有变化。这是否说明实际衍射级数有那么多呢,还是我的设置仍然没有设置正确呢?将我的设置对比贴上来。

      下面是模型和获得结果的方式。使用grating transmission分析组获得T_grating 。这个T_grating获得的衍射级数分布可以默认为是远场衍射场分布吗?下面的T_grating结果是上面表格中第二项仿真设置模型的结果,衍射级数是2800,衍射级数分布是最后一张图,这个结果正确吗?


    • Guilin Sun
      Ansys Employee
      说实话我没有见过如此多衍射级的情况。周期是波长的多少倍?你可以用光栅方程先计算一下有多少衍射级。如果与仿真差别大,说明仿真可能有问题。你把具体结构参数和周期和波长范围等贴出来我可以测试。

    • vision
      Subscriber
      老师,您好!
      感谢您的回答!
      我在此贴上我的模型设置,请您帮忙测试一下,谢谢!
      期待您的回答。

    • Guilin Sun
      Ansys Employee
      我不知道你怎么设置的,我根据你的参数,得到
      这是10*10周期的结果

      Visualizer 是近似的,用光栅分析(可以借用光栅分析组中的脚本),得到
      材料

      我不知道你哪里设置有问题。

      请重新设置一个文件,按你的参数,仅需要修改:
      1:边界条件XY为周期,Z为PML;
      2: 光源波长为0.55微米
      3:不要用细化网格
      再看看结果如何。





    • vision
      Subscriber
      老师,您好!
      非常感谢您的回答。
      按照您的建议,我又重新设置模型计算了一下,按照您查看结果的方式,查看了一下监视器的衍射级数,其衍射级数是正负30,和您的结果一样。同时也根据光栅分析组获得了和您一样的图。
      不过,以上图是极坐标显示,当查看分析组里的T_grating和num_orders,其结果和以前的一样。num_orders仍然是2800.
      请问老师这是什么原因呢?还是2800代表是数据量呢?

    • Guilin Sun
      Ansys Employee
      没有问题啊!
      衍射级仍然是零级加正负30共61级乘61级。
      ?61*61;
      result: 
      3721  
      考虑到每一列每一行最大的数字是61个,单个行计算是少于这个数的,你可以将衍射角结果提取出来看看。

      2800 代表总的衍射级数。
    • vision
      Subscriber
      老师,您好!
      感谢您的回答。
      根据您的提示,我提取了(30,0)、(29,10)和(22、22)衍射级的衍射角,其衍射角为90度。所以猜测衍射级数2800是因为远场衍射投射到半球上的原因,π*(30)^2=2827,和2800很接近。
      另外我还有两个问题:
      图例选择一样的情况下,极坐标显示的衍射级数分布图和vector坐标显示的衍射级数分布图为何会不同呢,难道是因为显示方式不同?

      衍射级数分布图为何在外围会有几个能量比较大的衍射级数,正常情况下,从0级到高级衍射,能量应该依次减弱,计算结果为何和理论不同呢?
    • vision
      Subscriber
      老师,您好!
      感谢您的回答。
      根据您的提示,我提取了(30,0)、(29,10)和(22、22)衍射级的衍射角,其衍射角为90度。所以猜测衍射级数2800是因为远场衍射投射到半球上的原因,π*(30)^2=2827,和2800很接近。
      另外我还有两个问题:
      图例选择一样的情况下,极坐标显示的衍射级数分布图和vector坐标显示的衍射级数分布图为何会不同呢,难道是因为显示方式不同?
      2.衍射级数分布图为何在外围会有几个能量比较大的衍射级数,正常情况下,从0级到高级衍射,能量应该依次减弱,计算结果为何和理论不同呢?
      期待您的回答。
    • Guilin Sun
      Ansys Employee

      "所以猜测衍射级数2800是因为远场衍射投射到半球上的原因,π*(30)^2=2827,和2800很接近。"

      你这个是估算,实际是每个方向最大61级,你把一个方向加起来看看

      “极坐标显示的衍射级数分布图和vector坐标显示的衍射级数分布图为何会不同呢”

      哪个是vector坐标?本来是球坐标按角度显示的,你现在按直角坐标按衍射级画,当然不一样了,你再想一想是为什么。

      “衍射级数分布图为何在外围会有几个能量比较大的衍射级数,正常情况下,从0级到高级衍射,能量应该依次减弱,计算结果为何和理论不同呢?”

      你没有看到其中一个坐标是0吗?它代表什么意思?你在球坐标上看看。

    • Guilin Sun
      Ansys Employee

    • vision
      Subscriber

      孙老师,您好!

      1. 按照您的提示,计算了一下所有的衍射级,所有衍射级数加到一起等于num_orders, 但是这个最高衍射级是59,前面用grating显示的衍射级数是61啊,为什么不一样呢?


    • vision
      Subscriber
      孙老师,您好! 感谢您的回答。不好意思,上一条发错了。 我现在还有几个疑惑,请您解答。
      1. 按照您的提示,计算了一下所有的衍射级,所有衍射级数加到一起等于num_orders, 但是这个最高衍射级是59,前面用grating显示的衍射级数是61啊,为什么不一样呢?
      2.使用代码存了一下球坐标中的数据,发现其数据量和T_Grating获得的数据量不同呢?T_Grating数据量是35*35,T_grating数据量是61*61,都是获得的各衍射级能量,其数据量应该相同吧。 3.我理解的该图中红圈标出的点是在球坐标中衍射角为90度的衍射级,这种大角度高级衍射在该模型仿真中不应该出现,应该想办法消除吧?   期待您的回答。
    • Guilin Sun
      Ansys Employee

      A1: 你仅看了一个方向的,你把数据导出来已经显示是正负30加零级了,你要再好好琢磨一下,这个应该不是复杂问题,数据都有摆在那里。你想一想什么地方能给出最高衍射级?你做图的坐标是什么数?

      A3:为什么这种高级衍射不应该出现?有什么理论依据吗?如果有理论支撑,也可能是网格精度造成的。不一定正好90度,你把数据提取出来理论。


      我不知道“T_Grating数据量是35*35” 是怎么得到的,请你把所需要的数据都导出来,再到分析组里看看它们是怎么计算出来的,再认真分析一下吧。

    • vision
      Subscriber

      孙老师,您好!

      1. 球坐标获得的数据量是35*35,T_grating获得的数据量是61*61(直角坐标)。他们的数据量为啥不一样呢?

      2.球坐标是按角度显示的,那在坐标图中显示角度的是红色圈内的,还是黄色圈的呢?


      期待您的回复,谢谢!

    • Guilin Sun
      Ansys Employee

      A1: 我不知道你从哪里得到的35*35.此问题已经讨论几次了,你画的直角坐标结果是从球面结果得来的,你看看



      A2: 球坐标的两个角度:方位角和俯仰角,参见 Ansys Insight: 光源和远场变换的角度Theta, phi及其倾斜的坐标面

      此帖子已经反复几次了,如果还有问题,请与周围同学讨论一下,问老师,或者找书看看,有些问题不能仅凭想想,把结果全部输出,逐个检查理解。这个例子衍射级多不方便的话,可以设计衍射级少的,需要时间琢磨。

Viewing 20 reply threads
  • The topic ‘圆屏夫郎和费衍射仿真时,发现四周具有高级衍射,是什么原因呢?’ is closed to new replies.