[Gmsh] pesky extrusion command

Matthias K Gobbert gobbert at math.umbc.edu
Wed Aug 29 16:26:16 CEST 2001


Hi,

I am sorry to bother you with this pesky extrusion problem, but it may
still have a problem.

The version of vianew.geo included sets up points, lines, and surfaces
(numbered 26, 28, 30, ..., 42) only for z = 0, then tries to use Extrusion
downwards and upwards to create the volume. Everything is Ruled,
Transfinite, and Recombine'd, as far as I can tell. Then Extrusion is used
with Recombine. But gmsh 1.24 has a fatal error on surface 64, which is
the one obtained by extrusion from 42.

(I should say that I also have a triangular/tetragonal version of this
geometry, i.e., same surfaces and extrusions, but without Ruled and
Recombine. That one does not create a fatal error from gmsh, but there is
a warning that it cannot swap triangles properly.)

I admit that I cannot guarantee that it is not my mistake somehow in the
way I use gmsh-commands. I am still not always sure about, whether order
and orientation of things matter in 3-D. So, I would really appreciate
feedback on whether there are any problems with my usage of gmsh-commands.

Thanks for making the software available and all your efforts,

Matthias

Matthias K. Gobbert                                Office: Math/Psyc 416
Department of Mathematics and Statistics          Hours: TTh 03:00-03:50
University of Maryland, Baltimore County           Phone: (410) 455-2404
1000 Hilltop Circle                                  Fax: (410) 455-1066
Baltimore, MD 21250                                gobbert at math.umbc.edu
U.S.A.                                 http://www.math.umbc.edu/~gobbert

-------------- next part --------------
// characteristic lengths for the domain:
L = 0.25; // feature width
A = 4.0; // aspect ratio

// characteristic lengths:
lcbot = L / 4;
lclev = L / 4;
lctop = L / 2;

/*** Points: ***/

// Points on surface level (z = 0.0):
// points along x-axis (y = 0):
Point( 1) = {0.0*L, 0.0*L,   0.0, lclev};
Point( 2) = {1.5*L, 0.0*L,   0.0, lclev};
Point( 3) = {2.5*L, 0.0*L,   0.0, lclev};
Point( 4) = {4.0*L, 0.0*L,   0.0, lclev};
// points along x = L:
Point( 5) = {4.0*L, 1.5*L,   0.0, lclev};
Point( 6) = {4.0*L, 2.5*L,   0.0, lclev};
Point( 7) = {4.0*L, 4.0*L,   0.0, lclev};
// points along y = L:
Point( 8) = {2.5*L, 4.0*L,   0.0, lclev};
Point( 9) = {1.5*L, 4.0*L,   0.0, lclev};
Point(10) = {0.0*L, 4.0*L,   0.0, lclev};
// points along y-axis (x = 0):
Point(11) = {0.0*L, 2.5*L,   0.0, lclev};
Point(12) = {0.0*L, 1.5*L,   0.0, lclev};
// points in the interior:
Point(13) = {1.5*L, 1.5*L,   0.0, lclev};
Point(14) = {2.5*L, 1.5*L,   0.0, lclev};
Point(15) = {2.5*L, 2.5*L,   0.0, lclev};
Point(16) = {1.5*L, 2.5*L,   0.0, lclev};

/*** Lines: ***/
// lines along the outside:
Line( 1) = { 1,  2};
Line( 2) = { 2,  3};
Line( 3) = { 3,  4};
Line( 4) = { 4,  5};
Line( 5) = { 5,  6};
Line( 6) = { 6,  7};
Line( 7) = { 7,  8};
Line( 8) = { 8,  9};
Line( 9) = { 9, 10};
Line(10) = {10, 11};
Line(11) = {11, 12};
Line(12) = {12,  1};
// lines along the inside:
Line(13) = {13, 14};
Line(14) = {14, 15};
Line(15) = {15, 16};
Line(16) = {16, 13};
// lines connecting inside and outside:
Line(17) = { 2, 13};
Line(18) = { 3, 14};
Line(19) = { 5, 14};
Line(20) = { 6, 15};
Line(21) = { 8, 15};
Line(22) = { 9, 16};
Line(23) = {11, 16};
Line(24) = {12, 13};

Line Loop(25) = {  1,  17, -24,  12}; Ruled Surface(26) = {25};
Line Loop(27) = {  2,  18, -13, -17}; Ruled Surface(28) = {27};
Line Loop(29) = {  3,   4,  19, -18}; Ruled Surface(30) = {29};
Line Loop(31) = {  5,  20, -14, -19}; Ruled Surface(32) = {31};
Line Loop(33) = {  6,   7,  21, -20}; Ruled Surface(34) = {33};
Line Loop(35) = {  8,  22, -15, -21}; Ruled Surface(36) = {35};
Line Loop(37) = {  9,  10,  23, -22}; Ruled Surface(38) = {37};
Line Loop(39) = { 11,  24, -16, -23}; Ruled Surface(40) = {39};
Line Loop(41) = { 13,  14,  15,  16}; Ruled Surface(42) = {41};

// number of points on lines
NPint = 4; // number of points on interior lines
NPout = 4; // number of points on outside lines

