Hello everyone,
I am new to Mmg and not a meshing expert either.
Context
The mesh contains 18 disjoint sets of tetrahedra. They are called by different names in different programs (element groups, element sets, physical groups, subdomains, etc.). I will refer to them as element sets. These element sets represent discretized grains in a microstructure. I performed the mesh generation using the Netgen plugin to Salome, paying special care to generate as good mesh as I was able to. The difficulties I faced were the following:
- I needed a relatively coarse mesh to be able to run a calculation within a reasonable amount of time.
- The mesh needed to be fine enough so as to obtain not-so-high aspect ratios.
- A minimum mesh density was vital so that the meshing does not fail at all.
I ended up with the mesh attached below.
Goal
- Improve mesh quality
Even with the best mesh I could generate, it takes many Newton-Raphson iterates to achieve convergence in an elastoplastic simulation. - Decimate mesh
If I cannot improve the mesh quality by any means, I would like to make the problem size smaller by reducing the number of elements. - Combination of both
Apparently, the best would be the increase of element quality and coarsen the mesh at the same time. The reason for this is that the current mesh represents only a part of the original microstructure, so too many elements would be prohibited in the final application.
Constraints
- Do not erase subdomains
It is important from the physics point of view to keep all element sets. - Try to keep the boundaries
There is an option for that in Mmg. If quality improvement is only possible by changing the boundaries, then I need to have means to quantify this discrepancy in order to have control over it. - Do not lose information
Whatever operations Mmg perform, I need to know which elements belong to which set in the modified mesh.
Ideas, and what I tried so far
- I read about the possible options, obtained by the
--help
flag, in the documentation. - I tried the
-hausd
, and-hgrad
options in different combinations. The results they produce make sense, but the quality (reported when passing the-v 4
option) is lower than that of the original mesh. Other quality metrics (available in Gmsh and Salome) also give lower values. - I also tried the
-optim
flag to optimize the mesh. The quality became lower after the process. - Generally, the elements in the input mesh have low aspect ratio. There are some elements though with not so good quality. Maybe I could concentrate on improving the quality of those elements only by local remeshing. Is this possible with Mmg, or is this a good idea at all?
Can you give me guidelines on how to approach this problem?
Thank you.
testMesh.zip (1.9 MB)