The Ansys Innovation Space website recently experienced a database corruption issue. While service has been restored there appears to have been some data loss from November 13. We are still investigating and apologize for any issues our users may have as a result.
Photonics – Chinese

Photonics – Chinese

Topics related to Lumerical and more, in Chinese language.

Ansys Insight: FDTD 和 varFDTD 常见的发散原因以及处理

    • Guilin Sun
      Ansys Employee
      FDTD 和MODE 中的varFDTD使用的都是有限差分时域算法,如果某些设置不当,仿真将会发散,此时后续的计算结果可能不正确。为了防止用户误用其结果,软件在自动结束(即软件检测到Auto shut off max)超过预先设定的数值)时,会在文件的左上角给出提示,参见下面这个图:


      这个提示给出了常见的 两个原因及解决方法 。只要诊断出产生发散的原因,就可以对症下药。一般的方法是,将所有的边界都改为金属Metal,再进行测试。如果测试结果

      1:仍然发散,一般说明其原因主要是因为时间步长可能大了,此时可以减小 dt stability factor(点击FDTD 选Mesh Settings)。缺省值是 0.99, 一般改为0.95或 0.9及可以解决,有时需要更小,需要测试。

      2:如果不发散,说明其原因是PML引起的。 我们一般推荐使用Stretched coordinate PML,而且一般几个方向用相同的PML。 特殊情况,例如波导结构,不同方向可能需要使用不同的PML:在传播方向可以使用Stabilized,而其它方向使用标准PML。

      常见的PML修改方法是:

      1. 使用stabilized,由于吸收参数的改变,层数比较多;

      2. 增加标准PML的层数,特别是网格很细的情况下;

      3. 使用Custom PML,增加 alpha

      4. 个别情况在PML前和PML区用粗网格

      5. 或者增加PML离开结构的距离,使得PML所在区域的网格比较大。

      一般情况我们建议物体要穿透PML而不是在PML区域内;但是有些材料例如金属,如果有SPP产生很可能会产生发散,可以不让金属穿透PML,而是在距PML至少一个网格。

      有时仿真是由于材料拟合不好造成的,例如虚部小于零,应该查看修改拟合。

      此外,我们不建议使用网格比aspect ratio太大的细化网格,例如dx = 5nm 而 dy = 25nm,此时 aspect ratio 为 5,这种情况也可能会导致发散(只是可能,并不一定)。

      对于周期结构,如果在测试时不改变周期边界,而是仅将PML改为金属,减小dt stability factor仍然发散,此时可能是光源光谱太宽造成的,可以将光源在时间域设置,增加脉冲宽度。

      不同PML类型的选择参见 Fdtd算法中pml的类型和选择


      您好:
      我想问下,仿真一个结构,同样的仿真时间,边界是pml的时候发散了,文件的左上角有提示,
      然后换成金属的边界条件检查发散的原因,计算结束(时间到了),文件左上角没有出现发散的提示,生成的txt中,auto shutoff的值也是在1的附近来回震荡,我想问一下,这个金属计算的结果是发散的吗,需不需要加长仿真时间(会不会是因为仿真时间太短了,场没有增大到仿真认为发散的阈值所以没有提示)?
      然后pml计算虽然发散了,但monitor中的透射谱都在1以下,而换成金属边界条件之后,透射谱有的波长处是80,90的样子,这是因为金属边界条件的反射造成的吗?


      使用金属边界只是为了检测发散原因, 不能用它来获得正确结果 ,因为金属将电磁场来回反射。您的结构相当于放置在金属谐振腔内,除了材料吸收,能量无法耗散,因此auto shutoff的值也是在1的附近来回震荡。

      一般来说,用pml计算然发散了, 结果也不正确 ,因为有些波长的长被加强了。

      如果你想得到大致的结果,应该在仿真发散前结束仿真。更精确的方法是想办法克服发散,例如在光源注射轴方向使用Stabilized PML,另外的方向加大仿真区尺寸等,参见前面回复。


      谢谢您的答复,
      我的意思是:换成金属边界来检测发散原因,如何判断是否发散了(在金属边界条件下),以什么为标准,左上角出现的那个提示还是?金属边界仿真的时间和pml边界发散时仿真时间相同可以吗?会不会因为仿真时间太短造成误判?比如在金属边界条件下,本来会在6000fs发散(出现发散提示),结果我的仿真时间只是5000fs(或者更短)以至于没有出现左上角的发散提示?


      Q:换成金属边界来检测发散原因,如何判断是否发散了
      A:以左上角出现的那个提示为发散的标准。当然也可以查看Log文件,如果文件显示 Auto Shutoff小于1,那只说明仿真时间不够长;如果比较大,那就是发散,或者即将达到预先设定的MAx,实际上也是发散了。收敛的结果应该是达到 Auto Shutoff Min,比如
      20.126% complete. Max time remaining: 3 hrs, 22 mins, 3 secs. Auto Shutoff: 1.65618e-009
      另外一个方法就是查看时间监视器,如果是指数增加,那就是发散。

      Q:金属边界仿真的时间和pml边界发散时仿真时间相同可以吗?
      A:它们是不同的,全金属边界时,能量几乎没有耗散或者耗散很慢(材料吸收),一般是运行到100%结束。而pml边界一般来说发散时间一定比所设置的仿真时间早。

      此外,你也可以通过时间监视器,视频监视器察看是否有发散的迹象。


      发散是指仿真结束时,电磁波能量仍未在仿真区域内耗尽吗?

      如何通过时间监视器和视频监视器查看是否有发散的迹象呢?

      如果通过视频监视器查看电影后,看到电磁场在视频里消失,这是否就是不存在发散?


       
      Poplar:

      发散是指仿真结束时,电磁波能量仍未在仿真区域内耗尽吗?

      如何通过时间监视器和视频监视器查看是否有发散的迹象呢?

      如果通过视频监视器查看电影后,看到电磁场在视频里消失,这是否就是不存在发散?

      彷真發散是指电磁波能量在增長, 如果系統沒有增益, 就說明电磁波能量的增長是非物理的。时间监视器和视频监视器都是時間域的, 所以可以看到發散的狀況, 在debugging的時候會有用。


      您好!我想问下,仿真核壳结构,软件提示发散,然后设置成Metal边界还是发散,之后我把dt调成0.5后,还是发散。这是什么原因?


      通常 ,把mesh 精度,pml边界提高就好了


      材料的问题,已经解决了,谢谢

    • Guilin Sun
      Ansys Employee

      也可以用电影监视器,看看发散先从哪里开始的?

      还可以记录PML里面的场看看是不是很强?如果强那就是PML的问题:

      以用电影监视器,还有记录PML里面的场看看是不是很强?如果强那就是PML的问题:


    • QiXubin
      Subscriber

      您好,这个帖子为什么打不开啊?

      我做的是:晶体硅+倒金字塔结构的太阳能电池,光源采用平面光,仿真过程中出现了报错:

      产生错误:警告!在监视器和下面的源中创建数据的模拟产生了分歧,并且“数据很可能无效”。关于解决这个问题的帮助,请参阅发散输出页面

      Warning! The simulation that created the data in the monitors and sources below diverged, and the data is likely invalid. Please see the Diverging simulation page for help on solving this problem.

      但是链接地址打不开,请问该怎样解决?

    • Guilin Sun
      Ansys Employee

       

      目前论坛转移有些问题,很多帖子内容丢失,甚至有些帖子都丢失了。你可以网上搜本贴的题目,

      FDTD 和 varFDTD 常见的发散原因以及处理

      国内一些网站有转载。

      英文帖子目前也有这个问题,没有有效的内容。

      一般就是先用金属边界看看是否发散;如发散,减小时间步长;

      查看材料拟合;查看细化网格看看比例是否太大,一般建议Aspect 比值小于5.

      周期结构要看有高级衍射,大角度情况下普通PML可能不行;需要用Steep Angle PML,并增加层数。

      另外如果有金属,先不要用conformal variant 2.

      可以记录PML内的数据看看是从哪个PML发散的:

      增加PML与结构之间的距离有时也有帮助。

      有时间不让金属穿透PML也有效。

      或者选其它PML,比如Uniaxial。

       

Viewing 3 reply threads
  • The topic ‘Ansys Insight: FDTD 和 varFDTD 常见的发散原因以及处理’ is closed to new replies.