Second order mesh


I would like to ask if there is option to generate second order FE mesh (tri6 in 2D and tet10 in 3D) automatically from MMG? Or the user has to generate manually based on edge information?



I am sorry but Mmg doesn’t handle high order meshes. I think that you can use Gmsh to raise the mesh order automatically.


My two cents:

1 Like

Hello, I could use gmsh to raise the order of the mesh. Nevertheless, gmsh won’t respect the level set values of the old mesh. It simply puts the middle node without considering the curve interface, therefore one may need to accept certain tolerance. I think that it would be more advantageous to raise the order within MMG, especially when doing meshing with level set.


You can try to raise the order of the output mesh of Mmg but you may need to propagate the curvature of the level-set boundary through other edges to avoid crossed elements.

If you want to test this in 2D, you can use the MMG2D_Get_edge API function to recover boundary edges and the MMG2D_Get_numberOfNonBdyEdges and MMG2D_Get_nonBdyEdge functions to recover non boundary edges.