Transfinite Line {13, 14, 15, 16, 2, 5, 8, 11} = NPint;
Transfinite Line {1,3,4,6,7,9,10,12,17,18,19,20,21,22,23,24} = NPout;
Transfinite Surface {26} = {  1,  2, 13, 12};
Transfinite Surface {28} = {  2,  3, 14, 13};
Transfinite Surface {30} = {  3,  4,  5, 14};
Transfinite Surface {32} = {  5,  6, 15, 14};
Transfinite Surface {34} = {  6,  7,  8, 15};
Transfinite Surface {36} = {  8,  9, 16, 15};
Transfinite Surface {38} = {  9, 10, 11, 16};
Transfinite Surface {40} = { 11, 12, 13, 16};
Transfinite Surface {42} = { 13, 14, 15, 16};

Recombine Surface {26,28,30,32,34,36,38,40,42};

// number of layers:
NLdn = 8;
NLup = 3;

// extrude down first:
Extrude Surface {42, {0,0,-A*L}}{ Layers { {NLdn}, {9001}, {1} } ; Recombine; };
// extrude up second:
Extrude Surface {26, {0,0,L}}{ Layers { {NLup}, {9000}, {1} } ; Recombine;};
Extrude Surface {28, {0,0,L}}{ Layers { {NLup}, {9000}, {1} } ; Recombine;};
Extrude Surface {30, {0,0,L}}{ Layers { {NLup}, {9000}, {1} } ; Recombine;};
Extrude Surface {32, {0,0,L}}{ Layers { {NLup}, {9000}, {1} } ; Recombine;};
Extrude Surface {34, {0,0,L}}{ Layers { {NLup}, {9000}, {1} } ; Recombine;};
Extrude Surface {36, {0,0,L}}{ Layers { {NLup}, {9000}, {1} } ; Recombine;};
Extrude Surface {38, {0,0,L}}{ Layers { {NLup}, {9000}, {1} } ; Recombine;};
Extrude Surface {40, {0,0,L}}{ Layers { {NLup}, {9000}, {1} } ; Recombine;};
Extrude Surface {42, {0,0,L}}{ Layers { {NLup}, {9000}, {1} } ; Recombine;};

// wafer surface including surfaces that are extruded downwards:
Physical Surface(1001) = {26,28,30,32,34,36,38,40, 51,55,59,63,64};
// Physical Surface(1009) = {73,95,117,121,139,161,165,183,205,209,227,85, 86,108,130,152,174,196,218,240,262};
Physical Volume(2001)  = {9000,9001};

-------------- next part --------------
Gmsh 1.24
-------------------------------------------------------
Build OS       : Linux 2.2.19-6.2.7
Build date     : Wed Aug 29 09:32:11 CEST 2001
Build host     : elap21.montefiore.ulg.ac.be
Packager       : geuzaine
Home directory : /home/gobbert/
Launch date    : Wed Aug 29 10:09:30 2001
Command line   : gmsh -noov vianew.geo
-------------------------------------------------------
Loading 'vianew.geo'
Loaded 'vianew.geo'
Geometry
Mesh 1D...
Meshing Curve 1
Meshing Curve 2
Meshing Curve 3
Meshing Curve 4
Meshing Curve 5
Meshing Curve 6
Meshing Curve 7
Meshing Curve 8
Meshing Curve 9
Meshing Curve 10
Meshing Curve 11
Meshing Curve 12
Meshing Curve 13
Meshing Curve 14
Meshing Curve 15
Meshing Curve 16
Meshing Curve 17
Meshing Curve 18
Meshing Curve 19
Meshing Curve 20
Meshing Curve 21
Meshing Curve 22
Meshing Curve 23
Meshing Curve 24
Meshing Curve 44
Meshing Curve 45
Meshing Curve 46
Meshing Curve 47
Meshing Curve 49
Meshing Curve 50
Meshing Curve 54
Meshing Curve 58
Meshing Curve 66
Meshing Curve 67
Meshing Curve 68
Meshing Curve 69
Meshing Curve 71
Meshing Curve 72
Meshing Curve 76
Meshing Curve 80
Meshing Curve 88
Meshing Curve 89
Meshing Curve 90
Meshing Curve 94
Meshing Curve 98
Meshing Curve 110
Meshing Curve 111
Meshing Curve 112
Meshing Curve 116
Meshing Curve 120
Meshing Curve 132
Meshing Curve 133
Meshing Curve 134
Meshing Curve 138
Meshing Curve 142
Meshing Curve 154
Meshing Curve 155
Meshing Curve 156
Meshing Curve 160
Meshing Curve 164
Meshing Curve 176
Meshing Curve 177
Meshing Curve 178
Meshing Curve 182
Meshing Curve 186
Meshing Curve 198
Meshing Curve 199
Meshing Curve 200
Meshing Curve 204
Meshing Curve 208
Meshing Curve 220
Meshing Curve 222
Mesh 1D complete (0.11 s)
Mesh
Mesh 2D...
Meshing Surface 26
Meshing Surface 28
Meshing Surface 30
Meshing Surface 32
Meshing Surface 34
Meshing Surface 36
Meshing Surface 38
Meshing Surface 40
Meshing Surface 42
Meshing Surface 51
Meshing Surface 55
Meshing Surface 59
Meshing Surface 63
Meshing Surface 64
Fatal Error : Segmentation violation (invalid memory reference)
            : ------------------------------------------------------
            : You have discovered a bug in Gmsh! You may report it
            : by e-mail (together with any helpful data permitting to
            : reproduce it) to <gmsh at geuz.org>