The heat transport solver failed to converge


#1

Hello

I have found the error, It seems like a bug.
My project (it’s attached) doesn’t work, but if I change material of the element “air_left” or “air_right” to any solid material (Al for example) it works.
How can I calculate my configuration (both sides - air)?

Log file:
Generating mesh.
Mesh generation complete (0s)

  • vertices: 445
  • elements: 818
    All processes are communicating and ready to proceed to simulation…
    Starting solver.
    Solver terminated at step 1 of 1. Error (divergence): Heat Flow solver failed to converge after 40 iterations, 1.2461e+006(0.001) remains. Residual (ratio/last) 0.661366/28.0594.
    Warning: the heat transport solver failed to converge. A partial result will be saved.
    The program terminated due to an error: The simulated result is incomplete. Please review the log files for details.
    Error: there was an unknown parallel error. The error code is 9002, the process number is 0air_both_sides_0.ldev (6.0 MB)

#3

Dear @alexander.fedorovski, The reason you simulation is failing is because the temperature in the system in its current setup is becoming too large. The default setting of the HEAT solver restricts the update of temperature to 100 K in each step and within the default 40 iterations the solver is simply failing to reach the solution temperature which is too large. When I changed the “max update” limit to 1000 instead of 100 and also reduced the heat input to 0.3 mW from 30 mW, the simulation converged. The temperature in the top InP region still went up to 1000 K which shows you that with the original setup the temperature needed to go even higher.

Now in the actual structure I would not expect the temperature to become so large. The reason the temperature in the InP region is becoming so large is because when you apply a power boundary condition to a solid, the solid itself gets taken out of the simulation region. Only the surface of the solid gets used to inject the power into the simulation region.

Since the wire is absent, the InP layer is isolated from the substrate. The only way heat is now getting out is through convection and that is why the temperature is so high.

To properly simulate your structure, you should use a uniform heat source on top of your wire to inject the power instead of the “thermal” boundary condition. In this modified file (air_both_sides_0._MODldev.ldev (6.0 MB)
) I have placed a uniform 2D heat source on top of the wire and have applied 30 mW power through it. I have set the length in the third dimension to be equal to the norm length. When you run the simulation you can see that the wire is now part of the simulated structure and the temperature is reasonable. Also note that the simulation now converges with the default settings.


#4

Thank you!