[Gmsh] Error "Self intersecting surface mesh, computing intersections" depending of characteristic length cl

Rene Schneider rene.schneider at mathematik.tu-chemnitz.de
Tue Apr 16 07:54:11 CEST 2013


On 04/15/2013 04:08 PM, PLAUSSU Jean-Raoul CNRS wrote:
> Hello,
>
> I programmedthe following 3D geo file.
>
> Gmsh can mesh it with big characteristic lengths cl1=500 and cl2=100,
> giving 686 triangles. That means there isn’t any syntax error in my file.
>
> But reducing the characteristic length cl to cl=1 in order to get more
> triangles, and then meshing the volume, Gmsh gives the following  error
> message:
>
> Error   : Self intersecting surface mesh, computing intersections (this
> could take a while)
...
> What could be the cause of this error?
>
> How could I solve it?
>
> L_P = 300;
>
> L_I = 100;
>
> L_N = 300;
>
> L_ox = 200;
>
> R = 5;
>
> t_ox = 1.4;
>
> cl1 = 5;
>
> cl2 = 1;

Well, this asks to mesh a cylinder of radius 5 with element char. length 
5 (cl1). The length is automatically adjusted a bit, but still this 
gives a very coarse mesh of the cylinder.
There is a second cylinder inside with radius 0.9*5 (with finer mesh of 
cl2=1). The coarse surface mesh of the outer cylinder intersects with 
the mesh of the inner cylinder. So gmsh objects this is not reasonable.

The mesh of the outer cylinder has to be finer in order to avoid it 
intersecting the inner one.

Setting both cl1=cl2=1 works here.
(note that I edited the lengths of the rod as well, just to make it 
smaller and faster to mesh)

Not sure though if this results in a reasonable geometry in the end.

Hope this helps

Rene

-- 
----------------------------------------------------

       Dr. Rene Schneider

       TU Chemnitz, Fakultaet fuer Mathematik,
       09107 Chemnitz, Germany

       Besucheradresse / Visitor address:
       Reichenhainer Str. 41 / Raum 625
       09126 Chemnitz, Germany

       Tel.: +49-371-531-33953
       Fax:  +49-371-531-8-33953
       rene.schneider at mathematik.tu-chemnitz.de

       http://www.tu-chemnitz.de/~rens

----------------------------------------------------
-------------- next part --------------
L_P = 30;
L_I = 10;
L_N = 30;
L_ox = 20;
R = 5;
t_ox = 1.4;

cl1 = 1;
cl2 = 1;

// Points physiques

Point(5) = {0, 0, -L_I/2, cl1};
Point(6) = {R, 0, -L_I/2, cl1};
Point(7) = {-R, 0, -L_I/2, cl1};
Point(8) = {0, R, -L_I/2, cl1};
Point(9) = {0, -R, -L_I/2, cl1};
Point(10) = {0, 0, L_I/2, cl1};
Point(11) = {R, 0, L_I/2, cl1};
Point(12) = {-R, 0, L_I/2, cl1};
Point(13) = {0, R, L_I/2, cl1};
Point(14) = {0, -R, L_I/2, cl1};
Point(15) = {0, 0, -L_I/2-L_P, cl2};
Point(16) = {R, 0, -L_I/2-L_P, cl2};
Point(17) = {-R, 0, -L_I/2-L_P, cl2};
Point(18) = {0, R, -L_I/2-L_P, cl2};
Point(19) = {0, -R, -L_I/2-L_P, cl2};
Point(20) = {0, 0, L_I/2+L_N, cl2};
Point(21) = {R, 0, L_I/2+L_N, cl2};
Point(22) = {-R, 0, L_I/2+L_N, cl2};
Point(23) = {0, R, L_I/2+L_N, cl2};
Point(24) = {0, -R, L_I/2+L_N, cl2};
Point(25) = {0, 0, -L_ox/2, cl1};
Point(26) = {R, 0, -L_ox/2, cl1};
Point(27) = {-R, 0, -L_ox/2, cl1};
Point(28) = {0, R, -L_ox/2, cl1};
Point(29) = {0, -R, -L_ox/2, cl1};
Point(30) = {0, 0, L_ox/2, cl1};
Point(31) = {R, 0, L_ox/2, cl1};
Point(32) = {-R, 0, L_ox/2, cl1};
Point(33) = {0, R, L_ox/2, cl1};
Point(34) = {0, -R, L_ox/2, cl1};
Point(35) = {R+t_ox, 0, -L_ox/2, cl2};
Point(36) = {-(R+t_ox), 0, -L_ox/2, cl2};
Point(37) = {0, R+t_ox, -L_ox/2, cl2};
Point(40) = {R+t_ox, 0, L_ox/2, cl2};
Point(41) = {-(R+t_ox), 0, L_ox/2, cl2};
Point(42) = {0, R+t_ox, L_ox/2, cl2};
Point(44) = {R+t_ox, 0, L_I/2, cl2};
Point(45) = {-(R+t_ox), 0, L_I/2, cl2};
Point(46) = {0, R+t_ox, L_I/2, cl2};
Point(48) = {R+t_ox, 0, -L_I/2, cl2};
Point(49) = {-(R+t_ox), 0, -L_I/2, cl2};
Point(50) = {0, R+t_ox, -L_I/2, cl2};

