From 95ce8ec6ee38dcb3114fc66743cfd7fb50ea9146 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Wed, 5 Sep 2001 09:06:12 +0000 Subject: [PATCH] This crashes the old 2D isotropic algo --- benchmarks/bugs/brombo.geo | 178 ++++++++++++++++++++++++++++++++++ benchmarks/bugs/brombo2.geo | 188 ++++++++++++++++++++++++++++++++++++ 2 files changed, 366 insertions(+) create mode 100644 benchmarks/bugs/brombo.geo create mode 100644 benchmarks/bugs/brombo2.geo diff --git a/benchmarks/bugs/brombo.geo b/benchmarks/bugs/brombo.geo new file mode 100644 index 0000000000..e05c53ee9d --- /dev/null +++ b/benchmarks/bugs/brombo.geo @@ -0,0 +1,178 @@ +Rinf = 0.964183099831; +l2 = 0.02; +l = 0.04; +h = 0.005; +ri = 0.0325; +hcoil = 0.005; +ro = 0.0375; +ricoil = 0.0395; +dl = 0.004; +Ncoil = 10; +lcoil = 0.04; +dlcoil = 0.004; +coil_period = 0.044; +Rbnd = 0.482091549916; +lcoil_total = 0.436; +rocoil = 0.0445; +period = 0.044; +zcm = 1.0; +lmag_total = 0.26; +cm = 0.01; +zcoil = 0.01; +N = 6; + + +ipt = 1; +igeo = 1; + +mag_pts[] = {1,2,3,4}; + +Point(1) = {ri,-lmag_total/2,0,h/10}; +Point(2) = {ro,-lmag_total/2,0,h/10}; +Point(3) = {ro,-lmag_total/2+l,0,h/10}; +Point(4) = {ri,-lmag_total/2+l,0,h/10}; + +ipt += 4; + +mag_lines[] = {1,2,3,4}; + +Line(1) = {1,2}; +Line(2) = {2,3}; +Line(3) = {3,4}; +Line(4) = {4,1}; + +mag_loop[] = {5}; +Line Loop(5) = {1,2,3,4}; +mag_surf[] = {6}; +Plane Surface(6) = {5}; +igeo += 6; + +z = 0.0; + +For i In {1:N-1} + z += period; + Translate {0.0,z,0.0} { Duplicata{Point{mag_pts[0]};Point{mag_pts[1]}; + Point{mag_pts[2]};Point{mag_pts[3]};}} + iloop = igeo; + Line(igeo) = {ipt,ipt+1}; igeo += 1; + Line(igeo) = {ipt+1,ipt+2}; igeo += 1; + Line(igeo) = {ipt+2,ipt+3}; igeo += 1; + Line(igeo) = {ipt+3,ipt}; igeo += 1; + mag_loop[i] = igeo; + Line Loop(igeo) = {iloop,iloop+1,iloop+2,iloop+3}; igeo += 1; + mag_surf[i] = igeo; + Plane Surface(igeo) = {igeo-1}; igeo += 1; + ipt += 4; +EndFor + +iorg = ipt; + +Point(ipt) = {0,0,0,ri/20};ipt += 1; + +bnd_pts[] = {ipt,ipt+1,ipt+2}; +Point(ipt) = {0,-Rbnd,0,Rbnd/20};ipt += 1; +Point(ipt) = {Rbnd,0,0,Rbnd/20};ipt += 1; +Point(ipt) = {0,Rbnd,0,Rbnd/20};ipt += 1; + +bnd_cir[] = {igeo,igeo+1}; +Circle(igeo) = {bnd_pts[0],iorg,bnd_pts[1]};igeo += 1; +Circle(igeo) = {bnd_pts[1],iorg,bnd_pts[2]};igeo += 1; + +org_line[] = {igeo,igeo+1}; +Line(igeo) = {iorg,bnd_pts[0]};igeo += 1; +Line(igeo) = {iorg,bnd_pts[2]};igeo += 1; + +inf_pts[] = {ipt,ipt+1,ipt+2}; +Point(ipt) = {0,-Rinf,0,Rinf/20};ipt += 1; +Point(ipt) = {Rinf,0,0,Rinf/20};ipt += 1; +Point(ipt) = {0,Rinf,0,Rinf/20};ipt += 1; + +inf_cir[] = {igeo,igeo+1}; +Circle(igeo) = {inf_pts[0],iorg,inf_pts[1]};igeo += 1; +Circle(igeo) = {inf_pts[1],iorg,inf_pts[2]};igeo += 1; + +bnd_line[] = {igeo,igeo+1,igeo+2}; +Line(igeo) = {bnd_pts[0],inf_pts[0]};igeo += 1; +Line(igeo) = {bnd_pts[1],inf_pts[1]};igeo += 1; +Line(igeo) = {bnd_pts[2],inf_pts[2]};igeo += 1; + +inf_loop[] = {igeo,igeo+1}; +Line Loop(igeo) = {bnd_cir[0],bnd_line[1],-inf_cir[0],-bnd_line[0]}; igeo += 1; +Line Loop(igeo) = {bnd_cir[1],bnd_line[2],-inf_cir[1],-bnd_line[1]}; igeo += 1; +inf_sur[] = {igeo,igeo+1}; +Plane Surface(igeo) = {inf_loop[0]};igeo += 1; +Plane Surface(igeo) = {inf_loop[1]}; igeo += 1; + +coil_pts[] = {ipt,ipt+1,ipt+2,ipt+3}; + +Point(ipt) = {ricoil,zcoil-lcoil_total/2,0,hcoil/10};ipt += 1; +Point(ipt) = {rocoil,zcoil-lcoil_total/2,0,hcoil/10};ipt += 1; +Point(ipt) = {rocoil,zcoil-lcoil_total/2+lcoil,0,hcoil/10};ipt += 1; +Point(ipt) = {ricoil,zcoil-lcoil_total/2+lcoil,0,hcoil/10};ipt += 1; + +coil_line[] = {igeo,igeo+1,igeo+2,igeo+3}; + +Line(igeo) = {coil_pts[0],coil_pts[1]};igeo += 1; +Line(igeo) = {coil_pts[1],coil_pts[2]};igeo += 1; +Line(igeo) = {coil_pts[2],coil_pts[3]};igeo += 1; +Line(igeo) = {coil_pts[3],coil_pts[0]};igeo += 1; + +coil_loop[] = {igeo}; +Line Loop(igeo) = {coil_line[0],coil_line[1],coil_line[2],coil_line[3]};igeo += 1; +coil_surf[] = {igeo}; +Plane Surface(igeo) = {igeo-1};igeo += 1; + +z = 0.0; + +For i In {1:Ncoil-1} + z += coil_period; + Translate {0.0,z,0.0} { Duplicata{Point{coil_pts[0]};Point{coil_pts[1]}; + Point{coil_pts[2]};Point{coil_pts[3]};}} + iloop = igeo; + Line(igeo) = {ipt,ipt+1}; igeo += 1; + Line(igeo) = {ipt+1,ipt+2}; igeo += 1; + Line(igeo) = {ipt+2,ipt+3}; igeo += 1; + Line(igeo) = {ipt+3,ipt}; igeo += 1; + coil_loop[i] = igeo; + Line Loop(igeo) = {iloop,iloop+1,iloop+2,iloop+3}; igeo += 1; + coil_surf[i] = igeo; + Plane Surface(igeo) = {igeo-1}; igeo += 1; + ipt += 4; +EndFor + +air_loop = igeo; +Line Loop(igeo) = {bnd_cir[0],bnd_cir[1],-org_line[1],org_line[0]};igeo += 1; +air_surf[] = {air_loop}; + +For i In {1:N} + air_surf[i] = mag_loop[i-1]; +EndFor +For i In {1:Ncoil} + air_surf[i+N] = coil_loop[i-1]; +EndFor + +Air_surf = igeo; +Plane Surface(igeo) = air_surf[];igeo += 1; + +j = 0; +For i In {0:N-2:2} + mag_psurfP[j] = mag_surf[i]; + mag_psurfM[j] = mag_surf[i+1]; + j += 1; +EndFor + +j = 0; +For i In {0:Ncoil-2:2} + coil_psurfP[j] = coil_surf[i]; + coil_psurfM[j] = coil_surf[i+1]; + j += 1; +EndFor + +Coherence; + +Physical Surface(1000) = coil_psurfP[]; +Physical Surface(1001) = coil_psurfM[]; +Physical Surface(1002) = mag_psurfP[]; +Physical Surface(1003) = mag_psurfM[]; +Physical Surface(1004) = {Air_surf}; +Physical Surface(1005) = {inf_sur[0],inf_sur[1]}; diff --git a/benchmarks/bugs/brombo2.geo b/benchmarks/bugs/brombo2.geo new file mode 100644 index 0000000000..a90b025263 --- /dev/null +++ b/benchmarks/bugs/brombo2.geo @@ -0,0 +1,188 @@ +Point(1) = {0.0325, -0.13, 0, 0.0005}; +Point(2) = {0.0375, -0.13, 0, 0.0005}; +Point(3) = {0.0375, -0.09, 0, 0.0005}; +Point(4) = {0.0325, -0.09, 0, 0.0005}; +Point(5) = {0.0325, -0.086, 0, 0.0005}; +Point(6) = {0.0375, -0.086, 0, 0.0005}; +Point(7) = {0.0375, -0.046, 0, 0.0005}; +Point(8) = {0.0325, -0.046, 0, 0.0005}; +Point(9) = {0.0325, -0.042, 0, 0.0005}; +Point(10) = {0.0375, -0.042, 0, 0.0005}; +Point(11) = {0.0375, -0.002, 0, 0.0005}; +Point(12) = {0.0325, -0.002, 0, 0.0005}; +Point(13) = {0.0325, 0.002, 0, 0.0005}; +Point(14) = {0.0375, 0.002, 0, 0.0005}; +Point(15) = {0.0375, 0.042, 0, 0.0005}; +Point(16) = {0.0325, 0.042, 0, 0.0005}; +Point(17) = {0.0325, 0.046, 0, 0.0005}; +Point(18) = {0.0375, 0.046, 0, 0.0005}; +Point(19) = {0.0375, 0.086, 0, 0.0005}; +Point(20) = {0.0325, 0.086, 0, 0.0005}; +Point(21) = {0.0325, 0.09, 0, 0.0005}; +Point(22) = {0.0375, 0.09, 0, 0.0005}; +Point(23) = {0.0375, 0.13, 0, 0.0005}; +Point(24) = {0.0325, 0.13, 0, 0.0005}; +Point(25) = {0, 0, 0, 0.001625}; +Point(26) = {0, -0.482092, 0, 0.0241046}; +Point(27) = {0.482092, 0, 0, 0.0241046}; +Point(28) = {0, 0.482092, 0, 0.0241046}; +Point(29) = {0, -0.964183, 0, 0.0482092}; +Point(30) = {0.964183, 0, 0, 0.0482092}; +Point(31) = {0, 0.964183, 0, 0.0482092}; +Point(32) = {0.0395, -0.208, 0, 0.0005}; +Point(33) = {0.0445, -0.208, 0, 0.0005}; +Point(34) = {0.0445, -0.168, 0, 0.0005}; +Point(35) = {0.0395, -0.168, 0, 0.0005}; +Point(36) = {0.0395, -0.164, 0, 0.0005}; +Point(37) = {0.0445, -0.164, 0, 0.0005}; +Point(38) = {0.0445, -0.124, 0, 0.0005}; +Point(39) = {0.0395, -0.124, 0, 0.0005}; +Point(40) = {0.0395, -0.12, 0, 0.0005}; +Point(41) = {0.0445, -0.12, 0, 0.0005}; +Point(42) = {0.0445, -0.08, 0, 0.0005}; +Point(43) = {0.0395, -0.08, 0, 0.0005}; +Point(44) = {0.0395, -0.076, 0, 0.0005}; +Point(45) = {0.0445, -0.076, 0, 0.0005}; +Point(46) = {0.0445, -0.036, 0, 0.0005}; +Point(47) = {0.0395, -0.036, 0, 0.0005}; +Point(48) = {0.0395, -0.032, 0, 0.0005}; +Point(49) = {0.0445, -0.032, 0, 0.0005}; +Point(50) = {0.0445, 0.008, 0, 0.0005}; +Point(51) = {0.0395, 0.008, 0, 0.0005}; +Point(52) = {0.0395, 0.012, 0, 0.0005}; +Point(53) = {0.0445, 0.012, 0, 0.0005}; +Point(54) = {0.0445, 0.052, 0, 0.0005}; +Point(55) = {0.0395, 0.052, 0, 0.0005}; +Point(56) = {0.0395, 0.056, 0, 0.0005}; +Point(57) = {0.0445, 0.056, 0, 0.0005}; +Point(58) = {0.0445, 0.096, 0, 0.0005}; +Point(59) = {0.0395, 0.096, 0, 0.0005}; +Point(60) = {0.0395, 0.1, 0, 0.0005}; +Point(61) = {0.0445, 0.1, 0, 0.0005}; +Point(62) = {0.0445, 0.14, 0, 0.0005}; +Point(63) = {0.0395, 0.14, 0, 0.0005}; +Point(64) = {0.0395, 0.144, 0, 0.0005}; +Point(65) = {0.0445, 0.144, 0, 0.0005}; +Point(66) = {0.0445, 0.184, 0, 0.0005}; +Point(67) = {0.0395, 0.184, 0, 0.0005}; +Point(68) = {0.0395, 0.188, 0, 0.0005}; +Point(69) = {0.0445, 0.188, 0, 0.0005}; +Point(70) = {0.0445, 0.228, 0, 0.0005}; +Point(71) = {0.0395, 0.228, 0, 0.0005}; +Line (1) = {1, 2}; +Line (2) = {2, 3}; +Line (3) = {3, 4}; +Line (4) = {4, 1}; +Line (7) = {5, 6}; +Line (8) = {6, 7}; +Line (9) = {7, 8}; +Line (10) = {8, 5}; +Line (13) = {9, 10}; +Line (14) = {10, 11}; +Line (15) = {11, 12}; +Line (16) = {12, 9}; +Line (19) = {13, 14}; +Line (20) = {14, 15}; +Line (21) = {15, 16}; +Line (22) = {16, 13}; +Line (25) = {17, 18}; +Line (26) = {18, 19}; +Line (27) = {19, 20}; +Line (28) = {20, 17}; +Line (31) = {21, 22}; +Line (32) = {22, 23}; +Line (33) = {23, 24}; +Line (34) = {24, 21}; +Circle (37) = {26, 25, 27} Plane{1, 0, 0}; +Circle (38) = {27, 25, 28} Plane{1, 0, 0}; +Line (39) = {25, 26}; +Line (40) = {25, 28}; +Circle (41) = {29, 25, 30} Plane{1, 0, 0}; +Circle (42) = {30, 25, 31} Plane{1, 0, 0}; +Line (43) = {26, 29}; +Line (44) = {27, 30}; +Line (45) = {28, 31}; +Line (50) = {32, 33}; +Line (51) = {33, 34}; +Line (52) = {34, 35}; +Line (53) = {35, 32}; +Line (56) = {36, 37}; +Line (57) = {37, 38}; +Line (58) = {38, 39}; +Line (59) = {39, 36}; +Line (62) = {40, 41}; +Line (63) = {41, 42}; +Line (64) = {42, 43}; +Line (65) = {43, 40}; +Line (68) = {44, 45}; +Line (69) = {45, 46}; +Line (70) = {46, 47}; +Line (71) = {47, 44}; +Line (74) = {48, 49}; +Line (75) = {49, 50}; +Line (76) = {50, 51}; +Line (77) = {51, 48}; +Line (80) = {52, 53}; +Line (81) = {53, 54}; +Line (82) = {54, 55}; +Line (83) = {55, 52}; +Line (86) = {56, 57}; +Line (87) = {57, 58}; +Line (88) = {58, 59}; +Line (89) = {59, 56}; +Line (92) = {60, 61}; +Line (93) = {61, 62}; +Line (94) = {62, 63}; +Line (95) = {63, 60}; +Line (98) = {64, 65}; +Line (99) = {65, 66}; +Line (100) = {66, 67}; +Line (101) = {67, 64}; +Line (104) = {68, 69}; +Line (105) = {69, 70}; +Line (106) = {70, 71}; +Line (107) = {71, 68}; +Line Loop (1000006) = {1, 2, 3, 4}; +Plane Surface (6) = {1000006}; +Line Loop (1000012) = {7, 8, 9, 10}; +Plane Surface (12) = {1000012}; +Line Loop (1000018) = {13, 14, 15, 16}; +Plane Surface (18) = {1000018}; +Line Loop (1000024) = {19, 20, 21, 22}; +Plane Surface (24) = {1000024}; +Line Loop (1000030) = {25, 26, 27, 28}; +Plane Surface (30) = {1000030}; +Line Loop (1000036) = {31, 32, 33, 34}; +Plane Surface (36) = {1000036}; +Line Loop (1000048) = {37, 44, -41, -43}; +Plane Surface (48) = {1000048}; +Line Loop (1000049) = {38, 45, -42, -44}; +Plane Surface (49) = {1000049}; +Line Loop (1000055) = {50, 51, 52, 53}; +Plane Surface (55) = {1000055}; +Line Loop (1000061) = {56, 57, 58, 59}; +Plane Surface (61) = {1000061}; +Line Loop (1000067) = {62, 63, 64, 65}; +Plane Surface (67) = {1000067}; +Line Loop (1000073) = {68, 69, 70, 71}; +Plane Surface (73) = {1000073}; +Line Loop (1000079) = {74, 75, 76, 77}; +Plane Surface (79) = {1000079}; +Line Loop (1000085) = {80, 81, 82, 83}; +Plane Surface (85) = {1000085}; +Line Loop (1000091) = {86, 87, 88, 89}; +Plane Surface (91) = {1000091}; +Line Loop (1000097) = {92, 93, 94, 95}; +Plane Surface (97) = {1000097}; +Line Loop (1000103) = {98, 99, 100, 101}; +Plane Surface (103) = {1000103}; +Line Loop (1000109) = {104, 105, 106, 107}; +Plane Surface (109) = {1000109}; +Line Loop (1000111) = {37, 38, -40, 39, 1, 2, 3, 4, 7, 8, 9, 10, 13, 14, 15, 16, 19, 20, 21, 22, 25, 26, 27, 28, 31, 32, 33, 34, 50, 51, 52, 53, 56, 57, 58, 59, 62, 63, 64, 65, 68, 69, 70, 71, 74, 75, 76, 77, 80, 81, 82, 83, 86, 87, 88, 89, 92, 93, 94, 95, 98, 99, 100, 101, 104, 105, 106, 107}; +Plane Surface (111) = {1000111}; +Physical Surface (1000) = {55, 67, 79, 91, 103}; +Physical Surface (1001) = {61, 73, 85, 97, 109}; +Physical Surface (1002) = {6, 18, 30}; +Physical Surface (1003) = {12, 24, 36}; +Physical Surface (1004) = {111}; +Physical Surface (1005) = {48, 49}; -- GitLab