From 5e3505b897411fb1b74a4ca591bc5630af29093e Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Fri, 11 Jun 2021 15:58:26 +0200 Subject: [PATCH] faster SwapImprove after delaunay also new test results --- libsrc/meshing/delaunay.cpp | 14 +- libsrc/meshing/improve3.cpp | 49 +++- libsrc/meshing/meshclass.hpp | 7 + tests/pytest/results.json | 488 +++++++++++++++++------------------ 4 files changed, 304 insertions(+), 254 deletions(-) diff --git a/libsrc/meshing/delaunay.cpp b/libsrc/meshing/delaunay.cpp index 0bf229f9..e27e715f 100644 --- a/libsrc/meshing/delaunay.cpp +++ b/libsrc/meshing/delaunay.cpp @@ -1627,20 +1627,20 @@ namespace netgen // tempmesh.Save ("tempmesh.vol"); { + MeshOptimize3d meshopt(mp); + tempmesh.Compress(); + tempmesh.FindOpenElements (); RegionTaskManager rtm(mp.parallel_meshing ? mp.nthreads : 0); - for (int i = 1; i <= 4; i++) + for (auto i : Range(10)) { - tempmesh.FindOpenElements (); - PrintMessage (5, "Num open: ", tempmesh.GetNOpenElements()); - tempmesh.CalcSurfacesOfNode (); - tempmesh.FreeOpenElementsEnvironment (1); + if(i%5==0) + tempmesh.FreeOpenElementsEnvironment (1); - MeshOptimize3d meshopt(mp); - // tempmesh.CalcSurfacesOfNode(); meshopt.SwapImprove(tempmesh, OPT_CONFORM); } + tempmesh.Compress(); } MeshQuality3d (tempmesh); diff --git a/libsrc/meshing/improve3.cpp b/libsrc/meshing/improve3.cpp index 6c7d7511..32f08103 100644 --- a/libsrc/meshing/improve3.cpp +++ b/libsrc/meshing/improve3.cpp @@ -2717,8 +2717,24 @@ void MeshOptimize3d :: SwapImprove (Mesh & mesh, OPTIMIZEGOAL goal, int ne = mesh.GetNE(); mesh.BuildBoundaryEdges(false); + BitArray free_points(mesh.GetNP()+PointIndex::BASE); + free_points.Clear(); - auto elementsonnode = mesh.CreatePoint2ElementTable(); + ParallelForRange(mesh.VolumeElements().Range(), [&] (auto myrange) + { + for (ElementIndex eli : myrange) + { + const auto & el = mesh[eli]; + if(el.flags.fixed || el.IsDeleted()) + continue; + + for (auto pi : el.PNums()) + if(!free_points[pi]) + free_points.SetBitAtomic(pi); + } + }); + + auto elementsonnode = mesh.CreatePoint2ElementTable(free_points); NgArray hasbothpoints; @@ -2736,7 +2752,7 @@ void MeshOptimize3d :: SwapImprove (Mesh & mesh, OPTIMIZEGOAL goal, const Element2d & hel = mesh.OpenElement(i); INDEX_3 face(hel[0], hel[1], hel[2]); face.Sort(); - faces.Set (face, 1); + faces.Set (face, i); } } @@ -2755,6 +2771,8 @@ void MeshOptimize3d :: SwapImprove (Mesh & mesh, OPTIMIZEGOAL goal, tloop.Start(); + auto num_elements_before = mesh.VolumeElements().Range().Next(); + ParallelForRange(Range(edges), [&] (auto myrange) { for(auto i : myrange) @@ -2786,7 +2804,32 @@ void MeshOptimize3d :: SwapImprove (Mesh & mesh, OPTIMIZEGOAL goal, PrintMessage (5, cnt, " swaps performed"); - mesh.Compress (); + if(goal == OPT_CONFORM) + { + // Remove open elements that were closed by new tets + auto & open_els = mesh.OpenElements(); + + for (auto & el : mesh.VolumeElements().Range( num_elements_before, mesh.VolumeElements().Range().Next() )) + { + for (auto i : Range(1,5)) + { + Element2d sel; + el.GetFace(i, sel); + INDEX_3 face(sel[0], sel[1], sel[2]); + face.Sort(); + if(faces.Used(face)) + open_els[faces.Get(face)-1].Delete(); + } + } + + for(int i=open_els.Size()-1; i>=0; i--) + if(open_els[i].IsDeleted()) + open_els.Delete(i); + + mesh.DeleteBoundaryEdges(); + } + else + mesh.Compress (); multithread.task = savetask; } diff --git a/libsrc/meshing/meshclass.hpp b/libsrc/meshing/meshclass.hpp index 83f28c89..b8e282d0 100644 --- a/libsrc/meshing/meshclass.hpp +++ b/libsrc/meshing/meshclass.hpp @@ -486,6 +486,8 @@ namespace netgen { return openelements.Get(i); } auto & OpenElements() const { return openelements; } + + auto & OpenElements() { return openelements; } /// are also quads open elements bool HasOpenQuads () const; @@ -510,6 +512,11 @@ namespace netgen return boundaryedges->Used (i2); } + void DeleteBoundaryEdges () + { + boundaryedges = nullptr; + } + bool IsSegment (PointIndex pi1, PointIndex pi2) const { INDEX_2 i2 (pi1, pi2); diff --git a/tests/pytest/results.json b/tests/pytest/results.json index 161dd1ea..3b0c0dbe 100644 --- a/tests/pytest/results.json +++ b/tests/pytest/results.json @@ -88,7 +88,7 @@ "ne2d": 313, "ne3d": 506, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 13, 25, 47, 64, 85, 94, 100, 51, 17]", - "total_badness": 650.35553279 + "total_badness": 650.35553401 } ], "boxcyl.geo": [ @@ -124,8 +124,8 @@ }, { "angles_tet": [ - 15.88, - 154.64 + 15.882, + 154.85 ], "angles_trig": [ 20.0, @@ -133,9 +133,9 @@ ], "ne1d": 136, "ne2d": 222, - "ne3d": 352, - "quality_histogram": "[0, 0, 0, 0, 0, 5, 5, 7, 4, 7, 14, 26, 24, 54, 64, 61, 47, 18, 14, 2]", - "total_badness": 527.329265 + "ne3d": 357, + "quality_histogram": "[0, 0, 0, 0, 0, 5, 5, 6, 5, 8, 13, 23, 25, 50, 68, 58, 56, 21, 11, 3]", + "total_badness": 531.95100655 }, { "angles_tet": [ @@ -463,7 +463,7 @@ { "angles_tet": [ 5.3682, - 165.74 + 166.05 ], "angles_trig": [ 11.3, @@ -471,24 +471,24 @@ ], "ne1d": 262, "ne2d": 702, - "ne3d": 2099, - "quality_histogram": "[0, 0, 12, 32, 71, 94, 120, 96, 80, 58, 45, 67, 130, 209, 229, 261, 252, 190, 121, 32]", - "total_badness": 3918.4348785 + "ne3d": 2095, + "quality_histogram": "[0, 0, 13, 33, 70, 93, 118, 97, 80, 55, 43, 74, 127, 207, 219, 267, 264, 192, 112, 31]", + "total_badness": 3914.3913191 }, { "angles_tet": [ - 29.146, + 29.972, 134.34 ], "angles_trig": [ 25.65, - 116.54 + 118.92 ], "ne1d": 134, "ne2d": 160, - "ne3d": 244, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 25, 35, 41, 42, 42, 31, 15, 4, 2]", - "total_badness": 346.48816749 + "ne3d": 238, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 22, 39, 44, 35, 39, 30, 14, 5, 1]", + "total_badness": 340.29402313 }, { "angles_tet": [ @@ -501,9 +501,9 @@ ], "ne1d": 190, "ne2d": 282, - "ne3d": 584, - "quality_histogram": "[0, 0, 0, 0, 2, 0, 1, 5, 2, 15, 44, 43, 59, 99, 94, 91, 62, 43, 21, 3]", - "total_badness": 858.49088107 + "ne3d": 589, + "quality_histogram": "[0, 0, 0, 0, 2, 0, 0, 5, 2, 13, 40, 46, 62, 105, 91, 93, 60, 46, 20, 4]", + "total_badness": 862.8968917 }, { "angles_tet": [ @@ -516,9 +516,9 @@ ], "ne1d": 262, "ne2d": 702, - "ne3d": 2003, - "quality_histogram": "[0, 0, 2, 10, 38, 80, 114, 93, 69, 29, 54, 52, 121, 183, 222, 268, 284, 211, 139, 34]", - "total_badness": 3430.228346 + "ne3d": 1978, + "quality_histogram": "[0, 0, 2, 10, 39, 81, 115, 92, 68, 28, 53, 54, 110, 175, 225, 265, 273, 220, 133, 35]", + "total_badness": 3396.7269266 }, { "angles_tet": [ @@ -662,32 +662,32 @@ { "angles_tet": [ 20.409, - 143.04 + 143.05 ], "angles_trig": [ - 17.822, - 126.28 + 17.857, + 129.03 ], "ne1d": 64, "ne2d": 626, - "ne3d": 3285, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 11, 13, 29, 65, 108, 230, 334, 508, 490, 550, 424, 337, 153, 32]", - "total_badness": 4649.9190359 + "ne3d": 3287, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 12, 12, 28, 60, 114, 217, 356, 477, 533, 526, 427, 326, 160, 38]", + "total_badness": 4647.9849621 }, { "angles_tet": [ - 20.792, - 142.3 + 20.408, + 142.77 ], "angles_trig": [ - 16.821, - 121.95 + 17.345, + 126.66 ], "ne1d": 102, "ne2d": 1396, - "ne3d": 8170, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 2, 16, 62, 196, 410, 708, 1083, 1337, 1335, 1256, 994, 584, 186]", - "total_badness": 11044.804929 + "ne3d": 8210, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 16, 60, 195, 429, 755, 1093, 1287, 1392, 1239, 995, 562, 184]", + "total_badness": 11121.187355 }, { "angles_tet": [ @@ -753,33 +753,33 @@ }, { "angles_tet": [ - 17.007, - 143.72 + 17.164, + 141.46 ], "angles_trig": [ - 14.293, - 127.98 + 14.437, + 126.84 ], "ne1d": 44, "ne2d": 246, - "ne3d": 735, - "quality_histogram": "[0, 0, 0, 0, 1, 1, 4, 17, 19, 42, 61, 80, 110, 117, 102, 73, 58, 27, 15, 8]", - "total_badness": 1161.4977052 + "ne3d": 727, + "quality_histogram": "[0, 0, 0, 0, 1, 0, 3, 13, 21, 42, 56, 89, 104, 100, 111, 75, 57, 34, 18, 3]", + "total_badness": 1139.0124704 }, { "angles_tet": [ - 20.529, + 20.627, 148.73 ], "angles_trig": [ - 20.178, - 127.02 + 20.235, + 125.83 ], "ne1d": 68, "ne2d": 396, - "ne3d": 1561, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 4, 14, 18, 57, 119, 168, 225, 245, 243, 239, 150, 65, 14]", - "total_badness": 2194.1567943 + "ne3d": 1564, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 4, 15, 20, 66, 116, 163, 226, 246, 252, 225, 157, 63, 11]", + "total_badness": 2205.4352879 }, { "angles_tet": [ @@ -798,18 +798,18 @@ }, { "angles_tet": [ - 22.863, + 22.862, 138.41 ], "angles_trig": [ - 23.26, - 121.85 + 23.255, + 128.04 ], "ne1d": 146, "ne2d": 1482, - "ne3d": 17978, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 45, 148, 430, 972, 1910, 3013, 3819, 4010, 2787, 839]", - "total_badness": 22078.910603 + "ne3d": 18030, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 50, 157, 444, 990, 1901, 3070, 3790, 4014, 2780, 829]", + "total_badness": 22163.624731 }, { "angles_tet": [ @@ -1184,17 +1184,17 @@ { "angles_tet": [ 18.27, - 146.04 + 146.12 ], "angles_trig": [ - 21.368, - 124.04 + 22.399, + 122.6 ], "ne1d": 156, "ne2d": 988, - "ne3d": 2245, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 7, 14, 43, 75, 120, 183, 280, 343, 372, 323, 268, 180, 37]", - "total_badness": 3082.4279481 + "ne3d": 2231, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 7, 8, 46, 73, 113, 188, 290, 342, 364, 319, 261, 179, 41]", + "total_badness": 3060.1530864 }, { "angles_tet": [ @@ -1228,18 +1228,18 @@ }, { "angles_tet": [ - 20.945, - 138.99 + 19.709, + 143.75 ], "angles_trig": [ - 22.422, + 22.581, 121.69 ], "ne1d": 156, "ne2d": 988, - "ne3d": 2191, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 9, 25, 53, 97, 140, 243, 333, 354, 377, 308, 188, 61]", - "total_badness": 2925.6156836 + "ne3d": 2182, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 4, 7, 33, 47, 87, 142, 263, 318, 355, 373, 308, 180, 65]", + "total_badness": 2916.2059945 }, { "angles_tet": [ @@ -1361,9 +1361,9 @@ ], "ne1d": 50, "ne2d": 38, - "ne3d": 36, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 4, 7, 6, 8, 1, 1, 0, 1]", - "total_badness": 53.038414986 + "ne3d": 35, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 3, 8, 4, 10, 2, 0, 0, 2]", + "total_badness": 50.263302236 }, { "angles_tet": [ @@ -1406,9 +1406,9 @@ ], "ne1d": 50, "ne2d": 38, - "ne3d": 36, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 4, 7, 6, 8, 1, 1, 0, 1]", - "total_badness": 53.038414986 + "ne3d": 35, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 3, 8, 4, 10, 2, 0, 0, 2]", + "total_badness": 50.263302236 }, { "angles_tet": [ @@ -1444,7 +1444,7 @@ "frame.step": [ { "angles_tet": [ - 2.9086, + 2.906, 171.1 ], "angles_trig": [ @@ -1453,14 +1453,14 @@ ], "ne1d": 10108, "ne2d": 29958, - "ne3d": 152461, - "quality_histogram": "[0, 3, 1, 3, 6, 18, 51, 153, 539, 1234, 2814, 5708, 10236, 16240, 21696, 25712, 26711, 22859, 14609, 3868]", - "total_badness": 201603.34124 + "ne3d": 152530, + "quality_histogram": "[0, 3, 1, 3, 6, 14, 58, 146, 470, 1207, 2727, 5671, 10179, 16179, 21787, 25946, 26803, 22852, 14596, 3882]", + "total_badness": 201507.49618 }, { "angles_tet": [ 2.296, - 175.72 + 175.61 ], "angles_trig": [ 3.4731, @@ -1468,13 +1468,13 @@ ], "ne1d": 5988, "ne2d": 10976, - "ne3d": 28875, - "quality_histogram": "[3, 4, 4, 9, 16, 45, 103, 213, 662, 993, 1514, 2528, 3069, 3888, 4348, 4102, 3364, 2352, 1334, 324]", - "total_badness": 42759.274327 + "ne3d": 28946, + "quality_histogram": "[3, 4, 5, 11, 16, 45, 102, 210, 663, 980, 1507, 2531, 3080, 3906, 4321, 4193, 3360, 2375, 1322, 312]", + "total_badness": 42858.494901 }, { "angles_tet": [ - 2.1678, + 2.171, 174.11 ], "angles_trig": [ @@ -1483,9 +1483,9 @@ ], "ne1d": 9622, "ne2d": 23596, - "ne3d": 79955, - "quality_histogram": "[2, 15, 2, 17, 16, 36, 79, 196, 428, 1003, 2107, 4194, 7142, 10182, 12517, 13476, 12277, 9263, 5564, 1439]", - "total_badness": 109848.90296 + "ne3d": 80226, + "quality_histogram": "[2, 15, 4, 15, 17, 34, 88, 193, 428, 989, 2149, 4200, 7164, 10324, 12459, 13488, 12327, 9360, 5530, 1440]", + "total_badness": 110249.40023 } ], "hinge.stl": [ @@ -1500,13 +1500,13 @@ ], "ne1d": 456, "ne2d": 1212, - "ne3d": 1985, - "quality_histogram": "[0, 0, 0, 0, 0, 3, 3, 11, 21, 48, 78, 121, 177, 243, 281, 291, 257, 267, 140, 44]", - "total_badness": 2774.8392965 + "ne3d": 1977, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 3, 10, 15, 45, 78, 122, 186, 262, 287, 291, 242, 249, 142, 44]", + "total_badness": 2760.6220954 }, { "angles_tet": [ - 7.6058, + 7.7862, 161.84 ], "angles_trig": [ @@ -1515,9 +1515,9 @@ ], "ne1d": 298, "ne2d": 610, - "ne3d": 785, - "quality_histogram": "[0, 0, 2, 11, 6, 6, 19, 18, 36, 45, 66, 84, 102, 91, 81, 82, 51, 54, 26, 5]", - "total_badness": 1354.028297 + "ne3d": 778, + "quality_histogram": "[0, 0, 2, 10, 9, 8, 23, 16, 37, 43, 67, 80, 99, 93, 80, 82, 48, 50, 27, 4]", + "total_badness": 1361.2707697 }, { "angles_tet": [ @@ -1530,39 +1530,39 @@ ], "ne1d": 370, "ne2d": 850, - "ne3d": 1123, - "quality_histogram": "[0, 0, 1, 1, 7, 6, 15, 27, 38, 52, 69, 112, 144, 138, 162, 142, 96, 62, 43, 8]", - "total_badness": 1791.0009554 + "ne3d": 1132, + "quality_histogram": "[0, 0, 1, 1, 7, 6, 15, 29, 42, 47, 70, 110, 142, 142, 161, 144, 97, 66, 44, 8]", + "total_badness": 1804.9964367 }, { "angles_tet": [ - 13.442, + 11.964, 156.97 ], "angles_trig": [ - 21.769, + 19.521, 131.54 ], "ne1d": 516, "ne2d": 1570, - "ne3d": 2603, - "quality_histogram": "[0, 0, 0, 0, 0, 4, 3, 5, 24, 49, 99, 162, 236, 315, 392, 410, 338, 298, 213, 55]", - "total_badness": 3617.4946271 + "ne3d": 2589, + "quality_histogram": "[0, 0, 0, 0, 1, 2, 2, 5, 33, 55, 86, 166, 228, 303, 411, 396, 353, 287, 206, 55]", + "total_badness": 3605.1956692 }, { "angles_tet": [ 19.878, - 146.81 + 145.41 ], "angles_trig": [ - 21.108, - 133.01 + 23.111, + 129.16 ], "ne1d": 722, "ne2d": 2856, - "ne3d": 6742, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 2, 22, 37, 55, 164, 381, 655, 846, 1080, 1151, 1213, 867, 268]", - "total_badness": 8659.2800224 + "ne3d": 6746, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 2, 23, 31, 71, 156, 371, 632, 835, 1077, 1180, 1209, 888, 269]", + "total_badness": 8654.616002 }, { "angles_tet": [ @@ -1575,9 +1575,9 @@ ], "ne1d": 1862, "ne2d": 19428, - "ne3d": 136241, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 21, 85, 308, 898, 2566, 6394, 12973, 21289, 28986, 31392, 23775, 7551]", - "total_badness": 165729.88879 + "ne3d": 136270, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 19, 90, 309, 895, 2578, 6407, 12994, 21327, 29004, 31357, 23759, 7528]", + "total_badness": 165792.84022 } ], "lense.in2d": [ @@ -1806,9 +1806,9 @@ ], "ne1d": 4106, "ne2d": 27824, - "ne3d": 70201, - "quality_histogram": "[0, 0, 0, 1, 27, 76, 199, 309, 649, 1436, 2566, 3992, 6615, 9029, 10226, 10693, 9895, 7793, 4854, 1841]", - "total_badness": 98065.083443 + "ne3d": 70230, + "quality_histogram": "[0, 0, 0, 1, 27, 76, 197, 309, 658, 1433, 2557, 3994, 6611, 9073, 10219, 10679, 9920, 7787, 4836, 1853]", + "total_badness": 98105.849616 } ], "manyholes2.geo": [ @@ -1823,9 +1823,9 @@ ], "ne1d": 10202, "ne2d": 54864, - "ne3d": 127476, - "quality_histogram": "[0, 0, 0, 0, 3, 26, 67, 253, 706, 2016, 4264, 7581, 11687, 16856, 18247, 18310, 17519, 15264, 10990, 3687]", - "total_badness": 174923.26093 + "ne3d": 127454, + "quality_histogram": "[0, 0, 0, 0, 3, 26, 67, 250, 706, 2002, 4267, 7577, 11668, 16888, 18234, 18308, 17538, 15257, 10987, 3676]", + "total_badness": 174883.29195 } ], "matrix.geo": [ @@ -1840,9 +1840,9 @@ ], "ne1d": 174, "ne2d": 1190, - "ne3d": 5100, - "quality_histogram": "[0, 0, 15, 128, 183, 43, 56, 114, 127, 183, 297, 369, 495, 599, 625, 611, 547, 412, 235, 61]", - "total_badness": 8961.2205551 + "ne3d": 5113, + "quality_histogram": "[0, 0, 15, 128, 183, 43, 57, 114, 124, 184, 294, 387, 492, 590, 635, 626, 528, 418, 234, 61]", + "total_badness": 8982.334633 }, { "angles_tet": [ @@ -1885,9 +1885,9 @@ ], "ne1d": 174, "ne2d": 1190, - "ne3d": 5054, - "quality_histogram": "[0, 0, 14, 117, 182, 41, 51, 115, 112, 153, 269, 315, 481, 581, 632, 634, 561, 474, 247, 75]", - "total_badness": 8725.1829981 + "ne3d": 5067, + "quality_histogram": "[0, 0, 14, 117, 182, 41, 52, 114, 110, 155, 268, 313, 495, 590, 645, 645, 535, 485, 238, 68]", + "total_badness": 8750.9467413 }, { "angles_tet": [ @@ -1900,9 +1900,9 @@ ], "ne1d": 248, "ne2d": 2320, - "ne3d": 16407, - "quality_histogram": "[0, 0, 0, 0, 0, 4, 20, 55, 118, 191, 287, 630, 956, 1497, 2097, 2550, 2936, 2608, 1913, 545]", - "total_badness": 21630.784432 + "ne3d": 16409, + "quality_histogram": "[0, 0, 0, 0, 0, 4, 20, 55, 119, 192, 288, 630, 958, 1489, 2106, 2552, 2926, 2613, 1913, 544]", + "total_badness": 21635.781365 }, { "angles_tet": [ @@ -2015,18 +2015,18 @@ "part1.stl": [ { "angles_tet": [ - 13.063, - 147.22 + 21.018, + 145.74 ], "angles_trig": [ - 19.94, - 119.28 + 20.888, + 125.82 ], "ne1d": 170, "ne2d": 448, - "ne3d": 1232, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 3, 7, 14, 22, 38, 66, 91, 150, 218, 198, 155, 156, 86, 27]", - "total_badness": 1707.0143419 + "ne3d": 1259, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 4, 8, 13, 21, 38, 69, 103, 136, 224, 198, 179, 138, 101, 27]", + "total_badness": 1739.7208845 }, { "angles_tet": [ @@ -2039,14 +2039,14 @@ ], "ne1d": 134, "ne2d": 286, - "ne3d": 509, - "quality_histogram": "[0, 0, 0, 2, 4, 3, 5, 5, 18, 25, 33, 48, 51, 64, 72, 65, 52, 30, 24, 8]", - "total_badness": 798.54900393 + "ne3d": 514, + "quality_histogram": "[0, 0, 0, 2, 4, 3, 4, 4, 18, 23, 36, 40, 67, 57, 65, 71, 56, 38, 23, 3]", + "total_badness": 801.0166951 }, { "angles_tet": [ - 19.624, - 148.62 + 20.054, + 147.85 ], "angles_trig": [ 19.446, @@ -2054,9 +2054,9 @@ ], "ne1d": 194, "ne2d": 590, - "ne3d": 1631, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 1, 2, 7, 15, 35, 54, 127, 203, 240, 247, 285, 232, 144, 38]", - "total_badness": 2179.4995302 + "ne3d": 1641, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 0, 4, 5, 15, 35, 59, 136, 181, 263, 261, 281, 218, 148, 34]", + "total_badness": 2193.9430492 }, { "angles_tet": [ @@ -2064,19 +2064,19 @@ 150.39 ], "angles_trig": [ - 23.604, - 120.32 + 23.365, + 119.75 ], "ne1d": 266, "ne2d": 980, - "ne3d": 4061, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 2, 5, 30, 78, 131, 284, 527, 619, 852, 827, 552, 152]", - "total_badness": 5098.4284907 + "ne3d": 4126, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 0, 1, 12, 26, 62, 188, 281, 508, 660, 867, 823, 561, 136]", + "total_badness": 5189.9740302 }, { "angles_tet": [ - 20.783, - 146.42 + 20.78, + 146.34 ], "angles_trig": [ 24.61, @@ -2084,9 +2084,9 @@ ], "ne1d": 674, "ne2d": 6832, - "ne3d": 82637, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 4, 17, 97, 397, 1390, 3595, 7583, 12590, 17553, 19516, 15071, 4823]", - "total_badness": 99971.30166 + "ne3d": 82638, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 4, 17, 95, 389, 1384, 3560, 7554, 12625, 17561, 19497, 15113, 4838]", + "total_badness": 99948.684701 } ], "period.geo": [ @@ -2102,23 +2102,23 @@ "ne1d": 344, "ne2d": 1118, "ne3d": 3303, - "quality_histogram": "[0, 0, 0, 0, 1, 3, 19, 26, 62, 80, 167, 270, 341, 414, 475, 449, 428, 344, 170, 54]", - "total_badness": 4786.8429022 + "quality_histogram": "[0, 0, 0, 0, 1, 3, 19, 28, 60, 79, 167, 274, 340, 411, 474, 453, 427, 342, 172, 53]", + "total_badness": 4787.3615998 }, { "angles_tet": [ - 10.254, - 166.55 + 12.301, + 162.28 ], "angles_trig": [ 14.767, - 144.13 + 140.96 ], "ne1d": 160, "ne2d": 280, - "ne3d": 581, - "quality_histogram": "[0, 0, 1, 1, 4, 8, 17, 22, 29, 58, 59, 78, 67, 40, 55, 45, 32, 46, 16, 3]", - "total_badness": 1019.9118615 + "ne3d": 601, + "quality_histogram": "[0, 0, 0, 0, 3, 6, 10, 21, 33, 57, 65, 81, 72, 40, 61, 53, 34, 48, 13, 4]", + "total_badness": 1021.3669479 }, { "angles_tet": [ @@ -2133,12 +2133,12 @@ "ne2d": 566, "ne3d": 1302, "quality_histogram": "[0, 0, 0, 1, 4, 17, 29, 39, 64, 86, 116, 123, 148, 143, 127, 134, 119, 83, 58, 11]", - "total_badness": 2151.3919236 + "total_badness": 2151.3920824 }, { "angles_tet": [ - 14.824, - 146.25 + 15.291, + 144.92 ], "angles_trig": [ 15.314, @@ -2147,8 +2147,8 @@ "ne1d": 344, "ne2d": 1118, "ne3d": 3261, - "quality_histogram": "[0, 0, 0, 0, 1, 2, 14, 23, 47, 67, 152, 225, 319, 424, 475, 458, 420, 389, 183, 62]", - "total_badness": 4647.8518467 + "quality_histogram": "[0, 0, 0, 0, 1, 2, 14, 23, 49, 62, 156, 225, 323, 419, 476, 458, 421, 385, 185, 62]", + "total_badness": 4648.2224319 }, { "angles_tet": [ @@ -2176,9 +2176,9 @@ ], "ne1d": 820, "ne2d": 6206, - "ne3d": 68506, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 6, 49, 164, 556, 1500, 3472, 6624, 10942, 14570, 15222, 11736, 3665]", - "total_badness": 83683.476233 + "ne3d": 68494, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 8, 53, 159, 556, 1496, 3478, 6612, 10914, 14587, 15239, 11731, 3661]", + "total_badness": 83666.140475 } ], "plane.stl": [ @@ -2193,54 +2193,54 @@ ], "ne1d": 886, "ne2d": 2528, - "ne3d": 8259, - "quality_histogram": "[5, 8, 29, 42, 47, 53, 42, 53, 86, 127, 234, 422, 649, 869, 1201, 1333, 1280, 1021, 605, 153]", - "total_badness": 12253.881955 + "ne3d": 8238, + "quality_histogram": "[5, 8, 28, 42, 46, 54, 44, 60, 87, 123, 252, 414, 633, 875, 1235, 1255, 1253, 1065, 604, 155]", + "total_badness": 12230.270782 }, { "angles_tet": [ - 1.1793, + 1.181, 174.03 ], "angles_trig": [ 4.4862, - 152.74 + 148.52 ], "ne1d": 570, "ne2d": 1126, - "ne3d": 1585, - "quality_histogram": "[4, 28, 40, 51, 57, 65, 84, 108, 127, 145, 155, 131, 141, 135, 112, 71, 58, 49, 20, 4]", - "total_badness": 4116.4289328 + "ne3d": 1586, + "quality_histogram": "[4, 27, 41, 49, 61, 73, 91, 112, 114, 142, 161, 129, 134, 142, 114, 72, 61, 42, 16, 1]", + "total_badness": 4109.6286131 }, { "angles_tet": [ 1.1, - 172.17 + 172.16 ], "angles_trig": [ - 3.2068, + 3.728, 163.66 ], "ne1d": 724, "ne2d": 1662, - "ne3d": 3087, - "quality_histogram": "[2, 15, 30, 56, 49, 41, 55, 69, 99, 124, 187, 257, 341, 403, 358, 368, 297, 206, 109, 21]", - "total_badness": 5672.1029809 + "ne3d": 3117, + "quality_histogram": "[2, 12, 30, 54, 56, 40, 51, 70, 98, 128, 217, 263, 320, 383, 400, 362, 301, 205, 108, 17]", + "total_badness": 5701.3001361 }, { "angles_tet": [ 1.2152, - 165.67 + 169.91 ], "angles_trig": [ 1.1526, - 152.31 + 158.98 ], "ne1d": 956, "ne2d": 2742, - "ne3d": 8640, - "quality_histogram": "[3, 10, 38, 48, 47, 55, 52, 55, 83, 138, 177, 324, 506, 776, 1201, 1406, 1497, 1301, 722, 201]", - "total_badness": 12611.933258 + "ne3d": 8642, + "quality_histogram": "[3, 11, 40, 45, 45, 55, 54, 56, 84, 135, 185, 320, 518, 792, 1121, 1438, 1493, 1311, 732, 204]", + "total_badness": 12619.116865 }, { "angles_tet": [ @@ -2253,9 +2253,9 @@ ], "ne1d": 1554, "ne2d": 6276, - "ne3d": 30128, - "quality_histogram": "[2, 8, 13, 8, 26, 47, 54, 67, 97, 161, 296, 601, 1218, 2303, 3660, 5126, 5976, 5561, 3809, 1095]", - "total_badness": 38992.872327 + "ne3d": 30127, + "quality_histogram": "[2, 8, 13, 7, 28, 46, 56, 65, 99, 149, 301, 625, 1226, 2243, 3685, 5125, 5942, 5591, 3816, 1100]", + "total_badness": 38992.330542 }, { "angles_tet": [ @@ -2268,9 +2268,9 @@ ], "ne1d": 2992, "ne2d": 23260, - "ne3d": 281849, - "quality_histogram": "[4, 10, 11, 10, 9, 25, 27, 57, 103, 264, 751, 2013, 5565, 13730, 27855, 44729, 59205, 63981, 48551, 14949]", - "total_badness": 344465.16205 + "ne3d": 282008, + "quality_histogram": "[4, 10, 11, 10, 10, 24, 28, 58, 102, 254, 739, 2055, 5581, 13827, 27948, 44823, 59128, 64141, 48324, 14931]", + "total_badness": 344745.11668 } ], "revolution.geo": [ @@ -2286,8 +2286,8 @@ "ne1d": 320, "ne2d": 3036, "ne3d": 8332, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 6, 14, 93, 181, 405, 666, 868, 1013, 1163, 1292, 1106, 859, 537, 128]", - "total_badness": 11773.570067 + "quality_histogram": "[0, 0, 0, 0, 0, 1, 6, 14, 93, 181, 405, 666, 866, 1015, 1161, 1292, 1107, 860, 537, 128]", + "total_badness": 11773.566772 }, { "angles_tet": [ @@ -2331,8 +2331,8 @@ "ne1d": 320, "ne2d": 3036, "ne3d": 8213, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 3, 49, 124, 291, 550, 780, 982, 1146, 1315, 1218, 939, 652, 163]", - "total_badness": 11293.441654 + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 3, 49, 124, 291, 550, 780, 982, 1145, 1316, 1218, 939, 652, 163]", + "total_badness": 11293.441797 }, { "angles_tet": [ @@ -2368,22 +2368,22 @@ "screw.step": [ { "angles_tet": [ - 17.752, - 142.33 + 14.842, + 147.02 ], "angles_trig": [ - 19.029, - 137.96 + 18.845, + 139.34 ], "ne1d": 400, "ne2d": 1390, - "ne3d": 2335, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 55, 79, 134, 196, 259, 266, 307, 287, 261, 222, 141, 104, 22]", - "total_badness": 3618.6672084 + "ne3d": 2327, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 6, 55, 69, 140, 196, 249, 278, 293, 290, 264, 224, 135, 108, 20]", + "total_badness": 3607.9685551 }, { "angles_tet": [ - 19.834, + 22.362, 146.38 ], "angles_trig": [ @@ -2392,24 +2392,24 @@ ], "ne1d": 528, "ne2d": 2724, - "ne3d": 8021, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 3, 10, 28, 70, 148, 286, 485, 757, 1058, 1331, 1509, 1230, 840, 265]", - "total_badness": 10517.478669 + "ne3d": 8020, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 3, 10, 27, 67, 140, 283, 497, 749, 1061, 1336, 1515, 1219, 846, 266]", + "total_badness": 10509.582064 }, { "angles_tet": [ - 20.14, - 143.25 + 20.122, + 143.27 ], "angles_trig": [ - 23.794, + 23.433, 129.76 ], "ne1d": 666, "ne2d": 4792, - "ne3d": 31261, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 6, 21, 103, 237, 651, 1503, 3041, 4906, 6579, 7204, 5289, 1719]", - "total_badness": 38140.005778 + "ne3d": 31239, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 7, 22, 105, 239, 652, 1497, 3032, 4913, 6571, 7208, 5276, 1715]", + "total_badness": 38119.574769 } ], "sculpture.geo": [ @@ -2507,7 +2507,7 @@ "shaft.geo": [ { "angles_tet": [ - 9.0272, + 9.0274, 162.65 ], "angles_trig": [ @@ -2516,9 +2516,9 @@ ], "ne1d": 708, "ne2d": 1702, - "ne3d": 2702, - "quality_histogram": "[0, 0, 1, 3, 11, 21, 27, 39, 97, 138, 279, 414, 309, 306, 236, 278, 234, 193, 92, 24]", - "total_badness": 4366.515194 + "ne3d": 2692, + "quality_histogram": "[0, 0, 1, 3, 9, 13, 32, 40, 85, 144, 282, 385, 330, 298, 240, 280, 242, 198, 85, 25]", + "total_badness": 4328.7489873 }, { "angles_tet": [ @@ -2531,9 +2531,9 @@ ], "ne1d": 410, "ne2d": 592, - "ne3d": 758, - "quality_histogram": "[0, 0, 0, 0, 1, 4, 2, 7, 27, 35, 40, 57, 81, 83, 95, 90, 90, 82, 51, 13]", - "total_badness": 1126.5212658 + "ne3d": 752, + "quality_histogram": "[0, 0, 0, 0, 1, 4, 2, 7, 26, 32, 38, 57, 77, 84, 97, 88, 85, 86, 47, 21]", + "total_badness": 1111.6630355 }, { "angles_tet": [ @@ -2546,9 +2546,9 @@ ], "ne1d": 510, "ne2d": 996, - "ne3d": 1816, - "quality_histogram": "[0, 0, 0, 0, 6, 19, 34, 69, 83, 108, 123, 159, 163, 197, 236, 222, 211, 84, 77, 25]", - "total_badness": 2937.5679156 + "ne3d": 1811, + "quality_histogram": "[0, 0, 0, 0, 6, 19, 35, 68, 84, 104, 123, 161, 163, 197, 234, 222, 211, 84, 76, 24]", + "total_badness": 2930.4129856 }, { "angles_tet": [ @@ -2561,9 +2561,9 @@ ], "ne1d": 708, "ne2d": 1702, - "ne3d": 2677, - "quality_histogram": "[0, 0, 0, 1, 3, 1, 9, 25, 50, 119, 274, 411, 334, 300, 263, 298, 260, 208, 94, 27]", - "total_badness": 4129.758993 + "ne3d": 2666, + "quality_histogram": "[0, 0, 0, 1, 3, 1, 10, 20, 53, 112, 258, 404, 329, 308, 261, 304, 263, 220, 93, 26]", + "total_badness": 4093.2797611 }, { "angles_tet": [ @@ -2576,9 +2576,9 @@ ], "ne1d": 1138, "ne2d": 4170, - "ne3d": 11024, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 31, 70, 182, 338, 557, 913, 1365, 1807, 2087, 1935, 1366, 370]", - "total_badness": 14215.80019 + "ne3d": 11042, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 31, 70, 184, 343, 553, 926, 1360, 1795, 2086, 1951, 1364, 376]", + "total_badness": 14240.174863 }, { "angles_tet": [ @@ -3160,9 +3160,9 @@ ], "ne1d": 690, "ne2d": 1670, - "ne3d": 5169, - "quality_histogram": "[0, 0, 1, 0, 0, 8, 33, 39, 106, 196, 284, 368, 450, 562, 679, 709, 595, 542, 461, 136]", - "total_badness": 7464.5609796 + "ne3d": 5168, + "quality_histogram": "[0, 0, 1, 0, 0, 8, 30, 37, 106, 198, 284, 368, 447, 559, 691, 708, 596, 539, 460, 136]", + "total_badness": 7457.2380943 }, { "angles_tet": [ @@ -3175,14 +3175,14 @@ ], "ne1d": 390, "ne2d": 522, - "ne3d": 1382, - "quality_histogram": "[0, 0, 3, 8, 13, 39, 84, 122, 123, 153, 169, 133, 139, 114, 88, 88, 55, 37, 12, 2]", - "total_badness": 2771.9730366 + "ne3d": 1381, + "quality_histogram": "[0, 0, 3, 9, 14, 39, 85, 122, 122, 150, 172, 133, 141, 114, 90, 84, 54, 36, 11, 2]", + "total_badness": 2778.7753608 }, { "angles_tet": [ - 8.6612, - 163.89 + 7.8932, + 164.55 ], "angles_trig": [ 14.15, @@ -3191,8 +3191,8 @@ "ne1d": 512, "ne2d": 866, "ne3d": 2373, - "quality_histogram": "[0, 0, 0, 3, 9, 17, 46, 71, 120, 145, 191, 205, 314, 382, 341, 234, 138, 87, 46, 24]", - "total_badness": 3936.100832 + "quality_histogram": "[0, 0, 0, 5, 9, 17, 44, 69, 124, 143, 189, 210, 313, 383, 339, 233, 138, 87, 46, 24]", + "total_badness": 3943.0636847 }, { "angles_tet": [ @@ -3205,9 +3205,9 @@ ], "ne1d": 690, "ne2d": 1670, - "ne3d": 5123, - "quality_histogram": "[0, 0, 1, 0, 0, 3, 22, 38, 106, 190, 271, 350, 435, 551, 670, 694, 624, 558, 468, 142]", - "total_badness": 7336.254691 + "ne3d": 5111, + "quality_histogram": "[0, 0, 1, 0, 0, 3, 21, 38, 107, 192, 269, 348, 432, 542, 664, 707, 611, 564, 471, 141]", + "total_badness": 7317.6330225 }, { "angles_tet": [ @@ -3220,13 +3220,13 @@ ], "ne1d": 1050, "ne2d": 3784, - "ne3d": 17727, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 3, 14, 36, 63, 190, 539, 1406, 2089, 2407, 2557, 2702, 2729, 2318, 674]", - "total_badness": 23111.051534 + "ne3d": 17749, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 3, 14, 35, 69, 180, 557, 1402, 2124, 2373, 2627, 2696, 2716, 2280, 673]", + "total_badness": 23160.553922 }, { "angles_tet": [ - 15.321, + 15.34, 149.42 ], "angles_trig": [ @@ -3235,9 +3235,9 @@ ], "ne1d": 1722, "ne2d": 10022, - "ne3d": 85092, - "quality_histogram": "[0, 0, 0, 0, 0, 3, 50, 1423, 715, 400, 647, 1222, 2399, 5628, 9024, 13434, 16387, 16909, 12811, 4040]", - "total_badness": 108920.32258 + "ne3d": 85138, + "quality_histogram": "[0, 0, 0, 0, 0, 3, 49, 1423, 714, 399, 655, 1222, 2404, 5670, 9020, 13424, 16402, 16956, 12744, 4053]", + "total_badness": 108990.18852 } ], "twobricks.geo": [