//Points g?om?triques pour maillage non uniforme
Point(52) = {0, 0, 0.9*(L_I/2+L_N), cl2};       // extremites fil
Point(53) = {R, 0, 0.9*(L_I/2+L_N), cl2};
Point(54) = {-R, 0, 0.9*(L_I/2+L_N), cl2};
Point(55) = {0, R, 0.9*(L_I/2+L_N), cl2};
Point(56) = {0, -R, 0.9*(L_I/2+L_N), cl2};
Point(57) = {0, 0, 0.9*(-L_I/2-L_P), cl2};
Point(58) = {R, 0, 0.9*(-L_I/2-L_P), cl2};
Point(59) = {-R, 0, 0.9*(-L_I/2-L_P), cl2};
Point(60) = {0, R, 0.9*(-L_I/2-L_P), cl2};
Point(61) = {0, -R, 0.9*(-L_I/2-L_P), cl2};
Point(62) = {0.9*R, 0, -L_ox/2, cl2};          // surface fil
Point(63) = {-0.9*R, 0, -L_ox/2, cl2};
Point(64) = {0, 0.9*R, -L_ox/2, cl2};
Point(65) = {0, -0.9*R, -L_ox/2, cl2};
Point(66) = {0.9*R, 0, L_ox/2, cl2};
Point(67) = {-0.9*R, 0, L_ox/2, cl2};
Point(68) = {0, 0.9*R, L_ox/2, cl2};
Point(69) = {0, -0.9*R, L_ox/2, cl2};
Point(70) = {0.9*R, 0, L_I/2, cl2};
Point(71) = {-0.9*R, 0, L_I/2, cl2};
Point(72) = {0, 0.9*R, L_I/2, cl2};
Point(73) = {0, -0.9*R, L_I/2, cl2};
Point(74) = {0.9*R, 0, -L_I/2, cl2};
Point(75) = {-0.9*R, 0, -L_I/2, cl2};
Point(76) = {0, 0.9*R, -L_I/2, cl2};
Point(77) = {0, -0.9*R, -L_I/2, cl2};
Point(78) = {0.9*R, 0, 0.9*(L_I/2+L_N), cl2};
Point(79) = {-0.9*R, 0, 0.9*(L_I/2+L_N), cl2};
Point(80) = {0, 0.9*R, 0.9*(L_I/2+L_N), cl2};
Point(81) = {0, -0.9*R, 0.9*(L_I/2+L_N), cl2};
Point(82) = {0.9*R, 0, 0.9*(-L_I/2-L_P), cl2};
Point(83) = {-0.9*R, 0, 0.9*(-L_I/2-L_P), cl2};
Point(84) = {0, 0.9*R, 0.9*(-L_I/2-L_P), cl2};
Point(85) = {0, -0.9*R, 0.9*(-L_I/2-L_P), cl2};

Circle(5) = {74, 5, 76};
Circle(6) = {76, 5, 75};
Circle(7) = {75, 5, 77};
Circle(8) = {77, 5, 74};
Circle(9) = {62, 25, 64};
Circle(10) = {64, 25, 63};
Circle(11) = {63, 25, 65};
Circle(12) = {65, 25, 62};

Circle(13) = {8, 5, 6};
Circle(14) = {6, 5, 9};
Circle(15) = {9, 5, 7};
Circle(16) = {7, 5, 8};
Circle(17) = {28, 25, 26};
Circle(18) = {26, 25, 29};
Circle(19) = {29, 25, 27};
Circle(20) = {27, 25, 28};
Circle(21) = {72, 10, 70};
Circle(22) = {70, 10, 73};
Circle(23) = {73, 10, 71};
Circle(24) = {71, 10, 72};
Circle(25) = {13, 10, 11};
Circle(26) = {11, 10, 14};
Circle(27) = {14, 10, 12};
Circle(28) = {12, 10, 13};
Circle(29) = {68, 30, 66};
Circle(30) = {66, 30, 69};
Circle(31) = {69, 30, 67};
Circle(32) = {67, 30, 68};
Circle(33) = {33, 30, 31};
Circle(34) = {31, 30, 34};
Circle(35) = {34, 30, 32};
Circle(36) = {32, 30, 33};

