[Gmsh] [GMSH] trying to smooth a multi-surface mesh

Vladimir Popescu vladimir.popescu at logilab.fr
Thu Nov 15 12:21:11 CET 2012


Dear Gmsh users,

I am trying to generate a (structured) grid in 2D, in the following 
context:

- we have a geometry like :

  ____________________________
|                           /|
|                 (1)      / |
|                         /  |
|......................../   |
|                  (2)   |(3)|
|________________________|___|

- I am trying to mesh it in a structured way, i.e. via a Frontal 
algorithm with the "Recombine all"
   option enabled (with the "Blossom" recombination method). The point 
is that the frontiers
   between all surfaces do not have any physical meaning: we want to 
mesh each surface separately,
   then to smooth the mesh on the *whole* (compound) surface of surfaces 
(1), (2) and (3).

To obtain this mesh, I proceed as follows:
   1. I mesh each surface, (1), (2) and (3), I refine by splitting (to 
quadrangles as well)
      and I store the resulting mesh.
   2. I add a Compound Surface with surfaces (1), (2) and (3) to the 
geometry.
   3. I specify a number of smoothing steps to the Frontal meshing 
algorithm.
   4. I try to "merge" the mesh obtained at step 1 with the geometry 
obtained
      at step 2.

Everything seems to work fine in steps 1, 2 and 3. However, in step 4, 
when I merge the mesh
obtained at step 1, there seems to be no smoothing the way I would have 
wanted it (especially
towards the point where the three surfaces intersect).
Should I perform this smoothing in a post-processing step?

I have also tried to remesh the compound surface obtained at step 2 with 
the same parameters as
in step 1. However, in this case, Gmsh crashes with a segmentation fault.

As I am novice with Gmsh, I wonder whether I am doing something wrong, 
or if I should
obtain the smoothed mesh in a different way?
If this involves post-processing, how could I drive this process?
Or is this actually a multi-domain meshing problem, which Gmsh doesn't 
handle?

For details, I also post the .geo file below.
I use this file as gmsh compound.geo -2 for generating the mesh.

Thank you very much for your answer.

Regards,
Vladimir Popescu

compound.geo file :
Point(1) = {-2.7, 0.2, 0, 1};
Point(2) = {-2.7, -0.2, 0, 1};
Point(3) = {-2.1, -0.2, 0, 1};
Point(4) = {-2.1, 0.2, 0, 1};
Point(5) = {-1.8, 0.5, 0, 1};
Point(6) = {-1.8, -0.2, 0, 1};
Point(7) = {-2.7, 0.5, 0, 1};
Line(1) = {1, 2};
Line(2) = {2, 3};
Line(3) = {3, 4};
Line(4) = {4, 1};
Line(5) = {7, 1};
Line(7) = {4, 5};
Line(8) = {5, 7};
Line(9) = {5, 6};
Line(10) = {6, 3};
Line Loop(13) = {8, 5, -4, 7};
Plane Surface(13) = {13};
Line Loop(15) = {4, 1, 2, 3};
Plane Surface(15) = {15};
Line Loop(17) = {7, 9, 10, 3};
Plane Surface(17) = {17};
Compound Surface(18) = {13, 15, 17};
Hide {Surface{13, 15, 17}; }
//Geometry.HideCompounds = 0;
Mesh.Algorithm = 6;
Mesh.RecombineAll = 1;
Mesh.RecombinationAlgorithm = 1;
Mesh.RemeshAlgorithm = 1;
Mesh.RemeshParametrization = 1;
Mesh.Smoothing = 5;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.geuz.org/pipermail/gmsh/attachments/20121115/f9555941/attachment.html>