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.

关于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.