diff --git a/benchmarks/bugs/pb_thin_structs.geo b/benchmarks/bugs/pb_thin_structs.geo new file mode 100644 index 0000000000000000000000000000000000000000..4d05dd73ffb348f3ca725aa4fef42f681c3abf81 --- /dev/null +++ b/benchmarks/bugs/pb_thin_structs.geo @@ -0,0 +1,387 @@ +// from saku +lcoil = 0.6; +Point(1) = {8.9, 1.1, 0.3, lcoil}; +Point(2) = {10.1, 1.1, 0.3, lcoil}; +Point(3) = {10.1, 1.1, -0.1, lcoil}; +Point(4) = {8.9, 1.1, -0.1, lcoil}; +Point(5) = {9, 1.1, 0.2, lcoil}; +Point(6) = {10, 1.1, 0.2, lcoil}; +Point(7) = {10, 1.1, 0, lcoil}; +Point(8) = {9, 1.1, 0, lcoil}; +Point(9) = {8.9, 3.9, 0.3, lcoil}; +Point(10) = {10.1, 3.9, 0.3, lcoil}; +Point(11) = {10.1, 3.9, -0.1, lcoil}; +Point(12) = {8.9, 3.9, -0.1, lcoil}; +Point(13) = {9, 3.9, 0.2, lcoil}; +Point(14) = {10, 3.9, 0.2, lcoil}; +Point(15) = {10, 3.9, 0, lcoil}; +Point(16) = {9, 3.9, 0, lcoil}; +Line (1) = {4, 3}; +Line (2) = {3, 2}; +Line (3) = {2, 1}; +Line (4) = {1, 4}; +Line (5) = {8, 7}; +Line (6) = {7, 6}; +Line (7) = {6, 5}; +Line (8) = {5, 8}; +Line (9) = {8, 4}; +Line (10) = {7, 3}; +Line (11) = {6, 2}; +Line (12) = {5, 1}; +Line (13) = {3, 11}; +Line (14) = {7, 15}; +Line (15) = {6, 14}; +Line (16) = {2, 10}; +Line (17) = {5, 13}; +Line (18) = {9, 1}; +Line (19) = {4, 12}; +Line (20) = {16, 8}; +Line (21) = {16, 13}; +Line (22) = {12, 9}; +Line (23) = {9, 13}; +Line (24) = {16, 12}; +Line (25) = {12, 11}; +Line (26) = {11, 15}; +Line (27) = {15, 16}; +Line (28) = {15, 14}; +Line (29) = {10, 14}; +Line (30) = {11, 10}; +Line (31) = {14, 13}; +Line (32) = {9, 10}; +Line Loop (1000034) = {32, -16, 3, -18}; +Plane Surface (34) = {1000034}; +Line Loop (1000036) = {15, -29, -16, -11}; +Plane Surface (36) = {1000036}; +Line Loop (1000038) = {17, -23, 18, -12}; +Plane Surface (38) = {1000038}; +Line Loop (1000040) = {17, -31, -15, 7}; +Plane Surface (40) = {1000040}; +Line Loop (1000042) = {3, -12, -7, 11}; +Plane Surface (42) = {1000042}; +Line Loop (1000044) = {31, -23, 32, 29}; +Plane Surface (44) = {1000044}; +Line Loop (1000046) = {18, 4, 19, 22}; +Plane Surface (46) = {1000046}; +Line Loop (1000048) = {17, -21, 20, -8}; +Plane Surface (48) = {1000048}; +Line Loop (1000050) = {19, -24, 20, 9}; +Plane Surface (50) = {1000050}; +Line Loop (1000052) = {4, -9, -8, 12}; +Plane Surface (52) = {1000052}; +Line Loop (1000054) = {21, -23, -22, -24}; +Plane Surface (54) = {1000054}; +Line Loop (1000056) = {25, -13, -1, 19}; +Plane Surface (56) = {1000056}; +Line Loop (1000058) = {20, 5, 14, 27}; +Plane Surface (58) = {1000058}; +Line Loop (1000060) = {13, 26, -14, 10}; +Plane Surface (60) = {1000060}; +Line Loop (1000062) = {25, 26, 27, 24}; +Plane Surface (62) = {1000062}; +Line Loop (1000064) = {1, -10, -5, 9}; +Plane Surface (64) = {1000064}; +Line Loop (1000066) = {13, 30, -16, -2}; +Plane Surface (66) = {1000066}; +Line Loop (1000068) = {14, 28, -15, -6}; +Plane Surface (68) = {1000068}; +Line Loop (1000070) = {31, -21, -27, 28}; +Plane Surface (70) = {1000070}; +Line Loop (1000072) = {7, 8, 5, 6}; +Plane Surface (72) = {1000072}; +Line Loop(1000073) = {6,11,-2,-10}; +Plane Surface(1000074) = {1000073}; +Line Loop(1000075) = {28,-29,-30,26}; +Plane Surface(1000076) = {1000075}; +Surface Loop(1000077) = {58,-48,40,70,-68,-72}; +Volume(1000078) = {1000077}; +Surface Loop(1000079) = {56,-62,60,58,-50,64}; +Volume(1000080) = {1000079}; +Surface Loop(1000081) = {34,-44,-40,38,-42,-36}; +Volume(1000082) = - {1000081}; //geuz +Surface Loop(1000083) = {68,60,-66,-1000076,36,1000074}; +Volume(1000084) = - {1000083}; //geuz +Surface Loop(1000085) = {46,-38,48,54,-50,-52}; +Volume(1000086) = {1000085}; +Physical Volume(10000001) = {1000078}; +Physical Volume(10000002) = {1000080}; +Physical Volume(10000003) = {1000082}; +Physical Volume(10000004) = {1000084}; +Physical Volume(10000005) = {1000086}; +lsheet1 = 0.6; +Point(17) = {0.0,0.0,0.0, lsheet1}; +Point(18) = {10,0.0,0.0, lsheet1}; +Point(19) = {10,5,0.0, lsheet1}; +Point(20) = {0,5,0.0, lsheet1}; +Point(21) = {1,1,0.0, lsheet1}; +Point(22) = {9,1,0, lsheet1}; +Point(23) = {9,4,0, lsheet1}; +Point(24) = {1,4,0, lsheet1}; +Point(27) = {0.0,0.0,0.2, lsheet1}; +Point(28) = {10,0.0,0.2, lsheet1}; +Point(29) = {10,5,0.2, lsheet1}; +Point(30) = {0,5,0.2, lsheet1}; +Point(31) = {1,1,0.2, lsheet1}; +Point(32) = {9,1,0.2, lsheet1}; +Point(33) = {9,4,0.2, lsheet1}; +Point(34) = {1,4,0.2, lsheet1}; +Line(1000087) = {15,19}; +Line(1000088) = {19,29}; +Line(1000089) = {29,14}; +Line(1000090) = {16,23}; +Line(1000091) = {23,33}; +Line(1000092) = {33,13}; +Line(1000093) = {7,18}; +Line(1000094) = {18,28}; +Line(1000095) = {28,6}; +Line(1000096) = {8,22}; +Line(1000097) = {22,32}; +Line(1000098) = {5,32}; +Line(1000099) = {24,21}; +Line(1000100) = {21,31}; +Line(1000101) = {31,34}; +Line(1000102) = {34,24}; +Line(1000103) = {20,17}; +Line(1000104) = {17,27}; +Line(1000105) = {27,30}; +Line(1000106) = {30,20}; +Line(1000107) = {18,17}; +Line(1000108) = {27,28}; +Line(1000109) = {20,19}; +Line(1000110) = {29,30}; +Line(1000111) = {22,21}; +Line(1000112) = {31,32}; +Line(1000113) = {23,24}; +Line(1000114) = {34,33}; +Line Loop(1000115) = {1000089,-28,1000087,1000088}; +Plane Surface(1000116) = {1000115}; +Line Loop(1000117) = {1000088,1000110,1000106,1000109}; +Plane Surface(1000118) = {1000117}; +Line Loop(1000119) = {1000103,1000104,1000105,1000106}; +Plane Surface(1000120) = {1000119}; +Line Loop(1000121) = {1000107,1000104,1000108,-1000094}; +Plane Surface(1000122) = {1000121}; +Line Loop(1000123) = {1000093,1000094,1000095,-6}; +Plane Surface(1000124) = {1000123}; +Line Loop(1000125) = {8,1000096,1000097,-1000098}; +Plane Surface(1000126) = {1000125}; +Line Loop(1000127) = {1000097,-1000112,-1000100,-1000111}; +Plane Surface(1000128) = {1000127}; +Line Loop(1000129) = {1000100,1000101,1000102,1000099}; +Plane Surface(1000130) = {1000129}; +Line Loop(1000131) = {1000102,-1000113,1000091,-1000114}; +Plane Surface(1000132) = {1000131}; +Line Loop(1000133) = {1000091,1000092,-21,1000090}; +Plane Surface(1000134) = {1000133}; +Line Loop(1000135) = {1000089,31,-1000092,-1000114,-1000101,1000112,-1000098,-7,-1000095,-1000108,1000105,-1000110}; +Plane Surface(1000136) = {1000135}; +Line Loop(1000137) = {5,1000093,1000107,-1000103,1000109,-1000087,27,1000090,1000113,1000099,-1000111,-1000096}; +Plane Surface(1000138) = {1000137}; +Surface Loop(1000139) = {1000132,1000130,-1000128,-1000126,72,1000136,1000116,70,-1000134,-1000138,-1000124,1000122,1000120,1000118}; +Volume(1000140) = - {1000139}; //geuz +Physical Volume(10000006) = {1000140}; +lsheet2 = 0.6; +Point(35) = {0.0,0.0,0.4,lsheet2}; +Point(36) = {10,0.0,0.4,lsheet2}; +Point(37) = {10,5,0.4,lsheet2}; +Point(38) = {0,5,0.4,lsheet2}; +Point(39) = {1,1,0.4,lsheet2}; +Point(40) = {4.5,1,0.4,lsheet2}; +Point(41) = {4.5,4,0.4,lsheet2}; +Point(42) = {1,4,0.4,lsheet2}; +Point(43) = {5.5,1,0.4,lsheet2}; +Point(44) = {9,1,0.4,lsheet2}; +Point(45) = {9,4,0.4,lsheet2}; +Point(46) = {5.5,4,0.4,lsheet2}; +Point(47) = {0,2.5,0.4,lsheet2}; +Point(48) = {1,2.5,0.4,lsheet2}; +Point(49) = {0,1,0.4,lsheet2}; +Point(50) = {0.0,0.0,0.5,lsheet2}; +Point(51) = {10,0.0,0.5,lsheet2}; +Point(52) = {10,5,0.5,lsheet2}; +Point(53) = {0,5,0.5,lsheet2}; +Point(54) = {1,1,0.5,lsheet2}; +Point(55) = {4.5,1,0.5,lsheet2}; +Point(56) = {4.5,4,0.5,lsheet2}; +Point(57) = {1,4,0.5,lsheet2}; +Point(58) = {5.5,1,0.5,lsheet2}; +Point(59) = {9,1,0.5,lsheet2}; +Point(60) = {9,4,0.5,lsheet2}; +Point(61) = {5.5,4,0.5,lsheet2}; +Point(62) = {0,2.5,0.5,lsheet2}; +Point(63) = {1,2.5,0.5,lsheet2}; +Point(64) = {0,1,0.5,lsheet2}; +Line(1000141) = {52,37}; +Line(1000142) = {52,53}; +Line(1000143) = {53,38}; +Line(1000144) = {38,37}; +Line(1000145) = {53,62}; +Line(1000146) = {62,47}; +Line(1000147) = {47,38}; +Line(1000148) = {62,64}; +Line(1000149) = {64,49}; +Line(1000150) = {49,47}; +Line(1000151) = {62,63}; +Line(1000152) = {63,48}; +Line(1000153) = {48,47}; +Line(1000154) = {64,54}; +Line(1000155) = {54,39}; +Line(1000156) = {39,49}; +Line(1000157) = {63,54}; +Line(1000158) = {39,48}; +Line(1000159) = {63,57}; +Line(1000160) = {57,42}; +Line(1000161) = {42,48}; +Line(1000162) = {57,56}; +Line(1000163) = {56,41}; +Line(1000164) = {41,42}; +Line(1000165) = {61,46}; +Line(1000166) = {46,45}; +Line(1000167) = {45,60}; +Line(1000168) = {60,61}; +Line(1000169) = {60,59}; +Line(1000170) = {59,44}; +Line(1000171) = {44,45}; +Line(1000172) = {52,51}; +Line(1000173) = {51,36}; +Line(1000174) = {36,37}; +Line(1000175) = {51,50}; +Line(1000176) = {50,35}; +Line(1000177) = {50,64}; +Line(1000178) = {35,49}; +Line(1000179) = {35,36}; +Line(1000180) = {54,55}; +Line(1000181) = {55,40}; +Line(1000182) = {40,39}; +Line(1000183) = {56,55}; +Line(1000184) = {40,41}; +Line(1000185) = {61,58}; +Line(1000186) = {58,43}; +Line(1000187) = {43,46}; +Line(1000188) = {58,59}; +Line(1000189) = {44,43}; +Line Loop(1000190) = {1000179,-1000173,1000175,1000176}; +Plane Surface(1000191) = {1000190}; +Line Loop(1000192) = {1000174,-1000141,1000172,1000173}; +Plane Surface(1000193) = {1000192}; +Line Loop(1000194) = {1000144,-1000141,1000142,1000143}; +Plane Surface(1000195) = {1000194}; +Line Loop(1000196) = {1000143,-1000147,-1000146,-1000145}; +Plane Surface(1000197) = {1000196}; +Line Loop(1000198) = {1000146,-1000153,-1000152,-1000151}; +Plane Surface(1000199) = {1000198}; +Line Loop(1000200) = {1000146,-1000150,-1000149,-1000148}; +Plane Surface(1000201) = {1000200}; +Line Loop(1000202) = {1000156,-1000149,1000154,1000155}; +Plane Surface(1000203) = {1000202}; +Line Loop(1000204) = {1000177,1000149,-1000178,-1000176}; +Plane Surface(1000205) = {1000204}; +Line Loop(1000206) = {1000158,-1000152,1000157,1000155}; +Plane Surface(1000207) = {1000206}; +Line Loop(1000208) = {1000159,1000160,1000161,-1000152}; +Plane Surface(1000209) = {1000208}; +Line Loop(1000210) = {1000164,-1000160,1000162,1000163}; +Plane Surface(1000211) = {1000210}; +Line Loop(1000212) = {1000184,-1000163,1000183,1000181}; +Plane Surface(1000213) = {1000212}; +Line Loop(1000214) = {1000182,-1000155,1000180,1000181}; +Plane Surface(1000215) = {1000214}; +Line Loop(1000216) = {1000187,-1000165,1000185,1000186}; +Plane Surface(1000217) = {1000216}; +Line Loop(1000218) = {1000186,-1000189,-1000170,-1000188}; +Plane Surface(1000219) = {1000218}; +Line Loop(1000220) = {1000171,1000167,1000169,1000170}; +Plane Surface(1000221) = {1000220}; +Line Loop(1000222) = {1000166,1000167,1000168,1000165}; +Plane Surface(1000223) = {1000222}; +Line Loop(1000224) = {1000147,1000144,-1000174,-1000179,1000178,-1000156,-1000182,1000184,1000164,1000161,1000153}; +Line Loop(1000225) = {1000187,1000166,-1000171,1000189}; +Plane Surface(1000226) = {1000224,1000225}; +Line Loop(1000227) = {1000158,1000153,-1000150,-1000156}; +Plane Surface(1000228) = {1000227}; +Line Loop(1000229) = {1000145,1000151,1000159,1000162,1000183,-1000180,-1000154,-1000177,-1000175,-1000172,1000142}; +Line Loop(1000230) = {1000169,-1000188,-1000185,-1000168}; +Plane Surface(1000231) = {1000229,1000230}; +Line Loop(1000232) = {1000157,-1000154,-1000148,1000151}; +Plane Surface(1000233) = {1000232}; +Surface Loop(1000234) = {1000231,-1000197,-1000195,-1000226,1000193,-1000191,1000205,-1000203,1000215,1000213,-1000211,1000209,1000199,-1000219,-1000217,1000223,1000221}; +Volume(1000235) = {1000234}; +Surface Loop(1000236) = {1000233,1000207,1000228,-1000199,-1000201,-1000203}; +Volume(1000237) = {1000236}; +Physical Volume(10000007) = {1000235}; +Physical Volume(10000008) = {1000236}; +dist1=7; +lext1 = dist1 / 2; +Point(65) = {dist1+5, dist1+2.5, -dist1/2, lext1}; +Point(66) = {-dist1+5, dist1+2.5, -dist1/2, lext1}; +Point(67) = {-dist1+5, -dist1+2.5, -dist1/2, lext1}; +Point(68) = {dist1+5, -dist1+2.5, -dist1/2, lext1}; +Point(69) = {dist1+5, dist1+2.5, dist1/2, lext1}; +Point(70) = {-dist1+5, dist1+2.5, dist1/2, lext1}; +Point(71) = {-dist1+5, -dist1+2.5, dist1/2, lext1}; +Point(72) = {dist1+5, -dist1+2.5, dist1/2, lext1}; +dist2=40; +lext2 = dist2 / 1; +Point(73) = {dist2+5, dist2+5, -dist2/2, lext2}; +Point(74) = {-dist2+5, dist2+5, -dist2/2, lext2}; +Point(75) = {-dist2+5, -dist2+5, -dist2/2, lext2}; +Point(76) = {dist2+5, -dist2+5, -dist2/2, lext2}; +Point(77) = {dist2+5, dist2+5, dist2/2, lext2}; +Point(78) = {-dist2+5, dist2+5, dist2/2, lext2}; +Point(79) = {-dist2+5, -dist2+5, dist2/2, lext2}; +Point(80) = {dist2+5, -dist2+5, dist2/2, lext2}; +Line(1000238) = {65,68}; +Line(1000239) = {68,72}; +Line(1000240) = {72,69}; +Line(1000241) = {66,65}; +Line(1000242) = {65,69}; +Line(1000243) = {69,70}; +Line(1000244) = {70,66}; +Line(1000245) = {66,67}; +Line(1000246) = {67,68}; +Line(1000247) = {67,71}; +Line(1000248) = {71,72}; +Line(1000249) = {71,70}; +Line(1000250) = {73,76}; +Line(1000251) = {76,75}; +Line(1000252) = {75,74}; +Line(1000253) = {74,73}; +Line(1000254) = {74,78}; +Line(1000255) = {78,77}; +Line(1000256) = {77,80}; +Line(1000257) = {80,76}; +Line(1000258) = {78,79}; +Line(1000259) = {79,75}; +Line(1000260) = {79,80}; +Line(1000261) = {73,77}; +Line Loop(1000262) = {1000252,1000254,1000258,1000259}; +Plane Surface(1000263) = {1000262}; +Line Loop(1000264) = {1000258,1000260,-1000256,-1000255}; +Plane Surface(1000265) = {1000264}; +Line Loop(1000266) = {1000259,-1000251,-1000257,-1000260}; +Plane Surface(1000267) = {1000266}; +Line Loop(1000268) = {1000252,1000253,1000250,1000251}; +Plane Surface(1000269) = {1000268}; +Line Loop(1000270) = {1000250,-1000257,-1000256,-1000261}; +Plane Surface(1000271) = {1000270}; +Line Loop(1000272) = {1000254,1000255,-1000261,-1000253}; +Plane Surface(1000273) = {1000272}; +Line Loop(1000274) = {1000245,1000246,-1000238,-1000241}; +Plane Surface(1000275) = {1000274}; +Line Loop(1000276) = {1000241,1000242,1000243,1000244}; +Plane Surface(1000277) = {1000276}; +Line Loop(1000278) = {1000249,-1000243,-1000240,-1000248}; +Plane Surface(1000279) = {1000278}; +Line Loop(1000280) = {1000247,1000248,-1000239,-1000246}; +Plane Surface(1000281) = {1000280}; +Line Loop(1000282) = {1000238,1000239,1000240,-1000242}; +Plane Surface(1000283) = {1000282}; +Line Loop(1000284) = {1000249,1000244,1000245,1000247}; +Plane Surface(1000285) = {1000284}; +Surface Loop(1000286) = {1000263,1000269,-1000273,1000265,-1000267,-1000271}; +Surface Loop(1000287) = {1000285,1000279,-1000277,1000275,-1000281,1000283}; +Volume(1000288) = {1000286,1000287}; +Surface Loop(1000289) = {1000116,1000136,-44,54,1000134,1000132,1000130,-1000128,-1000126,-52,46,34,-66,-56,62,-1000076,-1000138,-64,1000074,1000124,-1000122,-1000120,-1000118,-42}; +Surface Loop(1000290) = {1000195,1000226,-1000197,1000201,1000228,1000207,1000209,1000231,1000233,1000211,-1000213,-1000215,-1000205,1000191,-1000193,1000223,1000221,-1000219,-1000217}; +Volume(1000291) = {1000287,1000289,1000290}; +Physical Surface(1000292) = {1000273,1000265,1000263,1000269,1000271,1000267}; +Physical Volume(10000009)={1000291,1000288};