Strong change of size between prisms and tetras

I’m working on a mixed mesh tetra/prisms/pyramids of a nozzle. Basically the prisms are the boundary layer inside the nozzle, which I want to be preserved, and the rest of the domain is tetra.

I provide MMG an isotropic metric by using the anisotropic algorithm (with equal eigenvalues, metric of the type x 0 x 0 0 x).

My question is about the metric at the nodes at the interface between prisms and tetras. I post the picture given by visualization with medit of a triangle with 2 vertices which are at the interface with prisms, and one internal vertex. This is what I ask for: a smaller size around these two vertices than at the internal one.

What I obtain is the good size for the internal nodes, but the nodes at the interface stays “fixed”. Since I use a hgrad greated than the defaul one, I was expecting maybe a cell presenting a sort of anisotropy, to be able to keep a smaller size at the boundary.

What I would like to have is a more gradual change of size between the prismatic interface and the tetraedral interior part of the mesh, by keeping my metric prescription isotropic-like. Do you have any suggestion on how I can do that?

Thank you a lot!


Hello Francesca,

Since prisms are preserved but not adapted, the metrics of the nodes on the interface between prisms and tetra is overwritten by requiring it to be able to recover the size of the interface edges as close as possible. This indeed should help to achieve a better isotropic mesh, since it requires tetra to have an orthogonal size similar to the one parallel to the interface (that is not adapted).

The gradation between this required metrics and the internal one can be controlled by the -hgradreq parameter (which acts like the classical gratation parameter, but only near required surfaces). By increasing it, you can make the transition from the “large” required metrics to the “small” internal one faster.
You can also try to completely switch off the required metrics on the interface with the -nosizreq parameter, but please keep in mind that this options could generate bad quality elements near the interface (some isotropy will be lost) with possible performance degradation if the user metrics is too different from the surface edge sizes, so this option should be tried carefully (asking an isotropic small size on a surface with large edges that cannot be adapted, while preserving good isotropy are a bit conflicting requirements for the remesher…)

If I understand correctly, you are interested in good isotropy on the interior mesh, but a fast size transition near the prismatic boundary layer, like what I guess from the top of the second picture?


Yes exactly. If the isotropy is lost a little bit for some elements near the prismatic boundary layer is okay. I would prefer a smaller change in size rather than a perfect isotropy.

Anyway I tried nosizreq and high hgradreq but I don’t notice any particular difference. The size of those tetras near to the prisms are always the same. Is there something else I can do?

Thank you a lot,

If also hgrad is good (i.e. allowing the desired transition), I think that it would be hard to get a more stacked layer than the one you get with nosizreq with isotropic metrics, because the elements quality would be too degraded by creating edges nearly parallel to the wall.

If you had the means to provide on the interface nodes an anisotropic metrics somewhat aligned with your interface, always using nosizreq, than I think you could get closer to your objective (but I don’t know if this is an option for you).

Hope this helps,

Okay. That was my very last option, but I will consider it.
Thank you a lot!