[Gmsh] incorrect char length (and a host of other problems)

Anthony Costa acosta at vdov.net
Fri Feb 15 15:49:12 CET 2008


Well, you're certainly right about that! However, upon fixing those
errors (there were others later), I now get a bug report and seg fault
(though all other errors are now fixed). Attached is the output and
new file. At lower or higher mesh densities I get various other
errors, but it always ends in a seg fault.

Anthony

--

Info    : Increasing process stack size (8192 kB < 16 MB)
Info    : 'gmsh-nightly-20080208 -3 -optimize expansion-uniform.geo '
started on Fri Feb 15 09:46:17 2008
Info    : Reading 'expansion-uniform.geo'
Info    : Jacobian Range ( 1.00000E+22,-1.00000E+22)
Info    : Read 'expansion-uniform.geo'
Info    : Meshing 1D...
Info    : Meshing curve 1 (Line)
Info    : Meshing curve 2 (Line)
Info    : Meshing curve 3 (Line)
Info    : Meshing curve 4 (Line)
Info    : Meshing curve 5 (Line)
Info    : Meshing curve 6 (Line)
Info    : Meshing curve 7 (Line)
Info    : Meshing curve 8 (Line)
Info    : Meshing curve 9 (Line)
Info    : Meshing curve 10 (Line)
Info    : Meshing curve 11 (Line)
Info    : Meshing curve 12 (Line)
Info    : Meshing curve 17 (Circle)
Info    : Meshing curve 18 (Circle)
Info    : Meshing curve 19 (Circle)
Info    : Meshing curve 20 (Circle)
Info    : Meshing curve 50 (Circle)
Info    : Meshing curve 51 (Line)
Info    : Meshing curve 52 (Line)
Info    : Meshing curve 54 (Circle)
Info    : Meshing curve 55 (Line)
Info    : Meshing curve 58 (Circle)
Info    : Meshing curve 59 (Line)
Info    : Meshing curve 62 (Circle)
Info    : Meshing curve 66 (Line)
Info    : Meshing curve 67 (Circle)
Info    : Meshing curve 68 (Circle)
Info    : Meshing curve 69 (Circle)
Info    : Meshing curve 70 (Circle)
Info    : Mesh 1D complete (0.020001 s)
Info    : Mesh
Info    : Meshing 2D...
Info    : Meshing surface 38 (Plane, MeshAdapt+Delaunay)
Fatal   : 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>
debug!
Aborted (core dumped)

-- 

// conver to meters
ctm = 0.001;

// characteristic length
lc = 0.1*ctm;

// resolved length
rc = 0.1*ctm;

negx = 0*ctm;
negy = -50*ctm;
negz = -50*ctm;
posx = 250*ctm;
posy = 50*ctm;
posz = 50*ctm;

Point(1) = {negx,negy,negz,lc};
Point(2) = {posx,negy,negz,lc};
Point(3) = {posx,posy,negz,lc};
Point(4) = {negx,posy,negz,lc};
Point(5) = {negx,negy,posz,lc};
Point(6) = {posx,negy,posz,lc};
Point(7) = {posx,posy,posz,lc};
Point(8) = {negx,posy,posz,lc};
Line(1) = {4,3};
Line(2) = {3,7};
Line(3) = {7,8};
Line(4) = {8,4};
Line(5) = {4,1};
Line(6) = {1,5};
Line(7) = {5,8};
Line(8) = {5,6};
Line(9) = {6,2};
Line(10) = {2,1};
Line(11) = {2,3};
Line(12) = {7,6};

// center of sprayer
Point(20) = {0,0,0,rc};

// length of sprayer into the box
spraylength = 25*ctm;

// inner capillary diameter
incapdiameter = .25*ctm;

// outer capillary diameter
outcapdiameter = 1.5875*ctm;

// inner and outer spray points on box wall
Point(34) = {0,-0.5*outcapdiameter,0,rc};
Point(35) = {0,0.5*outcapdiameter,0,rc};
Point(36) = {0,0,-0.5*outcapdiameter,rc};
Point(37) = {0,0,0.5*outcapdiameter,rc};

