Keep internal faces

Dear developers,

I am trying to use MMG3D to remesh models including internal surfaces (for example a cube with an internal surface inside it).

I want to conserve the triangle faces which bound the volume of my models and the triangles belonging to the internal surface(s). I have tried to set the triangles as required in the input mesh. The external triangles are correctly kept but not the internal ones (warning: extra boundaries provided are ignored).

In a second attempt, I have tried to set as required vertices all the input surface vertices but some internal triangles are not kept.

Is there a way to conserve internal surfaces of non-manifold volumes in mmg3d? Or is it possible to set as required some faces of tetrahedra (for instance tetrahedra which are adjacent to the internal surfaces in my case)? How is it possible to do this ?

Thank you very much.
Best regards,
Pierre

Dear Pierre,

For now, Mmg3d doesn’t allow to preserve an internal surface if it is not at the interface of two domains with different references. It is the origin of the warning that you get (it removes your triangles).

I am not surprised that setting the vertices as required is not enough to keep the triangles: the only way to preserve your internal surface is to define different references at each side of the surface (I hope that it is possible, let me know if not) and to set your triangle as required (as you have done in a first instance).

The possibility to keep triangles at the interface of domains with same references will be added in the coming months.

Best Regards,

Algiane

Dear Algiane,

thank you for your answer. If I well understand triangles are only preserve if they are at the interface of tetrahedra with different references at each side of the triangles.

I have tried to change the reference of the tetrahedra of the cube model I have described in the previous post. The results of my tests show me that the remeshing is processed only for each set of tetrahedra with the same reference (that you call domains). The problem of my model is that there is only one domain (the whole cube) and I want to remesh the whole model all at once so I think it is not possible to set different tetrahedron references without affecting the result of the remeshing.

I am pleased to see that the possibility to keep triangles at the interface of domains with the same reference is planned for the coming months. I think this feature will allow me to remesh one-domain models with internal triangle surfaces.

Best regards,
Pierre

Dear Pierre,

I am not sure to understand what happens when you set different references to the tetrahedra. Normally, an ideal surface is build from the references interface to preserve its features and the whole mesh is modified keeping conformity at interfaces.

The results differs from the remeshing of an empty cube because of the surface reconstruction I think. Do you want to preserve each triangle of the interface or just the surface (allowing to remesh it)? To allow to remesh the surface, you can remove the required triangles.

Please, can you send me a minimal example and/or images of what happens and of what you want?

Best regards,

Algiane

Dear Algiane

My input (surface) model is a cube with an internal surface inside it (as you can see below)

After volumetric meshing of this surface model (each triangle facet is preserved, see image above), my problem is to remesh this tetrahedral input mesh while preserving each triangle of the input model (both the triangles at the boundaries of the cube and also the triangles inside the cube).

To preserve all the triangles I must set them as required triangles. But I have only one domain/region which is the whole cube. Except the preserving triangle conditions, I do not apply another constraints, that why it will be difficult to me to set two different domains (i.e. different reference values). For this cube example, if I set one reference value to the uppermost tetrahedra and another one the the lowermost tetrahedra, will the internal surface triangles be preserved (if I set them as required) and the other tetrahedron faces at the interface of the two defined domains free to be moved and/or remeshed ?

This is a simple example to illustrate my question. The models I would like to remesh show several internal sets of triangle faces potentially branching to each other.

Best regards,

Pierre

Dear Pierre,

Thank you for the clarifications. Now I understand better your problem.

Until Mmg be able to deal with internal references, I think that there is no way to keep your internal triangles and to remesh “freely” your domain (because we need to define 2 domains and this constrain the remeshing process).

I will keep you informed when the internal references preservation will be implemented.

Best regards,

Algiane

Dear Algiane,

Thank you for the help you have provided me.

I will be pleased to test the possibility to remesh domains with internal required triangles. Do you have any idea about a possible release date of this feature ?

I thank you once again.

Best regards,
Pierre

Dear Pierre,

Currently the new developments are frozen (because we have a release candidate on the stove).
At a rough guess, I think that I can implement this during february.

Do not hesitate to remind me that you need this feature if nothing is done in March.

Best regards,

Algiane

Dear MMG developers,

is there something new about this feature ?

Best regards,
Pierre

Dear Pierre,

Thank you for the reminder!

I am sorry because for now I have not had time to look at it. I will work on it the week of May 29th (date of the next meeting of the Mmg developers).

Best Regards,

Algiane

Dear Algiane,

Thank you for your answer.
This is really good news since I will have to use this feature during the month of June!

Sincerely,
Pierre

Hi Pierre,

The preservation of the internal surfaces is finally implemented.

It is not yet stable, thus you will need to load a branch of the project :
git checkout feature/trianglePreservation
Do not hesitate to report bugs.

Be careful, in this branch as in the next release, the mmg apps are created in the bin subdirectory of the build folder (mmg/build/bin/mmg3d_O3)

To preserve the triangles of your open boundaries you must use the -opnbdy command line option.
Let me know if you have trouble.

Regards,

Algiane