Parallel 2d CombineImprove() (also sort by improvement)

This commit is contained in:
Matthias Hochsteger 2019-10-14 16:02:11 +02:00
parent 5eba73f726
commit 0f095281d9
2 changed files with 238 additions and 222 deletions

View File

@ -354,7 +354,7 @@ namespace netgen
bool CombineImproveEdge( Mesh & mesh, double CombineImproveEdge( Mesh & mesh,
const Table<SurfaceElementIndex, PointIndex> & elementsonnode, const Table<SurfaceElementIndex, PointIndex> & elementsonnode,
Array<Vec<3>, PointIndex> & normals, Array<Vec<3>, PointIndex> & normals,
Array<bool, PointIndex> & fixed, Array<bool, PointIndex> & fixed,
@ -365,7 +365,7 @@ namespace netgen
ArrayMem<SurfaceElementIndex, 20> hasonepi, hasbothpi; ArrayMem<SurfaceElementIndex, 20> hasonepi, hasbothpi;
if (!pi1.IsValid() || !pi2.IsValid()) if (!pi1.IsValid() || !pi2.IsValid())
return false; return 0.0;
bool debugflag = 0; bool debugflag = 0;
@ -378,7 +378,7 @@ namespace netgen
/* /*
// save version: // save version:
if (fixed.Get(pi1) || fixed.Get(pi2)) if (fixed.Get(pi1) || fixed.Get(pi2))
return false; return 0.0;
if (pi2 < pi1) swap (pi1, pi2); if (pi2 < pi1) swap (pi1, pi2);
*/ */
@ -387,7 +387,7 @@ namespace netgen
Swap (pi1, pi2); Swap (pi1, pi2);
if (fixed[pi2]) if (fixed[pi2])
return false; return 0.0;
double loch = mesh.GetH (mesh[pi1]); double loch = mesh.GetH (mesh[pi1]);
@ -410,7 +410,7 @@ namespace netgen
} }
if(hasbothpi.Size()==0) if(hasbothpi.Size()==0)
return false; return 0.0;
nv = normals[pi1]; nv = normals[pi1];
@ -486,16 +486,17 @@ namespace netgen
(*testout) << "bad1 = " << bad1 << ", bad2 = " << bad2 << endl; (*testout) << "bad1 = " << bad1 << ", bad2 = " << bad2 << endl;
} }
bool should = (bad2 < bad1 && bad2 < 1e4); bool should = (illegal2<=illegal1 && bad2 < bad1 && bad2 < 1e4);
if (bad2 < 1e4) if(illegal2 < illegal1)
{ {
if (illegal1 > illegal2) should = true; should = true;
if (illegal2 > illegal1) should = false; bad1 += 1e4;
} }
double d_badness = should * (bad2-bad1);
if(check_only) if(check_only)
return should; return d_badness;
if (should) if (should)
{ {
@ -562,7 +563,7 @@ namespace netgen
mesh[sei].Delete(); mesh[sei].Delete();
} }
return should; return d_badness;
} }
void MeshOptimize2d :: CombineImprove (Mesh & mesh) void MeshOptimize2d :: CombineImprove (Mesh & mesh)
@ -658,9 +659,24 @@ namespace netgen
timerstart.Stop(); timerstart.Stop();
for (auto e : edges) // Find edges with improvement
Array<std::tuple<double, int>> candidate_edges(edges.Size());
std::atomic<int> 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); CombineImproveEdge(mesh, elementsonnode, normals, fixed, pi1, pi2, false);
} }

View File

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