diff --git a/libsrc/meshing/improve2.cpp b/libsrc/meshing/improve2.cpp index bd4dfe6d..90f984cd 100644 --- a/libsrc/meshing/improve2.cpp +++ b/libsrc/meshing/improve2.cpp @@ -354,7 +354,7 @@ namespace netgen - bool CombineImproveEdge( Mesh & mesh, + double CombineImproveEdge( Mesh & mesh, const Table & elementsonnode, Array, PointIndex> & normals, Array & fixed, @@ -365,7 +365,7 @@ namespace netgen ArrayMem hasonepi, hasbothpi; if (!pi1.IsValid() || !pi2.IsValid()) - return false; + return 0.0; bool debugflag = 0; @@ -378,7 +378,7 @@ namespace netgen /* // save version: if (fixed.Get(pi1) || fixed.Get(pi2)) - return false; + return 0.0; if (pi2 < pi1) swap (pi1, pi2); */ @@ -387,7 +387,7 @@ namespace netgen Swap (pi1, pi2); if (fixed[pi2]) - return false; + return 0.0; double loch = mesh.GetH (mesh[pi1]); @@ -410,7 +410,7 @@ namespace netgen } if(hasbothpi.Size()==0) - return false; + return 0.0; nv = normals[pi1]; @@ -486,16 +486,17 @@ namespace netgen (*testout) << "bad1 = " << bad1 << ", bad2 = " << bad2 << endl; } - bool should = (bad2 < bad1 && bad2 < 1e4); - if (bad2 < 1e4) + bool should = (illegal2<=illegal1 && bad2 < bad1 && bad2 < 1e4); + if(illegal2 < illegal1) { - if (illegal1 > illegal2) should = true; - if (illegal2 > illegal1) should = false; + should = true; + bad1 += 1e4; } + double d_badness = should * (bad2-bad1); if(check_only) - return should; + return d_badness; if (should) { @@ -562,7 +563,7 @@ namespace netgen mesh[sei].Delete(); } - return should; + return d_badness; } void MeshOptimize2d :: CombineImprove (Mesh & mesh) @@ -658,9 +659,24 @@ namespace netgen timerstart.Stop(); - for (auto e : edges) + // Find edges with improvement + Array> candidate_edges(edges.Size()); + std::atomic improvement_counter(0); + + ParallelFor( Range(edges), [&] (auto i) NETGEN_LAMBDA_INLINE { - auto [pi1, pi2] = e; + auto [pi1, pi2] = edges[i]; + double d_badness = CombineImproveEdge(mesh, elementsonnode, normals, fixed, pi1, pi2, true); + if(d_badness < 0.0) + candidate_edges[improvement_counter++] = make_tuple(d_badness, i); + }); + + auto edges_with_improvement = candidate_edges.Part(0, improvement_counter.load()); + QuickSort(edges_with_improvement); + + for(auto [d_badness, ei] : edges_with_improvement) + { + auto [pi1, pi2] = edges[ei]; CombineImproveEdge(mesh, elementsonnode, normals, fixed, pi1, pi2, false); } diff --git a/tests/pytest/results.json b/tests/pytest/results.json index b8c82e94..208703f2 100644 --- a/tests/pytest/results.json +++ b/tests/pytest/results.json @@ -54,9 +54,9 @@ { "ne1d": 94, "ne2d": 114, - "ne3d": 158, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 1, 7, 10, 16, 5, 8, 15, 13, 17, 13, 9, 25, 7, 11]", - "total_badness": 247.68310347 + "ne3d": 157, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 3, 8, 13, 13, 15, 7, 12, 11, 19, 14, 12, 21, 5, 3]", + "total_badness": 260.17372209 }, { "ne1d": 136, @@ -268,8 +268,8 @@ "ne1d": 144, "ne2d": 148, "ne3d": 98, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 3, 4, 16, 18, 14, 20, 4, 8, 2, 0]", - "total_badness": 145.06570733 + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 3, 4, 18, 19, 13, 20, 2, 9, 1, 0]", + "total_badness": 145.83375079 }, { "ne1d": 144, @@ -282,45 +282,45 @@ "ne1d": 144, "ne2d": 148, "ne3d": 98, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 6, 6, 17, 20, 14, 18, 5, 6, 3, 0]", - "total_badness": 144.34810179 + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 6, 6, 19, 21, 12, 18, 5, 4, 4, 0]", + "total_badness": 145.14580879 }, { "ne1d": 144, "ne2d": 148, "ne3d": 98, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 3, 4, 16, 18, 14, 20, 4, 8, 2, 0]", - "total_badness": 145.06570733 + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 3, 4, 18, 19, 13, 20, 2, 9, 1, 0]", + "total_badness": 145.83375079 }, { "ne1d": 264, "ne2d": 390, "ne3d": 369, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 4, 5, 19, 26, 42, 46, 49, 41, 53, 45, 27, 10, 2]", - "total_badness": 554.2808696 + "total_badness": 554.2809713 }, { "ne1d": 428, "ne2d": 926, "ne3d": 1074, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 2, 23, 52, 36, 108, 136, 97, 114, 160, 162, 66, 63, 32, 22]", - "total_badness": 1676.2593956 + "quality_histogram": "[0, 0, 0, 0, 0, 1, 2, 23, 50, 36, 109, 137, 96, 117, 160, 162, 67, 60, 32, 22]", + "total_badness": 1675.8711911 } ], "cubemcyl.geo": [ { "ne1d": 142, "ne2d": 2488, - "ne3d": 20835, - "quality_histogram": "[0, 0, 0, 0, 0, 2, 28, 93, 206, 422, 722, 1146, 1822, 2545, 3153, 3286, 3135, 2461, 1439, 375]", - "total_badness": 28896.677361 + "ne3d": 20783, + "quality_histogram": "[0, 0, 0, 0, 0, 2, 26, 94, 208, 408, 708, 1158, 1848, 2485, 3200, 3251, 3127, 2474, 1418, 376]", + "total_badness": 28813.276387 }, { "ne1d": 64, - "ne2d": 644, - "ne3d": 3351, - "quality_histogram": "[0, 0, 0, 0, 0, 2, 9, 9, 32, 59, 131, 238, 363, 472, 548, 547, 437, 297, 173, 34]", - "total_badness": 4754.2892871 + "ne2d": 642, + "ne3d": 3214, + "quality_histogram": "[0, 0, 0, 0, 0, 2, 7, 13, 34, 74, 140, 230, 351, 455, 533, 531, 378, 284, 151, 31]", + "total_badness": 4592.7629352 }, { "ne1d": 102, @@ -332,9 +332,9 @@ { "ne1d": 142, "ne2d": 2488, - "ne3d": 19480, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 7, 31, 97, 233, 526, 1186, 1978, 2941, 3443, 3496, 3088, 1914, 539]", - "total_badness": 25362.425666 + "ne3d": 19499, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 5, 27, 106, 226, 529, 1209, 2008, 2862, 3440, 3576, 3083, 1921, 507]", + "total_badness": 25390.546576 }, { "ne1d": 210, @@ -361,17 +361,17 @@ }, { "ne1d": 44, - "ne2d": 278, - "ne3d": 784, - "quality_histogram": "[0, 0, 0, 0, 1, 4, 8, 22, 44, 59, 70, 79, 102, 109, 97, 65, 50, 42, 24, 8]", - "total_badness": 1282.4153699 + "ne2d": 274, + "ne3d": 768, + "quality_histogram": "[0, 0, 0, 0, 1, 5, 9, 11, 26, 62, 72, 78, 114, 95, 91, 78, 74, 24, 22, 6]", + "total_badness": 1237.8358347 }, { "ne1d": 68, "ne2d": 402, - "ne3d": 1584, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 9, 25, 62, 126, 170, 221, 284, 265, 214, 129, 61, 16]", - "total_badness": 2237.5355054 + "ne3d": 1600, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 4, 26, 61, 119, 170, 232, 277, 269, 214, 148, 71, 7]", + "total_badness": 2248.6479915 }, { "ne1d": 90, @@ -382,17 +382,17 @@ }, { "ne1d": 146, - "ne2d": 1490, - "ne3d": 17756, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 8, 28, 65, 211, 496, 1039, 1934, 3005, 3638, 3787, 2764, 781]", - "total_badness": 21965.581134 + "ne2d": 1492, + "ne3d": 17800, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 7, 23, 89, 208, 524, 1085, 1942, 2969, 3729, 3811, 2675, 736]", + "total_badness": 22074.204803 }, { "ne1d": 248, "ne2d": 4354, - "ne3d": 113687, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 3, 14, 37, 138, 359, 904, 2353, 5729, 11225, 18258, 23885, 25920, 19046, 5816]", - "total_badness": 139052.64247 + "ne3d": 113716, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 5, 12, 43, 136, 381, 909, 2353, 5720, 11280, 18112, 23886, 25957, 19090, 5832]", + "total_badness": 139103.15382 } ], "cylinder.geo": [ @@ -530,10 +530,10 @@ "ellipticcone.geo": [ { "ne1d": 174, - "ne2d": 1558, - "ne3d": 5148, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 3, 13, 32, 59, 117, 206, 341, 616, 725, 911, 895, 680, 405, 145]", - "total_badness": 6904.0840287 + "ne2d": 1562, + "ne3d": 5180, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 18, 65, 115, 211, 361, 589, 766, 881, 904, 732, 405, 130]", + "total_badness": 6920.4601657 }, { "ne1d": 86, @@ -551,24 +551,24 @@ }, { "ne1d": 174, - "ne2d": 1558, - "ne3d": 4919, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 4, 21, 50, 124, 251, 452, 657, 897, 985, 787, 505, 184]", - "total_badness": 6326.974644 + "ne2d": 1562, + "ne3d": 4943, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 4, 15, 49, 116, 255, 456, 635, 917, 1005, 806, 517, 167]", + "total_badness": 6347.4280983 }, { "ne1d": 258, "ne2d": 3468, - "ne3d": 13311, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 5, 34, 98, 172, 364, 632, 1073, 1669, 2270, 2500, 2349, 1609, 535]", - "total_badness": 17095.282764 + "ne3d": 13314, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 4, 33, 103, 197, 351, 652, 1077, 1619, 2280, 2518, 2361, 1583, 535]", + "total_badness": 17113.967555 }, { "ne1d": 432, - "ne2d": 9538, - "ne3d": 69769, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 14, 43, 119, 293, 743, 1835, 3902, 7404, 11284, 14551, 15051, 11055, 3473]", - "total_badness": 86055.714906 + "ne2d": 9544, + "ne3d": 69891, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 9, 37, 119, 313, 839, 1927, 4086, 7715, 11454, 14338, 14977, 10816, 3260]", + "total_badness": 86472.194086 } ], "ellipticcyl.geo": [ @@ -602,17 +602,17 @@ }, { "ne1d": 232, - "ne2d": 2210, - "ne3d": 8345, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 5, 9, 43, 109, 293, 640, 956, 1382, 1736, 1662, 1176, 334]", - "total_badness": 10435.490494 + "ne2d": 2212, + "ne3d": 8313, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 4, 15, 37, 113, 263, 626, 1005, 1387, 1743, 1660, 1133, 327]", + "total_badness": 10392.004794 }, { "ne1d": 388, - "ne2d": 6138, - "ne3d": 54637, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 5, 32, 119, 325, 910, 2429, 5008, 8209, 11690, 12637, 9994, 3276]", - "total_badness": 66190.217682 + "ne2d": 6142, + "ne3d": 54975, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 12, 45, 127, 329, 844, 2554, 5100, 8469, 11479, 12855, 9876, 3283]", + "total_badness": 66669.096677 } ], "fichera.geo": [ @@ -662,40 +662,40 @@ "frame.step": [ { "ne1d": 12694, - "ne2d": 40520, - "ne3d": 221762, - "quality_histogram": "[3, 5, 5, 12, 7, 59, 290, 817, 1933, 3640, 6299, 10873, 17623, 25259, 32707, 35796, 34974, 29136, 17768, 4556]", - "total_badness": 303041.23654 + "ne2d": 40530, + "ne3d": 221097, + "quality_histogram": "[3, 7, 7, 7, 8, 40, 245, 708, 1672, 3552, 6310, 10581, 17667, 25348, 32001, 36224, 35008, 29057, 18076, 4576]", + "total_badness": 301373.46714 }, { "ne1d": 6026, - "ne2d": 11324, - "ne3d": 30653, - "quality_histogram": "[4, 9, 9, 12, 25, 46, 102, 282, 695, 1064, 1661, 2565, 3358, 4222, 4521, 4302, 3494, 2597, 1360, 325]", - "total_badness": 45607.765932 + "ne2d": 11334, + "ne3d": 30593, + "quality_histogram": "[4, 5, 3, 10, 18, 39, 99, 258, 685, 1029, 1688, 2632, 3417, 4292, 4551, 4273, 3404, 2499, 1366, 321]", + "total_badness": 45414.634083 }, { "ne1d": 9704, - "ne2d": 24430, - "ne3d": 85325, - "quality_histogram": "[1, 6, 6, 9, 6, 33, 65, 165, 475, 1033, 2434, 4626, 7791, 10930, 13358, 14135, 12954, 10041, 5806, 1451]", - "total_badness": 117194.17951 + "ne2d": 24442, + "ne3d": 85741, + "quality_histogram": "[1, 6, 6, 9, 8, 30, 83, 164, 483, 1017, 2377, 4530, 7838, 10925, 13440, 14326, 13095, 10227, 5737, 1439]", + "total_badness": 117664.34461 } ], "hinge.stl": [ { "ne1d": 456, "ne2d": 1224, - "ne3d": 2021, - "quality_histogram": "[0, 0, 0, 0, 0, 2, 3, 13, 27, 39, 83, 131, 173, 250, 319, 287, 271, 226, 153, 44]", - "total_badness": 2837.3834708 + "ne3d": 2038, + "quality_histogram": "[0, 0, 0, 0, 0, 3, 6, 19, 29, 40, 76, 138, 161, 261, 320, 286, 277, 232, 148, 42]", + "total_badness": 2873.2214111 }, { "ne1d": 298, "ne2d": 596, - "ne3d": 772, - "quality_histogram": "[0, 0, 1, 10, 8, 6, 20, 17, 36, 50, 54, 105, 90, 108, 78, 77, 50, 38, 22, 2]", - "total_badness": 1342.107284 + "ne3d": 767, + "quality_histogram": "[0, 0, 1, 10, 8, 6, 20, 17, 35, 48, 56, 101, 95, 108, 73, 77, 49, 40, 21, 2]", + "total_badness": 1334.5519444 }, { "ne1d": 370, @@ -707,23 +707,23 @@ { "ne1d": 516, "ne2d": 1566, - "ne3d": 2512, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 2, 12, 28, 58, 95, 151, 238, 317, 366, 359, 319, 325, 199, 42]", - "total_badness": 3506.416591 + "ne3d": 2529, + "quality_histogram": "[0, 0, 0, 0, 0, 2, 4, 12, 27, 53, 110, 151, 242, 298, 395, 355, 324, 296, 203, 57]", + "total_badness": 3539.0006937 }, { "ne1d": 722, "ne2d": 2866, - "ne3d": 6694, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 3, 20, 29, 62, 163, 362, 669, 870, 1081, 1156, 1126, 894, 257]", - "total_badness": 8602.7943331 + "ne3d": 6641, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 4, 22, 39, 63, 158, 347, 598, 883, 1056, 1125, 1156, 945, 243]", + "total_badness": 8521.5496278 }, { "ne1d": 1862, "ne2d": 19490, - "ne3d": 137687, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 0, 7, 27, 123, 417, 1112, 2874, 6999, 13738, 21956, 28788, 30887, 23306, 7452]", - "total_badness": 168309.64037 + "ne3d": 138145, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 12, 42, 164, 454, 1165, 3079, 7378, 13727, 21879, 28700, 30921, 23185, 7439]", + "total_badness": 169166.81415 } ], "lshape3d.geo": [ @@ -774,48 +774,48 @@ { "ne1d": 5886, "ne2d": 48052, - "ne3d": 179545, - "quality_histogram": "[0, 0, 0, 0, 5, 29, 71, 190, 576, 1440, 3405, 7596, 12496, 20298, 27806, 29839, 29882, 24882, 17039, 3991]", - "total_badness": 238919.11552 + "ne3d": 179262, + "quality_histogram": "[0, 0, 0, 0, 7, 34, 52, 190, 559, 1394, 3332, 7622, 12534, 20021, 27619, 30066, 29961, 25045, 16810, 4016]", + "total_badness": 238415.32571 }, { "ne1d": 2746, - "ne2d": 13854, - "ne3d": 29281, - "quality_histogram": "[0, 0, 0, 0, 13, 18, 39, 151, 352, 858, 1553, 2317, 3286, 4410, 4149, 3714, 3207, 2591, 1903, 720]", - "total_badness": 42193.71037 + "ne2d": 13866, + "ne3d": 29255, + "quality_histogram": "[0, 0, 0, 0, 12, 22, 36, 163, 382, 903, 1510, 2377, 3268, 4375, 4191, 3761, 3120, 2567, 1846, 722]", + "total_badness": 42256.964101 }, { "ne1d": 4106, - "ne2d": 27992, - "ne3d": 70855, - "quality_histogram": "[0, 0, 0, 2, 32, 78, 216, 416, 816, 1670, 2904, 4412, 7023, 9393, 10226, 10366, 9509, 7379, 4635, 1778]", - "total_badness": 100246.61498 + "ne2d": 27994, + "ne3d": 70558, + "quality_histogram": "[0, 0, 0, 2, 32, 84, 194, 406, 841, 1669, 2783, 4416, 6997, 9372, 10151, 10346, 9564, 7474, 4487, 1740]", + "total_badness": 99764.452235 } ], "manyholes2.geo": [ { "ne1d": 10202, - "ne2d": 55372, - "ne3d": 127827, - "quality_histogram": "[0, 0, 0, 0, 5, 32, 110, 296, 815, 2079, 4599, 7839, 11878, 17623, 18568, 18410, 17079, 14485, 10463, 3546]", - "total_badness": 176563.67789 + "ne2d": 55380, + "ne3d": 127866, + "quality_histogram": "[0, 0, 0, 0, 5, 32, 101, 306, 842, 2081, 4519, 7983, 11838, 17786, 18634, 18254, 16922, 14537, 10444, 3582]", + "total_badness": 176665.61274 } ], "matrix.geo": [ { "ne1d": 174, "ne2d": 1198, - "ne3d": 5230, - "quality_histogram": "[0, 0, 39, 135, 124, 88, 128, 171, 147, 232, 362, 408, 517, 611, 596, 522, 470, 391, 228, 61]", - "total_badness": 9566.0829115 + "ne3d": 5246, + "quality_histogram": "[0, 0, 39, 136, 119, 93, 134, 174, 148, 224, 329, 399, 532, 581, 603, 563, 474, 398, 241, 59]", + "total_badness": 9567.4544817 }, { "ne1d": 106, - "ne2d": 612, - "ne3d": 1934, - "quality_histogram": "[0, 3, 20, 92, 116, 153, 159, 169, 221, 167, 180, 178, 141, 110, 64, 56, 36, 38, 27, 4]", - "total_badness": 4909.4781297 + "ne2d": 610, + "ne3d": 1936, + "quality_histogram": "[0, 1, 11, 66, 104, 143, 140, 142, 192, 179, 201, 199, 161, 135, 74, 57, 51, 46, 29, 5]", + "total_badness": 4606.0709672 }, { "ne1d": 132, @@ -827,9 +827,9 @@ { "ne1d": 174, "ne2d": 1198, - "ne3d": 5125, - "quality_histogram": "[0, 0, 34, 121, 107, 67, 129, 138, 126, 191, 298, 378, 483, 572, 632, 582, 502, 440, 242, 83]", - "total_badness": 9045.5508083 + "ne3d": 5176, + "quality_histogram": "[0, 0, 31, 113, 115, 69, 111, 172, 123, 209, 285, 339, 485, 597, 595, 628, 503, 468, 254, 79]", + "total_badness": 9086.4626755 }, { "ne1d": 248, @@ -894,16 +894,16 @@ { "ne1d": 170, "ne2d": 436, - "ne3d": 1270, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 3, 10, 15, 39, 63, 110, 115, 152, 180, 191, 155, 127, 91, 18]", - "total_badness": 1821.2768739 + "ne3d": 1274, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 3, 10, 12, 31, 68, 104, 114, 149, 189, 199, 148, 132, 98, 17]", + "total_badness": 1812.8134062 }, { "ne1d": 134, "ne2d": 276, "ne3d": 504, "quality_histogram": "[0, 0, 0, 1, 4, 0, 7, 6, 20, 26, 32, 43, 59, 68, 74, 61, 43, 39, 18, 3]", - "total_badness": 791.50892935 + "total_badness": 791.50880644 }, { "ne1d": 194, @@ -915,16 +915,16 @@ { "ne1d": 266, "ne2d": 986, - "ne3d": 4115, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 0, 2, 13, 35, 69, 153, 349, 587, 725, 753, 807, 482, 139]", - "total_badness": 5225.4949656 + "ne3d": 4120, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 0, 3, 9, 30, 60, 164, 343, 555, 738, 768, 818, 486, 145]", + "total_badness": 5216.1612676 }, { "ne1d": 674, - "ne2d": 6854, - "ne3d": 82733, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 8, 25, 91, 233, 657, 1793, 4084, 8021, 12983, 17298, 18878, 14198, 4463]", - "total_badness": 101049.26725 + "ne2d": 6856, + "ne3d": 82761, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 3, 10, 84, 220, 616, 1785, 4044, 8183, 13189, 17574, 18506, 14181, 4365]", + "total_badness": 101090.57562 } ], "period.geo": [ @@ -937,17 +937,17 @@ }, { "ne1d": 160, - "ne2d": 288, - "ne3d": 660, - "quality_histogram": "[0, 0, 0, 0, 4, 15, 18, 27, 46, 63, 64, 69, 69, 61, 55, 62, 52, 35, 14, 6]", - "total_badness": 1159.9625164 + "ne2d": 286, + "ne3d": 642, + "quality_histogram": "[0, 0, 4, 7, 11, 22, 28, 28, 40, 61, 66, 58, 59, 55, 53, 53, 40, 36, 16, 5]", + "total_badness": 1235.2259283 }, { "ne1d": 232, "ne2d": 598, - "ne3d": 1630, - "quality_histogram": "[0, 10, 22, 41, 40, 50, 62, 102, 107, 117, 123, 146, 150, 157, 143, 118, 109, 76, 50, 7]", - "total_badness": 3464.4094355 + "ne3d": 1654, + "quality_histogram": "[5, 18, 43, 57, 47, 59, 62, 79, 117, 120, 126, 148, 134, 159, 134, 113, 117, 66, 39, 11]", + "total_badness": 3928.2006441 }, { "ne1d": 344, @@ -959,9 +959,9 @@ { "ne1d": 480, "ne2d": 2256, - "ne3d": 11694, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 10, 18, 52, 120, 262, 551, 975, 1482, 2010, 2258, 2052, 1485, 417]", - "total_badness": 14947.136242 + "ne3d": 11709, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 2, 9, 15, 51, 115, 243, 547, 966, 1489, 2032, 2273, 2081, 1459, 426]", + "total_badness": 14941.96653 }, { "ne1d": 820, @@ -974,54 +974,54 @@ "plane.stl": [ { "ne1d": 890, - "ne2d": 2602, - "ne3d": 8196, - "quality_histogram": "[4, 14, 33, 28, 57, 45, 41, 60, 132, 229, 346, 495, 686, 967, 1178, 1220, 1147, 862, 516, 136]", - "total_badness": 12564.547698 + "ne2d": 2600, + "ne3d": 8187, + "quality_histogram": "[4, 14, 31, 31, 52, 43, 39, 66, 137, 205, 329, 452, 712, 916, 1161, 1269, 1162, 923, 510, 131]", + "total_badness": 12484.653426 }, { "ne1d": 572, - "ne2d": 1174, - "ne3d": 1694, - "quality_histogram": "[4, 23, 46, 46, 75, 74, 108, 138, 137, 144, 161, 142, 133, 122, 123, 82, 76, 40, 16, 4]", - "total_badness": 4372.11206 + "ne2d": 1180, + "ne3d": 1679, + "quality_histogram": "[3, 23, 38, 46, 50, 78, 94, 132, 138, 164, 167, 143, 142, 134, 114, 83, 64, 39, 20, 7]", + "total_badness": 4208.4459264 }, { "ne1d": 724, - "ne2d": 1714, - "ne3d": 3224, - "quality_histogram": "[5, 18, 33, 40, 56, 43, 77, 73, 134, 152, 208, 268, 361, 393, 403, 364, 270, 202, 98, 26]", - "total_badness": 6080.3507333 + "ne2d": 1718, + "ne3d": 3253, + "quality_histogram": "[4, 18, 38, 40, 50, 32, 60, 65, 115, 141, 204, 272, 353, 384, 426, 392, 308, 197, 125, 29]", + "total_badness": 6003.270597 }, { "ne1d": 956, - "ne2d": 2822, - "ne3d": 8566, - "quality_histogram": "[3, 13, 29, 46, 47, 55, 59, 62, 82, 146, 206, 403, 597, 917, 1190, 1339, 1412, 1134, 653, 173]", - "total_badness": 12683.902882 + "ne2d": 2812, + "ne3d": 8628, + "quality_histogram": "[3, 11, 28, 48, 49, 52, 57, 65, 85, 151, 228, 381, 614, 897, 1208, 1356, 1426, 1137, 649, 183]", + "total_badness": 12760.118913 }, { "ne1d": 1554, - "ne2d": 6386, - "ne3d": 31762, - "quality_histogram": "[4, 7, 9, 5, 23, 52, 59, 71, 104, 225, 359, 757, 1413, 2496, 4045, 5423, 5957, 5777, 3931, 1045]", - "total_badness": 41359.256776 + "ne2d": 6384, + "ne3d": 31436, + "quality_histogram": "[3, 7, 13, 5, 28, 50, 58, 74, 110, 186, 361, 708, 1401, 2494, 3893, 5404, 6143, 5665, 3793, 1040]", + "total_badness": 40918.999105 }, { "ne1d": 2992, - "ne2d": 23320, - "ne3d": 280073, - "quality_histogram": "[5, 11, 12, 11, 6, 26, 37, 77, 204, 513, 1236, 2811, 6880, 15472, 29023, 45343, 58607, 60675, 45323, 13801]", - "total_badness": 345610.85278 + "ne2d": 23312, + "ne3d": 279091, + "quality_histogram": "[4, 10, 11, 11, 5, 29, 38, 96, 197, 478, 1129, 2682, 6574, 15333, 28982, 45307, 58111, 60865, 45633, 13596]", + "total_badness": 344025.56886 } ], "revolution.geo": [ { "ne1d": 320, - "ne2d": 3108, - "ne3d": 8430, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 17, 70, 149, 296, 547, 773, 995, 1092, 1140, 1100, 981, 723, 439, 108]", - "total_badness": 12383.964938 + "ne2d": 3110, + "ne3d": 8443, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 12, 45, 144, 318, 519, 804, 967, 1078, 1145, 1112, 987, 738, 454, 119]", + "total_badness": 12356.528396 }, { "ne1d": 160, @@ -1033,53 +1033,53 @@ { "ne1d": 240, "ne2d": 1830, - "ne3d": 3853, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 6, 26, 104, 193, 325, 413, 511, 521, 464, 404, 361, 294, 180, 51]", - "total_badness": 5840.4488172 + "ne3d": 3870, + "quality_histogram": "[0, 0, 0, 0, 0, 2, 5, 29, 108, 195, 310, 445, 521, 478, 473, 425, 351, 292, 195, 41]", + "total_badness": 5884.7598106 }, { "ne1d": 320, - "ne2d": 3108, - "ne3d": 8209, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 6, 29, 78, 193, 438, 633, 872, 1006, 1175, 1170, 1064, 870, 542, 133]", - "total_badness": 11635.076736 + "ne2d": 3110, + "ne3d": 8269, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 0, 24, 69, 199, 438, 654, 876, 1057, 1127, 1199, 1061, 888, 548, 128]", + "total_badness": 11704.49421 }, { "ne1d": 480, - "ne2d": 6842, - "ne3d": 32953, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 14, 75, 263, 655, 1352, 2599, 4181, 5729, 6408, 6084, 4357, 1234]", - "total_badness": 41689.744856 + "ne2d": 6864, + "ne3d": 33003, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 5, 20, 80, 243, 674, 1446, 2651, 4133, 5647, 6385, 6118, 4423, 1178]", + "total_badness": 41802.827145 }, { "ne1d": 800, - "ne2d": 17922, - "ne3d": 203414, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 10, 47, 152, 582, 1679, 4413, 10542, 20265, 31871, 42901, 45622, 34581, 10749]", - "total_badness": 248722.35265 + "ne2d": 17934, + "ne3d": 201498, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 2, 44, 148, 603, 1656, 4364, 10078, 19992, 31915, 42284, 45543, 34094, 10774]", + "total_badness": 246262.93603 } ], "screw.step": [ { "ne1d": 400, - "ne2d": 1438, - "ne3d": 2474, - "quality_histogram": "[0, 0, 0, 0, 1, 0, 12, 83, 92, 159, 198, 257, 262, 314, 289, 253, 227, 182, 117, 28]", - "total_badness": 3881.0304023 + "ne2d": 1434, + "ne3d": 2427, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 14, 92, 79, 162, 203, 243, 285, 278, 277, 276, 216, 178, 97, 26]", + "total_badness": 3828.4168327 }, { "ne1d": 530, - "ne2d": 2696, - "ne3d": 7980, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 3, 9, 30, 78, 160, 263, 421, 685, 1103, 1288, 1442, 1377, 868, 253]", - "total_badness": 10417.869333 + "ne2d": 2702, + "ne3d": 7966, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 4, 8, 30, 75, 152, 297, 462, 754, 1064, 1384, 1434, 1253, 807, 242]", + "total_badness": 10467.778337 }, { "ne1d": 668, - "ne2d": 5002, - "ne3d": 31490, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 3, 4, 19, 52, 128, 304, 753, 1737, 3178, 5049, 6602, 6978, 5109, 1574]", - "total_badness": 38732.690385 + "ne2d": 5008, + "ne3d": 31630, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 5, 20, 43, 129, 317, 796, 1773, 3387, 5061, 6627, 6931, 5011, 1528]", + "total_badness": 38978.120895 } ], "sculpture.geo": [ @@ -1121,9 +1121,9 @@ { "ne1d": 480, "ne2d": 2394, - "ne3d": 6748, - "quality_histogram": "[0, 0, 0, 0, 1, 4, 5, 15, 24, 39, 66, 124, 269, 503, 757, 1064, 1337, 1301, 926, 313]", - "total_badness": 8573.2040767 + "ne3d": 6791, + "quality_histogram": "[0, 0, 0, 0, 2, 3, 12, 10, 30, 33, 80, 135, 286, 503, 747, 1080, 1312, 1266, 984, 308]", + "total_badness": 8649.5978251 } ], "shaft.geo": [ @@ -1137,16 +1137,16 @@ { "ne1d": 410, "ne2d": 606, - "ne3d": 970, - "quality_histogram": "[0, 0, 0, 0, 1, 2, 1, 5, 20, 24, 50, 60, 97, 114, 166, 163, 130, 89, 30, 18]", - "total_badness": 1397.8970919 + "ne3d": 933, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 4, 1, 17, 25, 47, 58, 90, 116, 155, 146, 124, 96, 36, 17]", + "total_badness": 1336.5110795 }, { "ne1d": 510, "ne2d": 1004, - "ne3d": 2028, - "quality_histogram": "[12, 66, 88, 83, 91, 102, 83, 114, 82, 91, 110, 133, 141, 170, 191, 196, 164, 63, 39, 9]", - "total_badness": 5876.1112217 + "ne3d": 2048, + "quality_histogram": "[11, 74, 88, 69, 81, 94, 99, 125, 99, 122, 96, 133, 133, 165, 190, 186, 163, 67, 45, 8]", + "total_badness": 5937.4200337 }, { "ne1d": 708, @@ -1232,9 +1232,9 @@ { "ne1d": 30, "ne2d": 116, - "ne3d": 339, - "quality_histogram": "[0, 0, 5, 25, 35, 46, 27, 29, 44, 20, 29, 20, 17, 12, 7, 10, 6, 4, 2, 1]", - "total_badness": 988.71756633 + "ne3d": 345, + "quality_histogram": "[0, 0, 5, 24, 43, 41, 26, 26, 38, 32, 20, 18, 24, 14, 8, 9, 5, 7, 4, 1]", + "total_badness": 988.81847916 }, { "ne1d": 46, @@ -1314,15 +1314,15 @@ "ne1d": 390, "ne2d": 522, "ne3d": 1353, - "quality_histogram": "[0, 0, 4, 14, 16, 44, 75, 122, 130, 145, 161, 125, 147, 105, 84, 88, 47, 33, 11, 2]", - "total_badness": 2765.5786315 + "quality_histogram": "[0, 0, 3, 17, 15, 42, 75, 123, 130, 146, 161, 124, 147, 105, 84, 88, 47, 33, 11, 2]", + "total_badness": 2768.022266 }, { "ne1d": 512, "ne2d": 874, "ne3d": 2397, "quality_histogram": "[0, 0, 1, 3, 9, 23, 41, 72, 132, 142, 188, 204, 304, 389, 343, 237, 138, 97, 48, 26]", - "total_badness": 3983.5618538 + "total_badness": 3983.5650135 }, { "ne1d": 690, @@ -1333,17 +1333,17 @@ }, { "ne1d": 1050, - "ne2d": 3810, - "ne3d": 17908, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 4, 28, 39, 62, 196, 545, 1378, 2252, 2434, 2681, 2721, 2643, 2269, 655]", - "total_badness": 23429.874099 + "ne2d": 3812, + "ne3d": 18010, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 4, 29, 42, 57, 198, 540, 1405, 2251, 2392, 2790, 2784, 2612, 2242, 664]", + "total_badness": 23560.24016 }, { "ne1d": 1722, "ne2d": 10042, - "ne3d": 84876, - "quality_histogram": "[0, 0, 0, 0, 3, 4, 55, 1429, 759, 414, 790, 1332, 2665, 5819, 9227, 13451, 16247, 16582, 12204, 3895]", - "total_badness": 109229.6135 + "ne3d": 84690, + "quality_histogram": "[0, 0, 0, 0, 2, 3, 54, 1424, 754, 408, 795, 1316, 2637, 5766, 9155, 13453, 16224, 16583, 12169, 3947]", + "total_badness": 108937.41902 } ], "twobricks.geo": [