[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};