// circle definitions
Circle(17) = {37,20,34};
Circle(18) = {34,20,36};
Circle(19) = {36,20,35};
Circle(20) = {35,20,37};

// major plane surfaces at sim boundaries
Line Loop(37) = {1,2,3,4};
Plane Surface(38) = {37};
Line Loop(39) = {1,-11,10,-5};
Plane Surface(40) = {39};
Line Loop(41) = {10,6,8,9};
Plane Surface(42) = {41};
Line Loop(43) = {7,-3,12,-8};
Plane Surface(44) = {43};
Line Loop(45) = {11,2,12,9};
Plane Surface(46) = {45};
Line Loop(47) = {4,5,6,7};
Line Loop(48) = {19,20,17,18};
Plane Surface(49) = {47,48};

// expansion of outer capillary region into box
Extrude {spraylength,0,0} {
  Line{20,19,18,17};
  Point{20};
}

// creation of inner capillary termination region
Point(80) = {spraylength,-0.5*incapdiameter,0,rc};
Point(81) = {spraylength,0.5*incapdiameter,0,rc};
Point(82) = {spraylength,0,-0.5*incapdiameter,rc};
Point(83) = {spraylength,0,0.5*incapdiameter,rc};

// circles in inner capillary termination region
Circle(67) = {81,39,83};
Circle(68) = {83,39,80};
Circle(69) = {80,39,82};
Circle(70) = {82,39,81};

// creation of outer and inner capillary regions with normal in
capillary extension direction
Line Loop(71) = {50,62,58,54};
Line Loop(72) = {67,68,69,70};
Plane Surface(73) = {71,72};
Plane Surface(74) = {72};
Surface Loop(75) = {44,49,38,40,46,42,61,57,53,65,73,74};

// the simulation volume
Volume(76) = {75};

