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