MMG3D meesage error using both ridges and different element references



I encountered an error when I use both ridges and different element references with mmg3d, version 5.3.8 that I can’t explain. I’ll try to illustrate it on the following hole plate mesh :

I use, for example, the command mmg3d_O3 -in toy.mesh -sol toy -out test , with a scalar metric. The message error is :

Error: _MMG5_setadj: Triangle orientation problem (1): Moebius strip?

Am I doing something wrong?
Please find the input mesh and metric in this attachement (3.3 KB)

Note that, this error doesn’t occur when I remove the references of the element groups or the ridges.

Thank you,
Best regards,


Hi Oana,

The problem is that you provide a mesh in which you give few boundary edges but not all the specific boundary edges (in particular, non-manifold edges, i.e. edges at the interface of 3 boundary triangles). This case was not expected. Without this input edges, your test case runs.

I just push a correction on the develop branch of the project be able to remesh your initial mesh. It seems to work but you may encounter other similar errors. Please, let me know if it happens.




Hi Algiane,

Thank you for your answer. With your new commit my tests work fine.
Altough, I am not sure that I understandthe origin of the problem : the non-manifold edges are due to the element group that I want to preserve and not the given ridges, aren’t they? What do you mean by “all the specific boundary edges”? should I give a closed set of ridges (all edges to define a circle in my case)?

Have a nice evening,
Best regards,


Hi Oana,

By specific boundary edges, I mean all the edges that are at the interface of 2 surfaces that intersect with sharp angles and/or at the interface of more than 2 surfaces (non-manifold) and/or at the interface of 2 triangles with different colors.

Before my modification, with input edges in the initial mesh, Mmg wasn’t trying to detect the non-manifold edges (it was guessing that all the “important” edges were given). This behaviour leads to errors during the mesh analysis.