Overflow Error


I am performing transient simulation of a simple PN junction diode. For most of the geometries the simulation works just fine but for few structures, following error is generated. Could you please explain a little about the possible causes of this error.

Thanks a lot.


ARJSLabServer(process 0): Mesh Statistics
Elements: 300670
Vertexes: 49953
ARJSLabServer(process 0): Error: Error in function boost::math::expm1(long double): Overflow Error
ARJSLabServer(process 0): … solver failed
ERROR: Error in function boost::math::expm1(long double): Overflow Error

Hi. The overflow error indicates that the solver diverged and the result became too large to be stored in a variable. In such cases you can try a few options to help the solver converge,

  1. Try smaller voltage steps.
  2. If the current is too large (i.e. forward bias) use the newton solver instead of gummel.
  3. Try using a finer mesh.
  4. Try using a damping factor in the “advanced” solver properties. This means you restrict the update values for potential between two iterations (see figure below)

Dear Sir,

“Error in function boost::math::expm1(long double): Overflow Error”
The previous error appears to me when ran my DEVICE file. I tried to solve it by the steps that you explained before but I still have it. I’m sharing with you my structure to help me.

Thanks in advance

Hi. The “overflow” error arises when the solver diverges. The results (numbers) become too large to save and overflow occurs. To solver this problem we have to figure out why the solver is diverging. Most often the reason is some error in the simulation setup.

When I looked at your file and calculated the mesh, I noticed that the top of the circle was not getting doped. Your import doping object for the circle was 0.5 um long whereas the circle itself was 0.6 um long. This means that the surface in contact with the metal was low-doped. This would create problem with convergence. I have reduced the height of the top circle to match the extent of the doping object. I have also made the inner radius of the emitter contact larger so that it just contacts the outside of the circle and does not cut it out. Finally, I noticed that the P+ doping object was extended so that it was covering not only the substrate but also the cone and the top circle. I have shrunk it so that it now only covers the substrate. The doping profile now looks reasonable.

When I run the file now the solver is able to simulate it properly without any error. Below is the I-V I am getting with the above mentioned changes.

I am attaching the modified file here (final_mod.ldev (6.4 MB)). Note that I had to remove the import doping and generation object to make the file smaller. You will have to place them in the file again. Please let me know if you have any problem running the file.