How to resolve warning message: “The mesh is valid but may not be adequately refined”

When I try to calculate the mesh for my solar cell simulation in DEVICE, the solver generates the mesh butalso gives me a warning in the log file that says the mesh is not refined enough. Why is this happening and how can I make sure that the mesh is refined enough? Attached is a screenshot of the log file.

The warning:

Refinement limit exceeded for auto-refinement. The mesh is valid but may not be adequately refined.


Hi @qiaozhi. The mesh generation algorithm in DEVICE adapts the mesh size according to variation in doping densities and optical generation profiles. The solver first uses the “max edge length” property to create a coarse mesh. If the doping density (or optical generation profile) is changing rapidly in a region, then the solver refines the mesh over and over again by splitting the triangles (tetrahedrons in 3D) until the mesh size is small enough to properly capture the rapid change in doping (or generation profile). The property “max refine steps” determines how many iterations is allowed during this refinement process. Sometimes, the default number is not large enough for the refinement to finish within the allowed number of iterations. In such a case, the refining will stop before the mesh becomes fine enough to capture the variation in the doping or optical generation profile. The solver then generates a warning message saying that the mesh is not refined enough.
The easiest way to solve this problem is to increase the value of “max refine steps” so that the solver gets the opportunity to properly refine the mesh and the warning should go away. You can learn about the different parameters that DEVICE uses in calculating the mesh from this knowledge base page.


Hello, I am getting the same message in Device HEAT after the solver has been running for about half an hour. My geommetric features from FDTD abosrption results are two resonators. Then in HEAT I have defined:
min edge length: 0.002um, max edge length 1um, and I have increased max refine steps to 1000000, Still, it gives the error and then the negative temperature.

How large is the simulation volume? Are you doing a 2D or 3D simulation? The small min edge length might still be using up too many iterations if your simulation volume is too large. Do you need such a small min edge length value? My recommendation would be to start with a coarser mesh and make sure that the simulation works. Once everything works fine then you can go for a more accurate simulation with finer mesh.