On Fri, Feb 15, 2008 at 5:31 AM, David Colignon
<David.Colignon at ulg.ac.be> wrote:
> Hi Anthony,
>
>  points 36 and 37 have 5 coordinates, and the 4th (for the characteristic length) is 0 !
>
>  Cheers,
>
>  Dave
>
>
>  --
>  David Colignon, Ph.D.
>  ACE - Applied & Computational Electromagnetics
>  Institut Montefiore B28
>  Université de Liège
>  4000 Liège - BELGIQUE
>  Tél: +32 (0)4 366 37 32
>  Fax: +32 (0)4 366 29 10
>  http://ace.montefiore.ulg.ac.be
>
>
>
>
>  Anthony Costa wrote:
>  > I am receiving an odd error message saying
>  > Error   : Incorrect char. length lc = 0: using default instead
>  >
>  > This is patently false in my mesh. The value is well defined and of
>  > proper order.
>  >
>  > The mesh is a 3D box with a cylindrical capillary travelling through
>  > the middle of the 3D box.
>  >
>  > After the returned errors, I get a series of other errors, which
>  > eventually lead to the failure of the mesh compilation. This is true
>  > at a variety of characteristic lengths. One of these is:
>  > Error   : 3 identical points in Qtest
>  >
>  > There is obviously something I have overlooked here. Any advice would
>  > be much appreciated. GEO file attached. I am using a recent nightly
>  > build: 20080208.
>  >
>  > Thanks!
>  > Anthony
>  >
>  > ---
>  >
>  > // conver to meters
>  > ctm = 0.001;
>  >
>  > // characteristic length
>  > lc = 0.01*ctm;
>  >
>  > // resolved length
>  > rc = 0.01*ctm;
>  >
>  > negx = 0*ctm;
>  > negy = -50*ctm;
>  > negz = -50*ctm;
>  > posx = 250*ctm;
>  > posy = 50*ctm;
>  > posz = 50*ctm;
>  >
>  > Point(1) = {negx, negy, negz, lc};
>  > Point(2) = {posx, negy, negz, lc};
>  > Point(3) = {posx, posy, negz, lc};
>  > Point(4) = {negx, posy, negz, lc};
>  > Point(5) = {negx, negy, posz, lc};
>  > Point(6) = {posx, negy, posz, lc};
>  > Point(7) = {posx, posy, posz, lc};
>  > Point(8) = {negx, posy, posz, lc};
>  > Line(1) = {4,3};
>  > Line(2) = {3,7};
>  > Line(3) = {7,8};
>  > Line(4) = {8,4};
>  > Line(5) = {4,1};
>  > Line(6) = {1,5};
>  > Line(7) = {5,8};
>  > Line(8) = {5,6};
>  > Line(9) = {6,2};
>  > Line(10) = {2,1};
>  > Line(11) = {2,3};
>  > Line(12) = {7,6};
>  >
>  > // center of sprayer
>  > Point(20) = {0,0,0,rc};
>  >
>  > // length of sprayer into the box
>  > spraylength = 25*ctm;
>  >
>  > // inner capillary diameter
>  > incapdiameter = .25*ctm;
>  >
>  > // outer capillary diameter
>  > outcapdiameter = 1.5875*ctm;
>  >
>  > // inner and outer spray points on box wall
>  > Point(34) = {0,-0.5*outcapdiameter,0,rc};
>  > Point(35) = {0,0.5*outcapdiameter,0,rc};
>  > Point(36) = {0,0,-0.5*outcapdiameter,0,rc};
>  > Point(37) = {0,0,0.5*outcapdiameter,0,rc};
>  >
>  > // circle definitions
>  > Circle(17) = {37,20,34};
>  > Circle(18) = {34,20,36};
>  > Circle(19) = {36,20,35};
>  > Circle(20) = {35,20,37};
>  >
>  > // major plane surfaces at sim boundaries
>  > Line Loop(37) = {1,2,3,4};
>  > Plane Surface(38) = {37};
>  > Line Loop(39) = {1,-11,10,-5};
>  > Plane Surface(40) = {39};
>  > Line Loop(41) = {10,6,8,9};
>  > Plane Surface(42) = {41};
>  > Line Loop(43) = {7,-3,12,-8};
>  > Plane Surface(44) = {43};
>  > Line Loop(45) = {11,2,12,9};
>  > Plane Surface(46) = {45};
>  > Line Loop(47) = {4,5,6,7};
>  > Line Loop(48) = {19,20,17,18};
>  > Plane Surface(49) = {47,48};
>  >
>  > // expansion of outer capillary region into box
>  > Extrude {spraylength,0,0} {
>  >  Line{20,19,18,17};
>  >  Point{20};
>  > }
>  >
>  > // creation of inner capillary termination region
>  > Point(80) = {spraylength,-(1/2)*incapdiameter,0,rc};
>  > Point(81) = {spraylength,(1/2)*incapdiameter,0,rc};
>  > Point(82) = {spraylength,0,-(1/2)*incapdiameter,0,rc};
>  > Point(83) = {spraylength,0,(1/2)*incapdiameter,0,rc};
>  >
>  > // circles in inner capillary termination region
>  > Circle(67) = {81,39,83};
>  > Circle(68) = {83,39,80};
>  > Circle(69) = {80,39,82};
>  > Circle(70) = {82,39,81};
>  >
>  > // creation of outer and inner capillary regions with normal in
>  > capillary extension direction
>  > Line Loop(71) = {50,62,58,54};
>  > Line Loop(72) = {67,68,69,70};
>  > Plane Surface(73) = {71,72};
>  > Plane Surface(74) = {72};
>  > Surface Loop(75) = {44,49,38,40,46,42,61,57,53,65,73,74};
>  >
>  > // the simulation volume
>  > Volume(76) = {75};
>  >
>



-- 
Anthony B. Costa
Purdue University
Department of Chemistry
560 Oval Drive, #365
West Lafayette, IN 47907