[Gmsh] Refine by splitting (tetrahedral meshes)

Jose Paulo Moitinho de Almeida moitinho at civil.ist.utl.pt
Mon Apr 8 11:37:41 CEST 2019


Hello 

Trying to understand the quality of the meshes obtained when using the "Refine 
by splitting" option I looked at the code in Mesh/meshRefine.cpp

After some digging I came to realise why the comment at line 198 is there,
>> // FIXME: we should choose the template to maximize the quality
at first thinking that the "right choice" would imply some geometry 
calculations.

Then I found
> Bey, Jürgen. "Simplicial grid refinement: on Freudenthal's algorithm and the
> optimal number of congruence classes." Numerische Mathematik 85.1 (2000):
> 1-29. 
and updated the template using the sequence in Algorithm RedRefinement3D 
therein.

At first the result was not correct, but  a simple switch of indices made it 
work. Starting with  a mesh where all elements are equal we obtain refined 
meshes with elements of 3 shapes and for a non-regular mesh the properties of 
the elements stabilise.

The code is attached, I hope it is useful.

(I know that this could be done in  a more efficient way with git. Sorry I will 
learn how to do that next week..). 

Regards

ZP
-------------- next part --------------
A non-text attachment was scrubbed...
Name: meshRefine.cpp
Type: text/x-c++src
Size: 33867 bytes
Desc: not available
URL: <http://onelab.info/pipermail/gmsh/attachments/20190408/1826fdb9/attachment-0001.cpp>


More information about the gmsh mailing list