Error: Initialization failed to converge electrostatic potential update


Hi Ahsan,

I enabled the “impact ionization” and made all the modifications you mentioned above. Unfortunately after about 10-hour simulation, it failed to converge again. Here’s the error message:

Generating mesh.
Refinement limit exceeded for optical generation rate constraint. The mesh is valid but may not be adequately refined.
Mesh generation complete (13s)
   + vertices: 30981
   + elements: 121149
All processes are communicating and ready to proceed to simulation...
Starting solver.
Solver terminated at step 1 of 1.  Error  (charge): Drift-diffusion solver failed to converge after 40 iterations, 3.03816e+52(0.0001) remains.      Residual (ratio/last) 1.58245e+25/1.04638e+23.
Warning: the charge 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 0

I set the boundary condition to be “cathode = 0V, anode = -10V”, and run single-point DC simulation. I guess starting from some smaller bias may help in terms of convergence, but I really don’t care about the electrical field distribution at moderate reverse bias voltage (let alone the simulation time is incredibly long). In addition, I sort of believe the diode hasn’t broken down at 10V bias. Are there any other changes I can make to help converge?

According to one of your previous posts:

Since the solver will sweep anyway, is it possible to know at what voltage my simulation fails to converge?

Also, even the simulation fails, I still manage to get all the results I want (and they looks reasonable!) Could you please shed some light on this?

Thanks in advance!

(By the way, since this time the error message becomes “Drift-diffusion solver failed to converge”, I am not sure if it’s still suitable to post the question here. If not, please help me redirect it. Thanks.)


As I mentioned earlier, the “gradient mixing = fast” option allows the solver to calculate the electric field in the direction of electron/hole flow more efficiently which helps in simulations where field dependent models are turned on.

The “fast mixed mode” option is something very different. The mixed mode here refers to device simulations with contact circuits (impedances at the electrical contacts). Enabling this option can sometime help with convergence in such simulations. For your simulation you do not need to enable it.


Regarding your failed simulation with impact ionization, I would recommend first running the simulation without this model turned on. If the bias voltage you are looking at is smaller than breakdown voltage then effect of impact ionization would be negligible and you should be able to ignore it. Also, run the simulation with a voltage sweep and make the step size smaller if you see it is failing at higher voltages. For example sweep from 0 to -10 V in 21 steps (step of -0.5 V). If the simulation fails at some point then try using a step size of (say) -0.2 V and so on. This way you will also know where (at what voltage) the simulation is failing since it will report the bias point it failed at in the log file.


I see. Thanks for clarification.