[Gmsh] Generating tetrahedral meshes with uniform element sizes

Sascha Knell sascha.knell at eng.ox.ac.uk
Tue Nov 6 19:09:21 CET 2012


Hello,

I have tried to mesh a cylinder with tets, which should all have approximately the same size. I have prescribed the same characteristic lengths at four points of the cylinder. As far as I understand it, all elements between the aforementioned points should be generated with the same characteristic length due to linear interpolation of the characteristic length between the points. Meshing the geometry with the options "-algo del3d -3 -optimize" generates a mesh, which exhibits elements sizes agreeing with the prescribed characteristic length at the boundary of the cylinder. However, in the interior of the cylinder the elements are considerably bigger than those at the boundary. I have also tried providing a background box field which generates a somewhat better result but nevertheless still non-uniform element sizes.

Is there any way to generate a tet mesh for a cylinder with approximately equally sized elements?

Thank you.

Sascha Knell

-----

geo file:

lP  = 250.;
rP  = 10.;
oP  = 10.;
cLP = 1.5;

oBox = 1.e-5;
vOut = 10.;

Point(1) = {rP, 0., -(lP + oP), cLP};
Point(2) = {-rP, 0., -(lP + oP), cLP};
Point(3) = {0., 0., -(lP + oP), cLP};
Point(4) = {rP, 0., -oP, cLP};
Point(5) = {-rP, 0., -oP, cLP};
Point(6) = {0., 0., -oP, cLP};

/*Point(1) = {rP, 0., -(lP + oP)};
Point(2) = {-rP, 0., -(lP + oP)};
Point(3) = {0., 0., -(lP + oP)};
Point(4) = {rP, 0., -oP};
Point(5) = {-rP, 0., -oP};
Point(6) = {0., 0., -oP};*/

Circle(1) = {1, 3, 2};
Circle(2) = {2, 3, 1};
Circle(3) = {4, 6, 5};
Circle(4) = {5, 6, 4};
Line(5) = {1, 4};
Line(6) = {2, 5};

Line Loop(7) = {1, 2};
Line Loop(8) = {3, 4};
Line Loop(9) = {1, 6, -3, -5};
Line Loop(10) = {2, 5, -4, -6};
Plane Surface(11) = {7};
Plane Surface(12) = {8};
Ruled Surface(13) = {9};
Ruled Surface(14) = {10};

Surface Loop(15) = {11, 12, 13, 14};

Volume(16) = {15};

/*Field[1] = Box;
Field[1].VIn = cLP;
Field[1].VOut = vOut;
Field[1].XMax = rP + oBox;
Field[1].XMin = -(rP + oBox);
Field[1].YMax = rP + oBox;
Field[1].YMin = -(rP + oBox);
Field[1].ZMax = -oP + oBox;
Field[1].ZMin = -(lP + oP + oBox);
Background Field = 1;*/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.geuz.org/pipermail/gmsh/attachments/20121106/78bfb27c/attachment.html>