Photonics – Chinese

Photonics – Chinese

Topics related to Lumerical and more, in Chinese language.

关于HEAT仿真的mesh报错问题

    • yihang lai
      Subscriber

      老师您好

      我在尝试修改官网例子Thermal switch的过程中,仿真遇到了难以解决的问题,烦请老师予以解答。

      这是例子的网址:

      https://optics.ansys.com/hc/en-us/articles/360042323154-Thermal-switch

      下面是我修改的仿真截图

      材料:

      结构:

      具体的,加热器使用官网热开关例子里的同款

      从上至下从左至右的八个微环,编号依次为:

      1234

      5678

      中间为一根折叠的波导(微环内外半径均相同,间隔均为700nm

      仿真区域设置:

      HEAT监视器设置:

      边界条件:

      首先仿真的是,给微环6加热,给定加热电压为2.522v时,脚本读出微环6四部分的温度,计算其平均温度为749.441K。将加热器移动到给微环5加热,其余所有设置与之前一致,mesh的时候报错:

      Internal error in repairencsubs():

      During repairing encroached subface (20352, 20362, 20374)

      New point 20391 is coincident with an existing vertex 20362

      LUXIAOYU(process 0): The program terminated due to an error: Failed to generate initial tesselation

      LUXIAOYU(process 0): Error: there was an unknown parallel error. The error code is 108, the process number is 0

      当把mesh全改为10um,可以运行mesh了,但从0-2.522v扫描温度,结果本来应该有四个结果图,只能显示两个

      恳请老师帮我看下,我该如何修改!

      十分感谢!

      祝好

    • Guilin Sun
      Ansys Employee

      首先,你知道网格划分与热源有关,因此改换热源出现问题就需要修改是正常的。

      "当把mesh全改为10um"你是说整个结构网格都用这个?你先看看结构能否被分辨,其次看看温度分布和电场是否有巨变?一般稍微改一下网格即可。

      最后,温度达到700多K是否太高了?

    • yihang lai
      Subscriber

      老师您好,因为在我的仿真中,微环的半径由原例子中的10um缩小为了5um,Si的熔点是在1687.15 K,所以同样的电压2.552v,温度一个为480k,一个780k,可能是合理的?当电压减小为1.6v时,温度是在500k左右,变化趋势是正常的

      关于“mesh全改为10um”是说整个结构网格都用这个,是指将Heat Solver的global mesh max、min edge length由2.5、5都改为10um,并且max refine steps也由500000增大为1000000,如果不改变mesh,在这之前会发生下面的报错:Internal error in repairencsubs():

      During repairing encroached subface (20352, 20362, 20374)

      New point 20391 is coincident with an existing vertex 20362

      LUXIAOYU(process 0): The program terminated due to an error: Failed to generate initial tesselation

      LUXIAOYU(process 0): Error: there was an unknown parallel error. The error code is 108, the process number is 0

      我想知道遇到error code is 108 这样的报错具体是什么原因导致的,应该如何解决呢?我的仿真经常会出现这样的报错,一直不太清楚它的解决方法,而且我觉得这里把mesh改为10um确实不合理,因为微环的半径才5um,确实可能发生结构不能分辨的情况,那遇到这种报错我应该怎么解决呢?

      img

      而且在改变mesh之后,不在报错上面的问题,但这个时候会遇到第二种问题:仿真0-2.522v之间四个电压的温度,只有两个有结果并且是正确的温度值,另外两个结果图不显示温度,分别是0.8v和2.522v电压下的温度,显示为一片蓝色且没有刻度值,但是如果只单独仿真2.522v一个电压的时候又可以正常显示温度结果,这是为什么呢?我一直不知道是什么原因,该怎么解决呢?

      而且这个问题时常会出现,即使global mesh max、min edge length保持为原例子里的2.5、5um,max refine steps为500000的设置不变时,也出现过这种情况,烦请老师解答我的疑惑,十分感谢!

    • Guilin Sun
      Ansys Employee

      global mesh max、min edge length很少用相同的,因为有限元网格基本上都是自适应,根据所在位置的热参数和温度梯度等改变的。

      至于报错error code is 108 也可能是微软系统包括C++库文件对于目前网格出错,即系统无法辨认某个变量,核心原因是网格不合适。注意圆环,它轴为的网格不好做,你把圆环先换成方形看看仿真是否顺利?结构不能分辨显然结果不会正确。

      其它的错误基本上都是源自网格,你可能需要下功夫改善网格划分。

      如果这个文件反复修改有可能导致问题,此时需要重新建立一个新文件。但是为节省时间,先改善网格吧。至于如何改善,温度建议是不要用均匀网格,因为圆形部分与其它平面接触需要细网格,你需要反复调整global mesh max、min edge length或者加局部网格。

      实际器件应该达到多高问题?不可能接近熔点吧,你看看材料折射率变化了多少?我的建议是先不追求高温加高压,先低压测试。

Viewing 3 reply threads
  • You must be logged in to reply to this topic.