[Gmsh] Extruding surface meshed with unstructured quadrangles.

mark starnes m.starnes05 at imperial.ac.uk
Thu Dec 18 18:58:02 CET 2008


Hi everyone,

I have a flat surface, meshed with quadrangles which is extruded normal
to its plane.  I'd like the through thickness mesh to be ordered, and
one element thick.  I attempted to generate the mesh by extruding the
surface, but found I preferred to manually specify the nodes, lines etc.

My question is, is it possible to generate the 3-D mesh?  When I try to
do so, I get

Error:  Cannot tetrahedralize volume with quadrangles on boundary.

I thought I wanted to 'hexehedralize' the volume, but can't see how to do it.
Can anyone help?

Best regards,

Mark.

Version: 2.2.7-cvs-20081218

Script follows:

// Gmsh project created on Tue Aug  5 18:29:53 2008
r0 = 0.025;     // device radius
r1 = 0.025;     // damping radius
h  = 0.01;      // duct height
z = 0.001;      // 3-D thickness

l = 0.01;       // interest wavelength
// To get 2D quads, a recombine occurs.  This doubles the
// mesh density, so start with it at half the target.
cl = 2 * l/10;  // characteristic length:  Set to 10 elements / wavelength


// layer 1
Point(1) = {0,  h/2, 0, cl};
Point(2) = {r0, h/2, 0, cl};
Point(3) = {r0, h/2 + r1 - h/2, 0, cl};
Point(4) = {r0, 0, 0, cl};
Point(5) = {r0, -h/2 - r1 + h/2, 0, cl};
Point(6) = {r0, -h/2, 0, cl};
Point(7) = {0,  -h/2, 0, cl};

// layer 2
Point(11) = {0,  h/2, z, cl};
Point(12) = {r0, h/2, z, cl};
Point(13) = {r0, h/2 + r1 - h/2, z, cl};
Point(14) = {r0, 0, z, cl};
Point(15) = {r0, -h/2 - r1 + h/2, z, cl};
Point(16) = {r0, -h/2, z, cl};
Point(17) = {0,  -h/2, z, cl};

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

// layer 2
Line(11) = {11, 12};
Line(12) = {12, 13};
Circle(13) = { 15, 14, 13};
Line(14) = {15, 16};
Line(15) = {16, 17};
Line(16) = {17, 11};

// layer 1
Line Loop(7) = {1,2,-3,4,5,6};
Plane Surface(8) = {7};
Recombine Surface {8};

// layer 2
Line Loop(17) = {11,12,-13,14,15,16};
Plane Surface(18) = {17};
Recombine Surface {18};

// join layer 1 and layer 2
Line(21) = {1, 11};
Line(22) = {2, 12};
Line(23) = {3, 13};
// no need for point 4 as is central point for circle.
Line(25) = {5, 15};
Line(26) = {6, 16};
Line(27) = {7, 17};

Transfinite Line {21, 22, 23, 25, 26, 27} = 1 Using Progression 1;

Line Loop(28) = {11, -22, -1, 21};
Plane Surface(29) = {28};
Line Loop(30) = {12, -23, -2, 22};
Plane Surface(31) = {30};
Line Loop(32) = {13, -23, -3, 25};
Ruled Surface(33) = {32};
Line Loop(34) = {15, -27, -5, 26};
Plane Surface(35) = {34};
Line Loop(36) = {16, -21, -6, 27};
Plane Surface(37) = {36};
Line Loop(38) = {14, -26, -4, 25};
Plane Surface(39) = {38};

Transfinite Surface {35} = {17, 16, 6, 7};
Transfinite Surface {37} = {11, 17, 7, 1};
Transfinite Surface {29} = {11, 12, 2, 1};
Transfinite Surface {31} = {13, 12, 2, 3};
Transfinite Surface {33} = {15, 13, 3, 5};
Transfinite Surface {39} = {16, 15, 5, 6};
Recombine Surface {35, 37, 29, 31, 33, 39};
Surface Loop(40) = {35, 18, 29, 31, 33, 8, 39, 37};
Volume(41) = {40};