Circle(37) = {42, 30, 41};
Circle(38) = {42, 30, 40};
Circle(39) = {44, 10, 46};
Circle(40) = {46, 10, 45};
Circle(41) = {50, 5, 49};
Circle(42) = {50, 5, 48};
Circle(43) = {37, 25, 35};
Circle(44) = {36, 25, 37};
Circle(45) = {82, 57, 85};
Circle(46) = {85, 57, 83};
Circle(47) = {83, 57, 84};
Circle(48) = {84, 57, 82};
Circle(49) = {58, 57, 61};
Circle(50) = {61, 57, 59};
Circle(51) = {59, 57, 60};
Circle(52) = {60, 57, 58};
Circle(53) = {17, 15, 18};
Circle(54) = {18, 15, 16};
Circle(55) = {16, 15, 19};
Circle(56) = {19, 15, 17};
Circle(57) = {23, 20, 21};
Circle(58) = {21, 20, 24};
Circle(59) = {24, 20, 22};
Circle(60) = {22, 20, 23};
Circle(61) = {80, 52, 79};
Circle(62) = {79, 52, 81};
Circle(63) = {81, 52, 78};
Circle(64) = {78, 52, 80};
Circle(65) = {55, 52, 53};
Circle(66) = {53, 52, 56};
Circle(67) = {56, 52, 54};
Circle(68) = {54, 52, 55};
Line Loop(69) = {57, 58, 59, 60};
Plane Surface(70) = {69};
Line Loop(71) = {64, 61, 62, 63};
Plane Surface(72) = {71};
Line Loop(73) = {65, 66, 67, 68};
Plane Surface(74) = {71, 73};
Line Loop(75) = {29, 30, 31, 32};
Plane Surface(76) = {75};
Line Loop(77) = {33, 34, 35, 36};
Plane Surface(78) = {75, 77};
Line Loop(79) = {21, 22, 23, 24};
Plane Surface(80) = {79};
Line Loop(81) = {25, 26, 27, 28};
Plane Surface(82) = {79, 81};
Line Loop(85) = {6, 7, 8, 5};
Plane Surface(86) = {85};
Line Loop(87) = {16, 13, 14, 15};
Plane Surface(88) = {85, 87};
Line Loop(89) = {10, 11, 12, 9};
Plane Surface(90) = {89};
Line Loop(91) = {20, 17, 18, 19};
Plane Surface(92) = {89, 91};
Line Loop(93) = {47, 48, 45, 46};
Plane Surface(94) = {93};
Line Loop(95) = {51, 52, 49, 50, 45, 46, 47, 48};  // ajout 45 46 47 48
Plane Surface(96) = {95};         // [93, 95};
Line Loop(97) = {53, 54, 55, 56};
Plane Surface(98) = {97};
Line(99) = {31, 40};
Line(100) = {11, 44};
Line(101) = {6, 48};
Line(102) = {26, 35};
Line(103) = {27, 36};
Line(104) = {7, 49};
Line(105) = {12, 45};
Line(106) = {32, 41};
Line Loop(107) = {43, -102, -17, -20, 103, 44};
Plane Surface(108) = {107};
Line Loop(109) = {42, -101, -13, -16, 104, -41};
Plane Surface(110) = {109};
Line Loop(111) = {39, 40, -105, 28, 25, 100};
Plane Surface(112) = {111};
Line Loop(113) = {38, -99, -33, -36, 106, -37};
Plane Surface(114) = {113};
Line(115) = {24, 56};
Line(116) = {56, 34};
Line(117) = {34, 14};
Line(118) = {14, 9};
Line(119) = {9, 29};
Line(120) = {29, 61};
Line(121) = {61, 19};
Line(122) = {81, 69};
Line(123) = {69, 73};
Line(124) = {73, 77};
Line(125) = {77, 65};
Line(126) = {65, 85};
Line(127) = {21, 53};
Line(128) = {53, 31};
Line(129) = {31, 11};
Line(130) = {11, 6};
Line(131) = {6, 26};
Line(132) = {26, 58};
Line(133) = {58, 16};
Line(134) = {78, 66};
Line(135) = {66, 70};
Line(136) = {70, 74};
Line(137) = {74, 62};
Line(138) = {62, 82};
Line(139) = {22, 54};
Line(140) = {54, 32};
Line(141) = {32, 12};
Line(142) = {12, 7};
Line(143) = {7, 27};
Line(144) = {27, 59};
Line(145) = {59, 17};
Line(146) = {79, 67};
Line(147) = {67, 71};
Line(148) = {71, 75};
Line(149) = {75, 63};
Line(150) = {63, 83};
Line(151) = {80, 68};
Line(152) = {68, 72};
Line(153) = {72, 76};
Line(154) = {76, 64};
Line(155) = {64, 84};
Line(156) = {23, 55};
Line(157) = {55, 33};
Line(158) = {33, 13};
Line(159) = {13, 8};
Line(160) = {8, 28};
Line(161) = {28, 60};
Line(162) = {60, 18};
Line(163) = {40, 44};
Line(164) = {44, 48};
Line(165) = {48, 35};
Line(166) = {42, 46};
Line(167) = {46, 50};
Line(168) = {50, 37};
Line(169) = {41, 45};
Line(170) = {45, 49};
Line(171) = {49, 36};
Line Loop(172) = {64, 151, 29, -134};
Ruled Surface(173) = {172};
Line Loop(174) = {29, 135, -21, -152};
Ruled Surface(175) = {174};
Line Loop(176) = {21, 136, 5, -153};
Ruled Surface(177) = {176};
Line Loop(178) = {5, 154, -9, -137};
Ruled Surface(179) = {178};
Line Loop(180) = {9, 155, 48, -138};
Ruled Surface(181) = {180};
Line Loop(182) = {138, 45, -126, 12};
Ruled Surface(183) = {182};
Line Loop(184) = {12, -137, -8, 125};
Ruled Surface(185) = {184};
Line Loop(186) = {8, -136, 22, 124};
Ruled Surface(187) = {186};
Line Loop(188) = {22, -123, -30, 135};
Ruled Surface(189) = {188};
Line Loop(190) = {30, -122, 63, 134};
Ruled Surface(191) = {190};
Line Loop(192) = {122, 31, -146, 62};
Ruled Surface(193) = {192};
Line Loop(194) = {31, 147, -23, -123};
Ruled Surface(195) = {194};
Line Loop(196) = {23, 148, 7, -124};
Ruled Surface(197) = {196};
Line Loop(198) = {7, 125, -11, -149};
Ruled Surface(199) = {198};
Line Loop(200) = {11, 126, 46, -150};
Ruled Surface(201) = {200};
Line Loop(202) = {150, 47, -155, 10};
Ruled Surface(203) = {202};
Line Loop(204) = {10, -149, -6, 154};
Ruled Surface(205) = {204};
Line Loop(206) = {6, -148, 24, 153};
Ruled Surface(207) = {206};
Line Loop(208) = {24, -152, -32, 147};
Ruled Surface(209) = {208};
Line Loop(210) = {32, -151, 61, 146};
Ruled Surface(211) = {210};
Line Loop(212) = {156, 65, -127, -57};
Ruled Surface(213) = {212};
Line Loop(214) = {65, 128, -33, -157};
Ruled Surface(215) = {214};
Line Loop(216) = {33, 129, -25, -158};
Ruled Surface(217) = {216};
Line Loop(218) = {25, 130, -13, -159};
Ruled Surface(219) = {218};
Line Loop(220) = {13, 131, -17, -160};
Ruled Surface(221) = {220};
Line Loop(222) = {17, 132, -52, -161};
Ruled Surface(223) = {222};
Line Loop(224) = {52, 133, -54, -162};
Ruled Surface(225) = {224};
Line Loop(226) = {133, 55, -121, -49};
Ruled Surface(227) = {226};
Line Loop(228) = {49, -120, -18, 132};
Ruled Surface(229) = {228};
Line Loop(230) = {18, -119, -14, 131};
Ruled Surface(231) = {230};
Line Loop(232) = {14, -118, -26, 130};
Ruled Surface(233) = {232};
Line Loop(234) = {26, -117, -34, 129};
Ruled Surface(235) = {234};
Line Loop(236) = {34, -116, -66, 128};
Ruled Surface(237) = {236};
Line Loop(238) = {66, -115, -58, 127};
Ruled Surface(239) = {238};
Line Loop(240) = {115, 67, -139, -59};
Ruled Surface(241) = {240};
Line Loop(242) = {67, 140, -35, -116};
Ruled Surface(243) = {242};
Line Loop(244) = {35, 141, -27, -117};
Ruled Surface(245) = {244};
Line Loop(246) = {27, 142, -15, -118};
Ruled Surface(247) = {246};
Line Loop(248) = {15, 143, -19, -119};
Ruled Surface(249) = {248};
Line Loop(250) = {19, 144, -50, -120};
Ruled Surface(251) = {250};
Line Loop(252) = {50, 145, -56, -121};
Ruled Surface(253) = {252};
Line Loop(254) = {145, 53, -162, -51};
Ruled Surface(255) = {254};
Line Loop(256) = {51, -161, -20, 144};
Ruled Surface(257) = {256};
Line Loop(258) = {20, -160, -16, 143};
Ruled Surface(259) = {258};
Line Loop(260) = {16, -159, -28, 142};
Ruled Surface(261) = {260};
Line Loop(262) = {28, -158, -36, 141};
Ruled Surface(263) = {262};
Line Loop(264) = {36, -157, -68, 140};
Ruled Surface(265) = {264};
Line Loop(266) = {68, -156, -60, 139};
Ruled Surface(267) = {266};
Line Loop(268) = {163, 39, -166, 38};
Ruled Surface(269) = {268};
Line Loop(270) = {39, 167, 42, -164};
Ruled Surface(271) = {270};
Line Loop(272) = {42, 165, -43, -168};
Ruled Surface(273) = {272};
Line Loop(274) = {168, -44, -171, -41};
Ruled Surface(275) = {274};
Line Loop(276) = {41, -170, -40, 167};
Ruled Surface(277) = {276};
Line Loop(278) = {40, -169, -37, 166};
Ruled Surface(279) = {278};
Line Loop(280) = {163, -100, -129, 99};
Plane Surface(281) = {280};
Line Loop(282) = {100, 164, -101, -130};
Plane Surface(283) = {282};
Line Loop(284) = {101, 165, -102, -131};
Plane Surface(285) = {284};
Line Loop(286) = {171, -103, -143, 104};
Plane Surface(287) = {286};
Line Loop(288) = {104, -170, -105, 142};
Plane Surface(289) = {288};
Line Loop(290) = {105, -169, -106, 141};
Plane Surface(291) = {290};
Line(292) = {42, 33};
Line(293) = {46, 13};
Line(294) = {50, 8};
Line(295) = {37, 28};
Line Loop(296) = {295, -160, -294, 168};
Plane Surface(297) = {296};
Line Loop(298) = {294, -159, -293, 167};
Plane Surface(299) = {298};
Line Loop(300) = {293, -158, -292, 166};
Plane Surface(301) = {300};
Surface Loop(302) = {277, 289, 279, 291, 114, 269, 281, 275, 108, 273, 285, 287, 271, 283, 261, 259, 263, 217, 219, 221};
Volume(303) = {302};
Physical Volume("grille") = {303};
Surface Loop(304) = {86, 80, 197, 207, 177, 187};
Volume(305) = {304};
Surface Loop(306) = {177, 187, 197, 207, 219, 233, 247, 261, 88, 82};
Volume(307) = {306};
Physical Volume("i") = {305, 307};
Surface Loop(308) = {185, 179, 205, 199, 86, 90};
Volume(309) = {308};
Surface Loop(310) = {249, 231, 259, 221, 185, 179, 205, 199, 88, 92};
Volume(311) = {310};
Surface Loop(312) = {76, 80, 195, 209, 175, 189};
Volume(313) = {312};
Surface Loop(314) = {195, 209, 175, 189, 245, 235, 78, 82, 263, 217};
Volume(315) = {314};
Surface Loop(316) = {211, 173, 191, 193, 265, 215, 237, 243, 78, 74};
Volume(317) = {316};
Surface Loop(318) = {72, 193, 191, 173, 211, 76};
Volume(319) = {318};
Surface Loop(320) = {267, 213, 239, 241, 70, 72, 74};
Volume(321) = {320};
Physical Volume("n") = {313, 315, 317, 319, 321};
Surface Loop(322) = {181, 203, 201, 183, 94, 90};
Volume(323) = {322};
Surface Loop(324) = {203, 201, 183, 181, 257, 223, 229, 251, 96, 92};
Volume(325) = {324};
Surface Loop(326) = {225, 227, 98, 255, 253, 94, 96};
Volume(327) = {326};
Physical Volume("p") = {309, 311, 323, 325, 327};
Physical Surface("contact_grille") = {273, 275, 271, 277, 269, 279};
Physical Surface("contact_p") = {98};
Physical Surface("contact_n") = {70};