diff --git a/benchmarks/3d/eddyblade3d-1.geo b/benchmarks/3d/eddyblade3d-1.geo
new file mode 100644
index 0000000000000000000000000000000000000000..3d6bbe830a9b39df8818f44db10f5c14bd210a06
--- /dev/null
+++ b/benchmarks/3d/eddyblade3d-1.geo
@@ -0,0 +1,1282 @@
+// 
+//  eddyblade3d-1.geo
+//
+//  Copyright 2002 by Alfred P. Steffens, Jr. <alfred.p.steffens-jr@boeing.com>
+//
+
+//
+//  define scales
+//
+
+/*
+tiny_scale = 0.04;
+small_scale = 0.1;
+norm_scale = 0.5;
+blade_scale = 0.05;
+shield_scale = 0.7;
+large_scale = 1.5;
+*/
+
+Mesh.Algorithm = 3;
+Mesh.Smoothing = 3;
+a=0.2;
+tiny_scale = a/3.;
+small_scale = a;
+norm_scale = a;
+blade_scale = a/3.;
+shield_scale = a;
+large_scale2 = a;
+large_scale = 5*a;
+
+//
+//  points for the spline curve
+//  disk top,  left, rear
+//
+Point(1) = {-5, -3.306, -5, large_scale};
+Point(2) = {-3.769, -3.0156, -5, large_scale};
+Point(3) = {-2.522, -2.807, -5, large_scale};
+Point(4) = {-1.2638, -2.6819, -5, large_scale};
+Point(5) = {-0.127, -2.64, -5, large_scale};
+
+//
+//  points for the spline curve
+//  disk top,  right, rear
+//
+Point(6) = {5, -3.306, -5, large_scale};
+Point(7) = {3.769, -3.0156, -5, large_scale};
+Point(8) = {2.522, -2.807, -5, large_scale};
+Point(9) = {1.2638, -2.6819, -5, large_scale};
+Point(10) = {0.127, -2.64, -5, large_scale};
+
+//
+//  points for the spline curve
+//  disk top,  left, front
+//
+Point(11) = {-5, -3.306, 5, large_scale};
+Point(12) = {-3.769, -3.0156, 5, large_scale};
+Point(13) = {-2.522, -2.807, 5, large_scale};
+Point(14) = {-1.2638, -2.6819, 5, large_scale};
+Point(15) = {-0.127, -2.64, 5, large_scale};
+
+//
+//  points for the spline curve
+//  disk top,  right, front
+//
+Point(16) = {5, -3.306, 5, large_scale};
+Point(17) = {3.769, -3.0156, 5, large_scale};
+Point(18) = {2.522, -2.807, 5, large_scale};
+Point(19) = {1.2638, -2.6819, 5, large_scale};
+Point(20) = {0.127, -2.64, 5, large_scale};
+
+//
+//  points for closing the blade face -- rear
+//  points are closest to the shield plate
+//
+Point(21) = {-0.127, -0.102, -5, blade_scale};
+Point(22) = {0.127, -0.102, -5, blade_scale};
+//
+//  points for closing the blade face -- front
+//  points are closest to the shield plate
+//
+Point(23) = {-0.127, -0.102, 5, blade_scale};
+Point(24) = {0.127, -0.102, 5, blade_scale};
+
+//
+//  points that define the top surface of the shield plate
+//
+Point(25) = {-5, 0.0762, -5, shield_scale};
+Point(26) = {-5, 0.0762, 5, shield_scale};
+Point(27) = {5, 0.0762, 5, shield_scale};
+Point(28) = {5, 0.0762, -5, shield_scale};
+
+//
+//  points that define the bottom surface of the shield plate
+//
+Point(29) = {-5, -0.0762, -5, shield_scale};
+Point(30) = {-5, -0.0762, 5, shield_scale};
+Point(31) = {5, -0.0762, 5, shield_scale};
+Point(32) = {5, -0.0762, -5, shield_scale};
+
+//
+//  points that define the top, inner disk for the solenoid
+//  the first 90-degree sector
+//
+Point(33) = {0.159, 2.67, 0, small_scale};   // right-hand point
+Point(34) = {0, 2.67, 0, small_scale};        //  center (on y-axis)
+Point(35) = {0, 2.67, -0.159, small_scale};  // rear point
+
+//
+//  additional point for top, inner disk of the solenoid
+//  defines the second sector
+//
+Point(36) = {-0.159, 2.67, 0, small_scale};
+
+//
+//  additional point for top, inner disk of the solenoid
+//  defines the third sector (and fourth)
+//
+Point(37) = {0, 2.67, 0.159, small_scale};
+
+//
+//  points that define the top, outer disk for the solenoid
+//
+Point(38) = {0.185, 2.67, 0, small_scale};   // beginning of 1st sector
+Point(39) = {0, 2.67, -0.185, small_scale};  //  beginning od 2nd sector
+Point(40) = {-0.185, 2.67, 0, small_scale};  //  beginning of third sector
+Point(41) = {0, 2.67, 0.185, small_scale};   //  beginning of 4th sector
+
+//
+//  points that define the bottom, inner disk of the solenoid
+//
+//  1st sector points
+//
+Point(42) = {0.159, 0.127, 0, small_scale};
+Point(43) = {0, 0.127, 0, small_scale};
+Point(44) = {0, 0.127, -0.159, small_scale};
+//
+//
+Point(45) = {-0.159, 0.127, 0, small_scale};    //  starts 3rd sector
+Point(46) = {0, 0.127, 0.159, small_scale};     //  starts 4th sector
+
+//
+//  points that define the bottom, outer disk for the solenoid
+//
+Point(47) = {0.185, 0.127, 0, small_scale};     // starts 1st sector
+Point(48) = {0, 0.127, -0.185, small_scale};    // starts 2nd sector
+Point(49) = {-0.185, 0.127, 0, small_scale};    // starts 3rd sector
+Point(50) = {0, 0.127, 0.185, small_scale};     // starts 4th sector
+
+//
+//  points that define the top disk of the left magnet
+//
+//  1st sector points
+//
+Point(51) = {-0.21, 2.67, 0, small_scale};              // 1st pt
+Point(52) = {-0.369, 2.67, 0, small_scale};             // center
+Point(53) = {-0.369, 2.67, -0.159, small_scale};        // rear pt
+//
+//  remaining points for top disk of left magnet
+//
+Point(54) = {-0.528, 2.67, 0, small_scale};             // starts 3rd sector
+Point(55) = {-0.369, 2.67, 0.159, small_scale}; // starts 4th sector
+
+//
+//  points defining the bottom disk for the left magnet
+//
+Point(56) = {-0.21, 0.127, 0, small_scale};             // starts 1st sector
+Point(57) = {-0.369, 0.127, 0, small_scale};            // center
+Point(58) = {-0.369, 0.127, -0.159, small_scale};       // ends 1st sector
+Point(59) = {-0.528, 0.127, 0, small_scale};            // starts 3rd sector
+Point(60) = {-0.369, 0.127, 0.159, small_scale};        // starts 4th sector
+
+//  -------
+
+//
+//  points that define the top disk of the right magnet
+//
+//  1st sector points
+//
+Point(61) = {0.21, 2.67, 0, small_scale};               // 1st pt
+Point(62) = {0.369, 2.67, 0, small_scale};              // center
+Point(63) = {0.369, 2.67, -0.159, small_scale}; // rear pt
+//
+//  remaining points for top disk of left magnet
+//
+Point(64) = {0.528, 2.67, 0, small_scale};              // starts 3rd sector
+Point(65) = {0.369, 2.67, 0.159, small_scale};  // starts 4th sector
+
+//
+//  points defining the bottom disk for the right magnet
+//
+Point(66) = {0.21, 0.127, 0, small_scale};              // starts 1st sector
+Point(67) = {0.369, 0.127, 0, small_scale};             // center
+Point(68) = {0.369, 0.127, -0.159, small_scale};        // ends 1st sector
+Point(69) = {0.528, 0.127, 0, small_scale};             // starts 3rd sector
+Point(70) = {0.369, 0.127, 0.159, small_scale}; // starts 4th sector
+
+//
+//  top 4 points that define the "glass case", the inner surface of
+//  the model space
+//
+Point(71) = {5, 3.306, 5, large_scale};
+Point(72) = {5, 3.306, -5, large_scale};
+Point(73) = {-5, 3.306, -5, large_scale};
+Point(74) = {-5, 3.306, 5, large_scale};
+
+//
+//  4 points at top boundary
+//
+Point(75) = {-5.5, 4, 5.5, large_scale};
+Point(76) = {5.5, 4, 5.5, large_scale};
+Point(77) = {5.5, 4, -5.5, large_scale};
+Point(78) = {-5.5, 4, -5.5, large_scale};
+
+//
+//  4 points at bottom boundary
+//
+Point(79) = {-5.5, -4, 5.5, large_scale};
+Point(80) = {5.5, -4, 5.5, large_scale};
+Point(81) = {5.5, -4, -5.5, large_scale};
+Point(82) = {-5.5, -4, -5.5, large_scale};
+
+//
+//  8 points at the boundary that project from the shield plate
+//
+Point(83) = {-5.5, 0.0762, 5.5, large_scale2};
+Point(84) = {5.5, 0.0762, 5.5, large_scale2};
+Point(85) = {5.5, 0.0762, -5.5, large_scale2};
+Point(86) = {-5.5, 0.0762, -5.5, large_scale2};
+Point(87) = {-5.5, -0.0762, 5.5, large_scale2};
+Point(88) = {5.5, -0.0762, 5.5, large_scale2};
+Point(89) = {5.5, -0.0762, -5.5, large_scale2};
+Point(90) = {-5.5, -0.0762, -5.5, large_scale2};
+
+//
+//  spline curve for disk top
+//  left, rear
+//
+CatmullRom (1) = {1, 2, 3, 4, 5};
+//
+//  spline curve for disk top
+//  right, rear
+//
+CatmullRom (2) = {10, 9, 8, 7, 6};
+//
+//  spline curve for disk top
+//  left, front
+//
+CatmullRom (3) = {11, 12, 13, 14, 15};
+//
+//  spline curve for disk top
+//  right, front
+//
+CatmullRom (4) = {20, 19, 18, 17, 16};
+
+//
+//  lines closing the spline curve for the disk top
+//
+
+//
+//  left surface, left side
+//
+Line (5) = {11, 1};
+//
+//  left surface, right side (near center)
+//
+Line (6) = {15, 5};
+//
+//  right surface, right side
+//
+Line (7) = {16, 6};
+//
+//  right surface, left side (near center)
+//
+Line (8) = {20, 10};
+
+//
+//  lines that make the blade face at the rear
+//
+Line (9) = {5, 21};
+Line (10) = {21, 22};
+Line (11) = {22, 10};
+Line (12) = {10, 5};
+
+//
+//  lines that make the blade face at the front
+//
+Line (13) = {15, 23};
+Line (14) = {23, 24};
+Line (15) = {24, 20};
+Line (16) = {20, 15};
+
+//
+//  lines that close the blade top
+//
+Line (17) = {23, 21};
+Line (18) = {24, 22};
+
+//
+//  line that closes the bottom of the disk chord -- rear
+//
+Line (19) = {1, 6};
+//
+//  line that closes the bottom of the disk chord -- front
+//
+Line (20) = {11, 16};
+
+//
+//  lines that bound the top surface of the shield plate
+//
+Line (21) = {25, 26};
+Line (22) = {26, 27};
+Line (23) = {27, 28};
+Line (24) = {28, 25};
+
+//
+//  lines that bound the bottom surface of the shield plate
+//
+Line (25) = {29, 30};
+Line (26) = {30, 31};
+Line (27) = {31, 32};
+Line (28) = {32, 29};
+
+//
+//  lines at the corners of the shield plate
+//
+Line (29) = {25, 29};
+Line (30) = {26, 30};
+Line (31) = {28, 32};
+Line (32) = {27, 31};
+
+//
+//  Top, Inner Disk for the solenoid
+//
+//  1st sector arc --  defining the top, inner disk for solenoid
+//
+Circle (33) = {33, 34, 35} Plane{0, 0, 1};
+//
+//  2nd sector arc --  defining the top, inner disk for solenoid
+//
+Circle (34) = {35, 34, 36} Plane{0, 0, 1};
+//
+//  3rd sector arc --  defining the top, inner disk for solenoid
+//
+Circle (35) = {36, 34, 37} Plane{0, 0, 1};
+//
+//  4th sector arc --  defining the top, inner disk for solenoid
+//
+Circle (36) = {37, 34, 33} Plane{0, 0, 1};
+
+//
+//  sectors defining the top, outer disk for the solenoid
+//
+Circle (37) = {38, 34, 39} Plane{0, 0, 1};      // 1st sector
+Circle (38) = {39, 34, 40} Plane{0, 0, 1};      // 2nd sector
+Circle (39) = {40, 34, 41} Plane{0, 0, 1};      // 3rd sector
+Circle (40) = {41, 34, 38} Plane{0, 0, 1};      // 4th sector
+
+//
+//  sectors that define the bottom, inner disk for the solenoid
+//
+Circle (41) = {42, 43, 44} Plane{0, 0, 1};      // 1st sector
+Circle (42) = {44, 43, 45} Plane{0, 0, 1};      // 2nd sector
+Circle (43) = {45, 43, 46} Plane{0, 0, 1};      // 3rd sector
+Circle (44) = {46, 43, 42} Plane{0, 0, 1};      // 4th sector
+
+//
+//  sectors that define the bottom, outer disk for the solenoid
+//
+Circle (45) = {47, 43, 48} Plane{0, 0, 1};      // 1st sector
+Circle (46) = {48, 43, 49} Plane{0, 0, 1};      // 2nd sector
+Circle (47) = {49, 43, 50} Plane{0, 0, 1};      // 3rd sector
+Circle (48) = {50, 43, 47} Plane{0, 0, 1};      // 4th sector
+
+//
+//  sectors that define the top disk for the left magnet
+//
+Circle (49) = {51, 52, 53} Plane{0, 0, 1};
+Circle (50) = {53, 52, 54} Plane{0, 0, 1};
+Circle (51) = {54, 52, 55} Plane{0, 0, 1};
+Circle (52) = {55, 52, 51} Plane{0, 0, 1};
+
+//
+//  sectors defining the bottom disk for the left magnet
+//
+Circle (53) = {56, 57, 58} Plane{0, 0, 1};
+Circle (54) = {58, 57, 59} Plane{0, 0, 1};
+Circle (55) = {59, 57, 60} Plane{0, 0, 1};
+Circle (56) = {60, 57, 56} Plane{0, 0, 1};
+
+//
+//  sectors that define the top disk for the right magnet
+//
+Circle (57) = {64, 62, 63} Plane{0, 0, 1};
+Circle (58) = {63, 62, 61} Plane{0, 0, 1};
+Circle (59) = {61, 62, 65} Plane{0, 0, 1};
+Circle (60) = {65, 62, 64} Plane{0, 0, 1};
+
+//
+//  sectors that define the bottom disk for the right magnet
+//
+Circle (61) = {69, 67, 68} Plane{0, 0, 1};
+Circle (62) = {68, 67, 66} Plane{0, 0, 1};
+Circle (63) = {66, 67, 70} Plane{0, 0, 1};
+Circle (64) = {70, 67, 69} Plane{0, 0, 1};
+
+//
+//  lines that close the "glass case"
+//
+Line (65) = {1, 29};
+Line (66) = {25, 73};
+Line (67) = {11, 30};
+Line (68) = {26, 74};
+Line (69) = {6, 32};
+Line (70) = {28, 72};
+Line (71) = {16, 31};
+Line (72) = {27, 71};
+Line (73) = {73, 74};
+Line (74) = {74, 71};
+Line (75) = {71, 72};
+Line (76) = {72, 73};
+
+//
+//  lines that extend out from the glass case to the boundary
+//  "porquipine lines"
+//
+Line (77) = {74, 75};
+Line (78) = {73, 78};
+Line (79) = {72, 77};
+Line (80) = {71, 76};
+Line (81) = {1, 82};
+Line (82) = {11, 79};
+Line (83) = {6, 81};
+Line (84) = {16, 80};
+Line (85) = {26, 83};
+Line (86) = {30, 87};
+Line (87) = {27, 84};
+Line (88) = {31, 88};
+Line (89) = {28, 85};
+Line (90) = {32, 89};
+Line (91) = {25, 86};
+Line (92) = {29, 90};
+
+//
+//  lines that join all the outer points that form the boundary
+//
+Line (93) = {78, 77};
+Line (94) = {77, 76};
+Line (95) = {76, 75};
+Line (96) = {75, 78};
+Line (97) = {83, 86};
+Line (98) = {86, 85};
+Line (99) = {85, 84};
+Line (100) = {84, 83};
+Line (101) = {87, 90};
+Line (102) = {90, 89};
+Line (103) = {89, 88};
+Line (104) = {88, 87};
+Line (105) = {82, 81};
+Line (106) = {81, 80};
+Line (107) = {80, 79};
+Line (108) = {79, 82};
+Line (109) = {82, 90};
+Line (110) = {90, 86};
+Line (111) = {86, 78};
+Line (112) = {79, 87};
+Line (113) = {87, 83};
+Line (114) = {83, 75};
+Line (115) = {81, 89};
+Line (116) = {89, 85};
+Line (117) = {85, 77};
+Line (118) = {80, 88};
+Line (119) = {88, 84};
+Line (120) = {84, 76};
+
+//
+//  lines that join the top disk to the bottom disk on solenoid
+//  inner cylinder  (need for defining the surface)
+//
+Line (2000144) = {33, 42};
+Line (2000145) = {35, 44};
+Line (2000146) = {36, 45};
+Line (2000147) = {37, 46};
+
+//
+//  lines that join the top disk to the bottom disk on solenoid
+//  outer cylinder (need for defining the surface)
+//
+Line (2000148) = {38, 47};
+Line (2000149) = {39, 48};
+Line (2000150) = {40, 49};
+Line (2000151) = {41, 50};
+
+//
+//  lines that join the top disk and bottom disk of the left magnet
+//
+Line (2000152) = {51, 56};
+Line (2000153) = {53, 58};
+Line (2000154) = {54, 59};
+Line (2000155) = {55, 60};
+
+//
+//  lines that join the top disk and bottom disk of the right magnet
+//
+Line (2000156) = {64, 69};
+Line (2000157) = {63, 68};
+Line (2000158) = {61, 66};
+Line (2000159) = {65, 70};
+
+//
+//  lines that partition the sectors of the top, inner disk
+//  of the solenoid
+//
+Line (2000160) = {33, 34};
+Line (2000161) = {35, 34};
+Line (2000162) = {36, 34};
+Line (2000163) = {37, 34};
+
+//
+//  lines that partition the sectors of the bottom, inner disk
+//  of the solenoid
+//
+Line (2000164) = {42, 43};
+Line (2000165) = {44, 43};
+Line (2000166) = {45, 43};
+Line (2000167) = {46, 43};
+
+//
+//  lines that partition the sectors of the top, outer disk
+//  of the solenoid
+//
+Line (2000168) = {38, 33};
+Line (2000169) = {39, 35};
+Line (2000170) = {40, 36};
+Line (2000171) = {41, 37};
+
+//
+//  lines that partition the sectors of the bottom, outer disk
+//  of the solenoid
+//
+Line (2000172) = {47, 42};
+Line (2000173) = {48, 44};
+Line (2000174) = {49, 45};
+Line (2000175) = {50, 46};
+
+//
+//  lines that partition the sectors on the top disk of left magnet
+//
+Line (2000176) = {51, 52};
+Line (2000177) = {53, 52};
+Line (2000178) = {54, 52};
+Line (2000179) = {55, 52};
+
+//
+//  lines that partition the sectors on the bottom disk of left magnet
+//
+Line (2000180) = {56, 57};
+Line (2000181) = {58, 57};
+Line (2000182) = {59, 57};
+Line (2000183) = {60, 57};
+
+//
+//  lines that partition the sectors of the top disk of the right magnet
+//
+Line (2000184) = {64, 62};
+Line (2000185) = {63, 62};
+Line (2000186) = {61, 62};
+Line (2000187) = {65, 62};
+
+//
+//  lines that partition the sectors of the bottom disk of the right magnet
+//
+Line (2000188) = {69, 67};
+Line (2000189) = {68, 67};
+Line (2000190) = {66, 67};
+Line (2000191) = {70, 67};
+
+//
+//  plane surfaces (6 of them) for the blade
+//
+Line Loop (1000122) = {14, 15, 16, 13};
+Plane Surface (122) = {1000122};
+Line Loop (1000124) = {10, 11, 12, 9};
+Plane Surface (124) = {1000124};
+Line Loop (1000126) = {-12, -8, 16, 6};
+Plane Surface (126) = {1000126};
+Line Loop (1000128) = {10, -18, -14, 17};
+Plane Surface (128) = {1000128};
+Line Loop (1000130) = {11, -8, -15, 18};
+Plane Surface (130) = {1000130};
+Line Loop (1000132) = {-9, -6, 13, 17};
+Plane Surface (132) = {1000132};
+
+//
+//  plane surfaces for the disk chord (disk below blade)
+//
+Line Loop (2000134) = {-16, 4, -20, 3};
+Plane Surface (1000134) = {2000134};
+Line Loop (2000136) = {-12, 2, -19, 1};
+Plane Surface (1000136) = {2000136};
+Line Loop (2000138) = {7, -2, -8, 4};
+Ruled Surface (1000138) = {2000138};
+Line Loop (2000140) = {-6, -3, 5, 1};
+Ruled Surface (1000140) = {2000140};
+Line Loop (2000141) = {-12, -8, 16, 6};
+Plane Surface (1000141) = {2000141};
+Line Loop (2000143) = {19, -7, -20, 5};
+Plane Surface (1000143) = {2000143};
+
+//
+// plane surface for the top, inner disk of solenoid
+//
+Line Loop (3000193) = {-2000161, -33, 2000160};
+Plane Surface (2000193) = {3000193};
+Line Loop (3000195) = {-2000162, -34, 2000161};
+Plane Surface (2000195) = {3000195};
+Line Loop (3000197) = {-2000163, -35, 2000162};
+Plane Surface (2000197) = {3000197};
+Line Loop (3000199) = {-2000160, -36, 2000163};
+Plane Surface (2000199) = {3000199};
+
+//
+// plane surface for the bottom, inner disk of solenoid
+//
+Line Loop (4000201) = {-2000165, -41, 2000164};
+Plane Surface (3000201) = {4000201};
+Line Loop (4000203) = {-2000166, -42, 2000165};
+Plane Surface (3000203) = {4000203};
+Line Loop (4000205) = {-2000167, -43, 2000166};
+Plane Surface (3000205) = {4000205};
+Line Loop (4000207) = {-2000164, -44, 2000167};
+Plane Surface (3000207) = {4000207};
+
+//
+//  plane surface for the inner shell of the solenoid
+//
+Line Loop (5000209) = {41, -2000145, -33, 2000144};
+Ruled Surface (4000209) = {5000209};
+Line Loop (5000211) = {42, -2000146, -34, 2000145};
+Ruled Surface (4000211) = {5000211};
+Line Loop (5000213) = {-43, -2000146, 35, 2000147};
+Ruled Surface (4000213) = {5000213};
+Line Loop (5000215) = {44, -2000144, -36, 2000147};
+Ruled Surface (4000215) = {5000215};
+
+
+//
+//  plane surface for top, outer ring of solenoid
+//
+Line Loop (6000217) = {33, -2000169, -37, 2000168};
+Plane Surface (5000217) = {6000217};
+Line Loop (6000219) = {34, -2000170, -38, 2000169};
+Plane Surface (5000219) = {6000219};
+Line Loop (6000221) = {35, -2000171, -39, 2000170};
+Plane Surface (5000221) = {6000221};
+Line Loop (6000223) = {36, -2000168, -40, 2000171};
+Plane Surface (5000223) = {6000223};
+
+//
+//  plane surface for bottom, outer ring of solenoid
+//
+Line Loop (7000225) = {41, -2000173, -45, 2000172};
+Plane Surface (6000225) = {7000225};
+Line Loop (7000227) = {42, -2000174, -46, 2000173};
+Plane Surface (6000227) = {7000227};
+Line Loop (7000229) = {43, -2000175, -47, 2000174};
+Plane Surface (6000229) = {7000229};
+Line Loop (7000231) = {44, -2000172, -48, 2000175};
+Plane Surface (6000231) = {7000231};
+
+//
+//  plane surface for the outer shell of the solenoid
+//
+Line Loop (8000233) = {45, -2000149, -37, 2000148};
+Ruled Surface (7000233) = {8000233};
+Line Loop (8000235) = {46, -2000150, -38, 2000149};
+Ruled Surface (7000235) = {8000235};
+Line Loop (8000237) = {47, -2000151, -39, 2000150};
+Ruled Surface (7000237) = {8000237};
+Line Loop (8000239) = {48, -2000148, -40, 2000151};
+Ruled Surface (7000239) = {8000239};
+
+//
+//  plane surface for top disk on left magnet
+//
+Line Loop (9000241) = {-2000177, -49, 2000176};
+Plane Surface (8000241) = {9000241};
+Line Loop (9000243) = {-2000178, -50, 2000177};
+Plane Surface (8000243) = {9000243};
+Line Loop (9000245) = {-2000179, -51, 2000178};
+Plane Surface (8000245) = {9000245};
+Line Loop (9000247) = {-2000176, -52, 2000179};
+Plane Surface (8000247) = {9000247};
+
+//
+//  plane surface for bottom disk on left magnet
+//
+Line Loop (10000249) = {-2000181, -53, 2000180};
+Plane Surface (9000249) = {10000249};
+Line Loop (10000251) = {-2000182, -54, 2000181};
+Plane Surface (9000251) = {10000251};
+Line Loop (10000253) = {-2000183, -55, 2000182};
+Plane Surface (9000253) = {10000253};
+Line Loop (10000255) = {-2000180, -56, 2000183};
+Plane Surface (9000255) = {10000255};
+
+//
+//  plane surface for the shell of the left magnet
+//
+Line Loop (11000257) = {53, -2000153, -49, 2000152};
+Ruled Surface (10000257) = {11000257};
+Line Loop (11000259) = {54, -2000154, -50, 2000153};
+Ruled Surface (10000259) = {11000259};
+Line Loop (11000261) = {-55, -2000154, 51, 2000155};
+Ruled Surface (10000261) = {11000261};
+Line Loop (11000263) = {56, -2000152, -52, 2000155};
+Ruled Surface (10000263) = {11000263};
+
+//
+//  plane surface for the top disk of the right magnet
+//
+Line Loop (12000265) = {-2000185, -57, 2000184};
+Plane Surface (11000265) = {12000265};
+Line Loop (12000267) = {-2000186, -58, 2000185};
+Plane Surface (11000267) = {12000267};
+Line Loop (12000269) = {-2000187, -59, 2000186};
+Plane Surface (11000269) = {12000269};
+Line Loop (12000271) = {-2000184, -60, 2000187};
+Plane Surface (11000271) = {12000271};
+
+//
+//  plane surface for the bottom disk of the right magnet
+//
+Line Loop (13000273) = {-2000189, -61, 2000188};
+Plane Surface (12000273) = {13000273};
+Line Loop (13000275) = {-2000190, -62, 2000189};
+Plane Surface (12000275) = {13000275};
+Line Loop (13000277) = {-2000191, -63, 2000190};
+Plane Surface (12000277) = {13000277};
+Line Loop (13000279) = {-2000188, -64, 2000191};
+Plane Surface (12000279) = {13000279};
+
+//
+//  plane surface for the shell of the right magnet
+//
+Line Loop (14000281) = {61, -2000157, -57, 2000156};
+Ruled Surface (13000281) = {14000281};
+Line Loop (14000283) = {62, -2000158, -58, 2000157};
+Ruled Surface (13000283) = {14000283};
+Line Loop (14000285) = {63, -2000159, -59, 2000158};
+Ruled Surface (13000285) = {14000285};
+Line Loop (14000287) = {64, -2000156, -60, 2000159};
+Ruled Surface (13000287) = {14000287};
+
+//
+//  plane surfaces for the shield plate
+//
+Line Loop (15000289) = {22, 23, 24, 21};
+Plane Surface (14000289) = {15000289};
+Line Loop (15000291) = {26, 27, 28, 25};
+Plane Surface (14000291) = {15000291};
+Line Loop (15000293) = {-26, -30, 22, 32};
+Plane Surface (14000293) = {15000293};
+Line Loop (15000295) = {-27, -32, 23, 31};
+Plane Surface (14000295) = {15000295};
+Line Loop (15000297) = {-28, -31, 24, 29};
+Plane Surface (14000297) = {15000297};
+Line Loop (15000299) = {25, -30, -21, 29};
+Plane Surface (14000299) = {15000299};
+
+//
+//  plane surfaces of infinite abuttment on shield
+//
+//
+//  front
+//  (rear surface already defined)
+//
+Line Loop (16000301) = {100, -113, -104, 119};
+Plane Surface (15000301) = {16000301};
+Line Loop (16000303) = {119, -87, 32, 88};
+Plane Surface (15000303) = {16000303};
+Line Loop (16000305) = {86, 113, -85, 30};
+Plane Surface (15000305) = {16000305};
+//
+//  left
+//  (outer surface of boundary only)
+//
+Line Loop (17000307) = {-97, -113, 101, 110};
+Plane Surface (16000307) = {17000307};
+//
+//  right
+//  (outer surface of boundary only)
+//
+Line Loop (18000309) = {99, -119, -103, 116};
+Plane Surface (17000309) = {18000309};
+//
+//  rear
+//  (outer surface of boundary and the rear sides
+//
+//
+Line Loop (19000311) = {-98, -110, 102, 116};
+Plane Surface (18000311) = {19000311};
+Line Loop (19000313) = {92, 110, -91, 29};
+Plane Surface (18000313) = {19000313};
+Line Loop (19000315) = {116, -89, 31, 90};
+Plane Surface (18000315) = {19000315};
+
+//
+//  plane surfaces for the infinite wedges above the shield plate
+//
+//
+//  front (top) prism
+//  (bottom surface coplanar with the infinite shield prism)
+//
+Line Loop (20000317) = {87, 100, -85, 22};
+Plane Surface (19000317) = {20000317};          // bottom
+Line Loop (20000319) = {-77, 74, 80, 95};
+Plane Surface (19000319) = {20000319};          // top
+Line Loop (20000321) = {77, -114, -85, 68};
+Plane Surface (19000321) = {20000321};          // left
+Line Loop (20000323) = {-80, -72, 87, 120};
+Plane Surface (19000323) = {20000323};          // right
+Line Loop (20000325) = {-72, -22, 68, 74};
+Plane Surface (19000325) = {20000325};          // back
+Line Loop (20000327) = {-114, -100, 120, 95};
+Plane Surface (19000327) = {20000327};          // front
+//
+//  rear (top) prism
+//  (bottom surface coplanar with the infinite shield prism)
+//
+Line Loop (21000329) = {-98, -91, -24, 89};
+Plane Surface (20000329) = {21000329};          // bottom
+Line Loop (21000331) = {-93, -78, -76, 79};
+Plane Surface (20000331) = {21000331};          // top
+Line Loop (21000333) = {78, -111, -91, 66};
+Plane Surface (20000333) = {21000333};          // left
+Line Loop (21000335) = {-79, -70, 89, 117};
+Plane Surface (20000335) = {21000335};          // right
+Line Loop (21000337) = {76, -66, -24, 70};
+Plane Surface (20000337) = {21000337};          // inner
+Line Loop (21000339) = {-93, -111, 98, 117};
+Plane Surface (20000339) = {21000339};          // far rear
+//
+//  left (top) prism
+//  (side surfaces already defined in first two prisms above
+//
+Line Loop (22000341) = {-96, -77, -73, 78};
+Plane Surface (21000341) = {22000341};          // top
+Line Loop (22000343) = {-97, -85, -21, 91};
+Plane Surface (21000343) = {22000343};          // bottom
+Line Loop (22000345) = {73, -68, -21, 66};
+Plane Surface (21000345) = {22000345};          // inner
+Line Loop (22000347) = {-96, -114, 97, 111};
+Plane Surface (21000347) = {22000347};          //  far left
+//
+//  right (top) prism
+//  (side surfaces already defined in first two prisms above
+//
+Line Loop (23000349) = {94, -80, 75, 79};
+Plane Surface (22000349) = {23000349};          // top
+Line Loop (23000351) = {-99, -89, -23, 87};
+Plane Surface (22000351) = {23000351};          // bottom
+Line Loop (23000353) = {-75, -72, 23, 70};
+Plane Surface (22000353) = {23000353};          // inner
+Line Loop (23000355) = {94, -120, -99, 117};
+Plane Surface (22000355) = {23000355};          // far right
+//
+//  top (top) prism
+//  (side surfaces on all 4 sides already defined)
+//
+Line Loop (24000357) = {73, 74, 75, 76};
+Plane Surface (23000357) = {24000357};
+Line Loop (24000359) = {94, 95, 96, 93};
+Plane Surface (23000359) = {24000359};
+
+//
+//  plane surfaces for the infinite wedges below the shield plate
+//
+//
+//  front (below) prism
+//
+Line Loop (25000361) = {-104, -88, -26, 86};
+Plane Surface (24000361) = {25000361};          // top
+Line Loop (25000363) = {84, 107, -82, 20};
+Plane Surface (24000363) = {25000363};          // bottom
+//Line Loop (25000365) = {-71, -20, 67, 26};
+//Plane Surface (24000365) = {25000365};                // inner
+Line Loop (25000365) = {15, 4, 71, -26, -67, 3, 13, 14};
+Plane Surface (24000365) = {25000365};
+Line Loop (25000367) = {-112, -107, 118, 104};
+Plane Surface (24000367) = {25000367};          // nearest front
+//
+//  rear (below) prism
+//
+Line Loop (26000369) = {-90, 28, 92, 102};
+Plane Surface (25000369) = {26000369};          // top
+Line Loop (26000371) = {-105, -81, 19, 83};
+Plane Surface (25000371) = {26000371};          // bottom
+//Line Loop (26000373) = {28, -65, 19, 69};
+//Plane Surface (25000373) = {26000373};                // inner
+Line Loop (26000373) = {2, 69, 28, -65, 1, 9, 10, 11};
+Plane Surface (25000373) = {26000373};
+Line Loop (26000375) = {-102, -109, 105, 115};
+Plane Surface (25000375) = {26000375};          // far rear
+//
+//  left (below) prism
+//
+Line Loop (27000377) = {-101, -86, -25, 92};
+Plane Surface (26000377) = {27000377};          // top
+Line Loop (27000379) = {-108, -82, 5, 81};
+Plane Surface (26000379) = {27000379};          // bottom
+Line Loop (27000381) = {109, -92, -65, 81};
+Plane Surface (26000381) = {27000381};          // left (rear)
+Line Loop (27000383) = {86, -112, -82, 67};
+Plane Surface (26000383) = {27000383};          // right (front)
+Line Loop (27000385) = {25, -67, 5, 65};
+Plane Surface (26000385) = {27000385};          // inner
+Line Loop (27000387) = {-101, -112, 108, 109};
+Plane Surface (26000387) = {27000387};          // outside left
+//
+//  right (below) prism
+//
+Line Loop (28000389) = {-103, -90, -27, 88};
+Plane Surface (27000389) = {28000389};          // top
+Line Loop (28000391) = {106, -84, 7, 83};
+Plane Surface (27000391) = {28000391};          // bottom
+Line Loop (28000393) = {-90, -69, 83, 115};
+Plane Surface (27000393) = {28000393};          // left (rear)
+Line Loop (28000395) = {-88, -71, 84, 118};
+Plane Surface (27000395) = {28000395};          // right (front)
+Line Loop (28000397) = {-27, -71, 7, 69};
+Plane Surface (27000397) = {28000397};          // inner
+Line Loop (28000399) = {103, -118, -106, 115};
+Plane Surface (27000399) = {28000399};          // ouside right
+
+//
+//  plane surface closing the bottom-most prism, under the disk
+//
+Line Loop (29000401) = {105, 106, 107, 108};
+Plane Surface (28000401) = {29000401};
+
+//
+//  (rework)
+// inner surface for front, lower air prism
+//
+//Line Loop (47000437) = {15, 4, 71, -26, -67, 3, 13, 14};
+//Plane Surface (46000437) = {47000437};
+
+//
+//  (rework)
+// inner surface for rear, lower air prism
+//
+//Line Loop (48000439) = {2, 69, 28, -65, 1, 9, 10, 11};
+//Plane Surface (47000439) = {48000439};
+
+//
+// -----------------------------------------------------------------------
+//  Geometric Volumes
+// -----------------------------------------------------------------------
+//
+
+//
+//  Volume for the Disk below the blade
+//
+Surface Loop (30000403) = {1000141, 1000136, 1000138, 1000143, 1000134,
+1000140};
+Volume (29000403) = {30000403};
+
+//
+//  Volume for the blade
+//
+Surface Loop (31000405) = {1000141, 124, 128, 130, 122, 132};
+Volume (30000405) = {31000405};
+
+//
+//  Volume for the shield plate
+//
+Surface Loop (32000407) = {14000291, 14000293, 14000299, 14000289, 14000295,
+14000297};
+Volume (31000407) = {32000407};
+
+//
+//  Volume for the Solenoid core
+//
+Surface Loop (33000409) = {2000193, 2000195, 2000197, 2000199, 4000215,
+3000207, 3000201, 3000203, 3000205, 4000213, 4000211, 4000209};
+Volume (32000409) = {33000409};
+
+//
+//  Volume for the Left Magnet core
+//
+Surface Loop (34000411) = {10000257, 9000249, 9000251, 9000253, 9000255,
+10000263, 8000247, 8000241, 8000243, 8000245, 10000261, 10000259};
+Volume (33000411) = {34000411};
+
+//
+//  Volume for the Right Magnet core
+//
+Surface Loop (35000413) = {13000281, 12000273, 12000275, 12000277, 12000279,
+13000287, 11000271, 11000265, 11000267, 11000269, 13000285, 13000283};
+Volume (34000413) = {35000413};
+
+//
+//  Volume for the Solenoid windings shell
+//
+Surface Loop (36000415) = {4000213, 6000229, 6000231, 4000215, 4000209,
+6000225, 6000227, 4000211, 5000219, 5000221, 5000223, 5000217, 7000233,
+7000235, 7000237, 7000239};
+Volume (35000415) = {36000415};
+
+//
+//
+//  Volume for the shield plate edge prisms
+//
+//
+//  front prism
+//
+Surface Loop (37000417) = {24000361, 15000301, 19000317, 15000303, 14000293,
+15000305};
+Volume (36000417) = {37000417};
+//
+//  rear prism
+//
+Surface Loop (38000419) = {18000315, 18000311, 20000329, 18000313, 25000369,
+14000297};
+Volume (37000419) = {38000419};
+//
+//  left prism
+//
+Surface Loop (39000421) = {18000313, 26000377, 16000307, 21000343, 15000305,
+14000299};
+Volume (38000421) = {39000421};
+//
+//  right prism
+//
+Surface Loop (40000423) = {18000315, 17000309, 22000351, 14000295, 27000389,
+15000303};
+Volume (39000423) = {40000423};
+
+//
+//
+//  Volume for the upper, air prisms
+//
+//
+//
+//  left prism
+//
+Surface Loop (41000425) = {20000333, 21000341, 21000347, 19000321, 21000343,
+21000345};
+Volume (40000425) = {41000425};
+//
+//  right prism
+//
+Surface Loop (42000427) = {20000335, 22000349, 22000355, 19000323, 22000353,
+22000351};
+Volume (41000427) = {42000427};
+//
+//  front prism
+//
+Surface Loop (43000429) = {19000325, 19000323, 19000319, 19000321, 19000327,
+19000317};
+Volume (42000429) = {43000429};
+//
+//  rear prism
+//
+Surface Loop (44000431) = {20000337, 20000331, 20000339, 20000333, 20000329,
+20000335};
+Volume (43000431) = {44000431};
+//
+//  top prism
+//
+Surface Loop (45000433) = {23000357, 21000341, 23000359, 22000349, 19000319,
+20000331};
+Volume (44000433) = {45000433};
+
+//
+//
+//  Volume for the bottom (beneath Disk) prism
+//
+//
+Surface Loop (46000435) = {1000143, 25000371, 28000401, 27000391, 24000363,
+26000379};
+Volume (45000435) = {46000435};
+
+//
+//
+//  Volumes for the lower, air prisms
+//
+//
+//  The front prism
+//
+Surface Loop (47000437) = {122, 24000365, 1000134, 24000363, 27000395,
+24000361, 24000367, 26000383};
+Volume (46000437) = {47000437};
+//
+//  The rear prism
+//
+Surface Loop (48000439) = {124, 25000373, 1000136, 25000371, 25000375,
+25000369, 27000393, 26000381};
+Volume (47000439) = {48000439};
+//
+//  The left prism
+//
+Surface Loop (49000441) = {26000387, 26000377, 26000383, 26000379, 26000385,
+26000381};
+Volume (48000441) = {49000441};
+//
+//  The right prism
+//
+Surface Loop (50000443) = {27000397, 27000389, 27000399, 27000395, 27000391,
+27000393};
+Volume (49000443) = {50000443};
+
+//
+//  Volume for Top Air Gap
+//
+Surface Loop (51000446) = {20000337, 23000357, 21000345, 19000325, 22000353,
+14000289, 3000205, 3000207, 3000201, 3000203, 6000227, 6000229, 6000231,
+6000225, 7000233, 7000235, 7000237, 7000239, 5000223, 2000199, 2000193,
+2000195, 2000197, 5000221, 5000219, 5000217, 13000281, 12000273, 12000275,
+12000277, 12000279, 13000287, 11000271, 11000265, 11000267, 11000269,
+13000285, 13000283, 10000257, 9000249, 9000251, 9000253, 9000255, 10000263,
+8000247, 8000241, 8000243, 8000245, 10000261, 10000259};
+Volume (50000446) = {51000446};
+
+//
+//  Volume for the Bottom Air Gap
+//
+Surface Loop (52000448) = {1000140, 132, 25000373, 1000138, 27000397,
+14000291, 24000365, 130, 128, 26000385};
+Volume (51000448) = {52000448};
+
+//
+//  ----------------------------------------------------------------------
+//
+//  Physical Regions
+//
+//  ----------------------------------------------------------------------
+//
+
+//
+//  Region 1  --  The outer, enclosing surface
+//
+Physical Surface (1) = {19000327, 24000367, 15000301, 22000355, 27000399,
+17000309, 25000375, 20000339, 18000311, 21000347, 26000387, 16000307,
+23000359, 28000401};
+//
+// Region 2 -- top surface of left magnet
+//
+Physical Surface (2) = {8000241, 8000247, 8000245, 8000243};
+//
+// Region 3 -- bottom surface of left magnet
+//
+Physical Surface (3) = {9000249, 9000255, 9000253, 9000251};
+//
+// Region 4 -- top surface of right magnet
+//
+Physical Surface (4) = {11000265, 11000267, 11000269, 11000271};
+//
+// Region 5 -- bottom surface of right magnet
+//
+Physical Surface (5) = {12000273, 12000275, 12000277, 12000279};
+
+//
+//  Region 6 -- Solenoid Core Volume
+//
+Physical Volume (6) = {32000409};
+//
+//  Region 7 -- Solenoid windings shell Volume
+//
+Physical Volume (7) = {35000415};
+//
+//  Region 8 -- Left Magnet Core Volume
+//
+Physical Volume (8) = {33000411};
+//
+//  Region 9 -- Right Magnet Core Volume
+//
+Physical Volume (9) = {34000413};
+//
+//  Region 10 -- shield plate Volume
+//
+Physical Volume (10) = {31000407};
+//
+//  Region 11 -- Blade
+//
+Physical Volume (11) = {30000405};
+//
+//  Region 12 -- Disk under Blade
+//
+Physical Volume (12) = {29000403};
+
+//
+//  Regions for the Infinte Prisms
+//
+//
+//  Top Prisms
+//
+// Region 13 -- top, front air
+//
+Physical Volume (13) = {42000429};
+//
+// Region 14 -- top, rear air
+//
+Physical Volume (14) = {43000431};
+//
+// Region 15 -- top, left air
+//
+Physical Volume (15) = {40000425};
+//
+// Region 16 -- top, right air
+//
+Physical Volume (16) = {41000427};
+//
+// Region 17 -- top, top air
+//
+Physical Volume (17) = {44000433};
+
+//
+//  Shield plate Prisms
+//
+//
+//  Region 18 -- shield front
+//
+Physical Volume (18) = {36000417};
+//
+//  Region 19 -- shield rear
+//
+Physical Volume (19) = {37000419};
+//
+//  Region 20 -- shield left
+//
+Physical Volume (20) = {38000421};
+//
+//  Region 21 -- shield right
+//
+Physical Volume (21) = {39000423};
+
+//
+//  Infinite Prisms for the Bottom Air
+//
+//
+//
+//  Region 22 -- bottom, front air prism
+//
+Physical Volume (22) = {46000437};
+//
+//  Region 23 -- bottom, rear air prism
+//
+Physical Volume (23) = {47000439};
+//
+//  Region 24 -- bottom, left air prism
+//
+Physical Volume (24) = {48000441};
+//
+//  Region 25 -- bottom, right air prism
+//
+Physical Volume (25) = {49000443};
+
+//
+//  Infinite  Prism  beneath the Disk
+//
+//
+//  Region 26 -- prism under the disk
+//
+Physical Volume (26) = {45000435};
+
+//
+//  Physical Volume for the Top Air Gap
+//
+//  Region 27
+//
+Physical Volume (27) = {50000446};
+
+//
+//  Physical Volume for the Bottom Air Gap
+//
+//  Region 28
+//
+Physical Volume (28) = {51000448};
+
+//  end .geo file
+