Meshing errors dictionary

Hello

Since v3.0.0, the output console is more verbose when it comes to meshing errors, and even displays clickable “links” to highlight the faulty geometry, which is great! However, the error message are pretty cryptic (to me at least) and don’t really help me understanding what’s wrong.

It thought I’d share here those message, and everyone could also add the messages they don’t understand, and with the help of people who do understand them, maybe we can than build a sort of “dictionary” or “index” of the meshing error messages and how to fix them.

This one can sometimes be fixed by adding or removing local mesh sizes on edges. What is curious is that the highlighted edge isn’t even part of all the highlighted surfaces.

11/10/26 16:24:54   Compound-2: Mesh generation failed.
11/10/26 16:24:54   Sweep: The nodes QuadWild placed on Edge 2 of Solid_part-51_cell-7 of surface 6 of Solid_part-51_cell-4, surface 6 of Solid_part-51_cell-5, surface 6 of Solid_part-51_cell-7 do not follow one another along it. QuadWild failed to mesh surface 6 of Solid_part-51_cell-4, surface 6 of Solid_part-51_cell-5, surface 6 of Solid_part-51_cell-7 and the fallback to gmsh is turned off.

This one I sort of understand, but then adding a local mesh size with an even or odd number of elements doesn’t seem to have an effect, so in the end I don’t really understand it.

11/10/26 16:37:38   Prescribed subsides: 12 / 13
11/10/26 16:37:38   fatal error: prescribed node counts admit no all-quad mesh:
11/10/26 16:37:38     a region of 2 patch(es) is enclosed by prescribed edges totalling 111 segments (odd)
11/10/26 16:37:38     the mesh boundary carries 171 prescribed segments in total (odd), but a quad mesh has an even number of boundary edges
11/10/26 16:37:38     every region enclosed by constrained curves needs an even number of segments; add or remove one node on one of its curves. QuadWild failed to mesh surface 6 of Solid_part-51_cell-4, surface 6 of Solid_part-51_cell-5, surface 6 of Solid_part-51_cell-7 and the fallback to gmsh is turned off.

I was sometimes able to fix this one by changing the geometry and giving tet-meshed geometry a bit more “room” or “space” in-between swept geometry, but then it came back when I started adding more local mesh sizes.

11/10/26 16:34:26   Compound-2: Mesh generation failed.
11/10/26 16:34:26   Netgen could not mesh the cells the sweep does not reach by tetrahedra. Its last messages:
...

This one really confuses me. First I don’t understand what it means by “which 48 to 75 elements keep”, second it appears when trying to apply local mesh sizes on edge and I don’t see why the sweep should have a say in the number of elements on that edge.The goal of adding a local size is precisely to override the default number of elements along an edge.

11/10/26 17:52:29   Sweep: Edge 6 of Solid_part-1 is given 60 elements by its element size, which 48 to 75 elements keep, but the sweep gives it 46.
11/10/26 17:52:29   Edge 8 of Solid_part-1 is given 60 elements by its element size, which 48 to 75 elements keep, but the sweep gives it 46.
11/10/26 17:52:29   Set element sizes and numbers of elements that agree along the sweep, or select the source surfaces by hand.

This one I rarely got and I don’t know what it means

11/10/26 17:50:30   fatal error: flow quantisation: prescribed subside 8 quantized to 6 instead of 5 QuadWild failed to mesh surface 7 of Solid_part-51_cell-6, surface 1 of Solid_part-51_cell-8, surface 2 of Solid_part-51_cell-8, surface 3 of Solid_part-51_cell-8, surface 4 of Solid_part-51_cell-8, surface 7 of Solid_part-51_cell-8, surface 8 of Solid_part-51_cell-8, surface 9 of Solid_part-51_cell-8, surface 10 of Solid_part-51_cell-8 and the fallback to gmsh is turned off.

Feel free to share other ones

Since they are mostly related to local mesh sizes:

Also, keep in mind that local mesh size, particularly the one that prescribes a specific number of elements, may not always be respected because not all meshers and algorithms can use it. From what I remember, it used to work only for Gmsh and only if the Quasi-structured quad algorithm wasn’t used. Netgen couldn’t follow this setting.

Now we also have QuadWild with its specific warnings/errors too. This mesher is quite different and you may need to check the paper about it to understand how it works: https://dl.acm.org/doi/epdf/10.1145/3450626.3459941

From what I understand, it means that:

  • your local mesh size needs 60 elements for edge 6
  • the allowable range was calculated as 48-75 elements (constraints for meshing)
  • however, the sweep path needs 46 elements for a continuous/matching mesh and this is below the allowable range (violates the constraint)

QuadWild generates quad meshes by treating edge subdivisions (subsides) as a global network-flow optimization problem, solving for integer element counts that satisfy both local patch topology and global geometric continuity.

Here, it seems that 8 subdivisions (elements) were requested and rounded down to 6 because of global constraints, but local constraints need 5 or 8 (not 6).

1 Like