From e5b544e02b979eab5d4fbf46815a60fd76ed6ca6 Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Fri, 23 Feb 2024 15:49:11 +0100 Subject: [PATCH 1/8] Don't optimize when goal==OPT_LEGAL and all affected elements are legal --- libsrc/meshing/improve3.cpp | 38 +- tests/pytest/results.json | 984 ++++++++++++++++++------------------ 2 files changed, 506 insertions(+), 516 deletions(-) diff --git a/libsrc/meshing/improve3.cpp b/libsrc/meshing/improve3.cpp index cdfa2295..8bbbdd02 100644 --- a/libsrc/meshing/improve3.cpp +++ b/libsrc/meshing/improve3.cpp @@ -23,6 +23,14 @@ static inline bool NotTooBad(double bad1, double bad2) (bad2 <= 1e8); } +bool CheckAllLegal(Mesh & mesh, FlatArray els) + { + for(auto ei : els) + if(!mesh.LegalTet(mesh[ei])) + return false; + return true; + } + // Calc badness of new element where pi1 and pi2 are replaced by pnew double CalcBadReplacePoints (const Mesh::T_POINTS & points, const MeshingParameters & mp, const Element & elem, double h, PointIndex &pi1, PointIndex &pi2, MeshPoint &pnew) { @@ -418,15 +426,8 @@ double MeshOptimize3d :: SplitImproveEdge (Mesh & mesh, OPTIMIZEGOAL goal, Table if(mp.only3D_domain_nr != mesh[ei].GetIndex()) return 0.0; - if (goal == OPT_LEGAL) - { - bool all_tets_legal = true; - for(auto ei : hasbothpoints) - if( !mesh.LegalTet (mesh[ei]) || elerrs[ei] > 1e3) - all_tets_legal = false; - if(all_tets_legal) - return 0.0; - } + if ((goal == OPT_LEGAL) && CheckAllLegal(mesh, hasbothpoints)) + return 0.0; double bad1 = 0.0; double bad1_max = 0.0; @@ -706,8 +707,6 @@ double MeshOptimize3d :: SwapImproveEdge (Mesh & mesh, OPTIMIZEGOAL goal, } } - bool have_bad_element = false; - for (ElementIndex ei : hasbothpoints) { if (mesh[ei].GetType () != TET) @@ -727,14 +726,9 @@ double MeshOptimize3d :: SwapImproveEdge (Mesh & mesh, OPTIMIZEGOAL goal, if (mesh[ei].IsDeleted()) return 0.0; - - if ((goal == OPT_LEGAL) && - mesh.LegalTet (mesh[ei]) && - CalcBad (mesh.Points(), mesh[ei], 0) >= 1e3) - have_bad_element = true; } - if ((goal == OPT_LEGAL) && !have_bad_element) + if ((goal == OPT_LEGAL) && CheckAllLegal(mesh, hasbothpoints)) return 0.0; int nsuround = hasbothpoints.Size(); @@ -831,7 +825,7 @@ double MeshOptimize3d :: SwapImproveEdge (Mesh & mesh, OPTIMIZEGOAL goal, bad2 += 1e4; - if (goal == OPT_CONFORM && NotTooBad(bad1, bad2)) + if ((goal == OPT_CONFORM) && NotTooBad(bad1, bad2)) { INDEX_3 face(pi3, pi4, pi5); face.Sort(); @@ -1517,9 +1511,7 @@ void MeshOptimize3d :: SwapImproveSurface (Mesh & mesh, OPTIMIZEGOAL goal, if (mesh[ei].IsDeleted()) continue; - if ((goal == OPT_LEGAL) && - mesh.LegalTet (mesh[ei]) && - CalcBad (mesh.Points(), mesh[ei], 0) < 1e3) + if (goal == OPT_LEGAL && mesh.LegalTet (mesh[ei])) continue; const Element & elemi = mesh[ei]; @@ -2510,9 +2502,7 @@ void MeshOptimize3d :: SwapImprove2 (Mesh & mesh, OPTIMIZEGOAL goal) if (mesh[eli1].GetType() != TET) continue; - if ((goal == OPT_LEGAL) && - mesh.LegalTet (mesh[eli1]) && - CalcBad (mesh.Points(), mesh[eli1], 0) < 1e3) + if (goal == OPT_LEGAL && mesh.LegalTet (mesh[eli1])) continue; if(mesh.GetDimension()==3 && mp.only3D_domain_nr && mp.only3D_domain_nr != mesh.VolumeElement(eli1).GetIndex()) diff --git a/tests/pytest/results.json b/tests/pytest/results.json index 3cdc607c..5d5af071 100644 --- a/tests/pytest/results.json +++ b/tests/pytest/results.json @@ -118,13 +118,13 @@ ], "ne1d": 94, "ne2d": 108, - "ne3d": 112, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 4, 5, 15, 14, 6, 14, 6, 10, 7, 10, 3, 15, 2, 0]", - "total_badness": 200.73145455 + "ne3d": 111, + "quality_histogram": "[0, 0, 0, 0, 1, 1, 2, 5, 13, 15, 5, 14, 6, 11, 7, 11, 3, 15, 2, 0]", + "total_badness": 196.5187028 }, { "angles_tet": [ - 14.751, + 14.935, 158.04 ], "angles_trig": [ @@ -134,8 +134,8 @@ "ne1d": 136, "ne2d": 204, "ne3d": 326, - "quality_histogram": "[0, 0, 0, 2, 2, 7, 8, 10, 14, 12, 12, 22, 26, 34, 50, 43, 45, 26, 10, 3]", - "total_badness": 530.84214658 + "quality_histogram": "[0, 0, 0, 2, 3, 8, 7, 9, 11, 14, 9, 18, 28, 30, 45, 57, 41, 29, 11, 4]", + "total_badness": 526.10466705 }, { "angles_tet": [ @@ -165,7 +165,7 @@ "ne2d": 922, "ne3d": 3853, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 15, 42, 118, 219, 455, 671, 787, 798, 574, 170]", - "total_badness": 4779.2253231 + "total_badness": 4779.225323 }, { "angles_tet": [ @@ -173,14 +173,14 @@ 143.56 ], "angles_trig": [ - 26.346, + 26.347, 116.86 ], "ne1d": 456, "ne2d": 2480, "ne3d": 18633, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 17, 93, 295, 810, 1622, 2827, 3994, 4471, 3391, 1108]", - "total_badness": 22509.04709 + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 17, 90, 298, 808, 1625, 2854, 3990, 4460, 3380, 1106]", + "total_badness": 22512.61657 } ], "circle_on_cube.geo": [ @@ -197,7 +197,7 @@ "ne2d": 162, "ne3d": 616, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 4, 13, 15, 36, 61, 59, 78, 112, 98, 85, 43, 12]", - "total_badness": 838.94349075 + "total_badness": 838.94349076 }, { "angles_tet": [ @@ -272,7 +272,7 @@ "ne2d": 922, "ne3d": 12168, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 17, 52, 227, 553, 1180, 1901, 2590, 2911, 2091, 637]", - "total_badness": 14779.532725 + "total_badness": 14779.532724 } ], "cone.geo": [ @@ -293,33 +293,33 @@ }, { "angles_tet": [ - 8.3849, - 167.59 + 9.1858, + 161.19 ], "angles_trig": [ - 10.826, - 151.58 + 13.35, + 149.4 ], "ne1d": 32, "ne2d": 208, - "ne3d": 486, - "quality_histogram": "[0, 0, 1, 4, 5, 16, 34, 28, 32, 34, 49, 35, 37, 42, 39, 42, 26, 28, 26, 8]", - "total_badness": 915.87761832 + "ne3d": 503, + "quality_histogram": "[0, 0, 1, 5, 16, 30, 36, 31, 25, 40, 53, 39, 45, 39, 40, 32, 26, 23, 12, 10]", + "total_badness": 1031.5095298 }, { "angles_tet": [ - 7.5064, - 168.59 + 7.2677, + 164.69 ], "angles_trig": [ - 9.0552, - 153.87 + 15.673, + 144.5 ], "ne1d": 48, "ne2d": 420, - "ne3d": 618, - "quality_histogram": "[0, 0, 4, 11, 7, 17, 9, 23, 39, 60, 71, 85, 85, 55, 56, 27, 42, 19, 8, 0]", - "total_badness": 1183.5702625 + "ne3d": 581, + "quality_histogram": "[0, 0, 1, 8, 9, 9, 13, 16, 45, 51, 79, 93, 70, 52, 51, 37, 24, 11, 12, 0]", + "total_badness": 1098.0426702 }, { "angles_tet": [ @@ -364,7 +364,7 @@ "ne2d": 4738, "ne3d": 27128, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 6, 18, 86, 216, 621, 1451, 2693, 4334, 5762, 5891, 4576, 1473]", - "total_badness": 33206.092666 + "total_badness": 33206.092664 } ], "cube.geo": [ @@ -466,14 +466,14 @@ 170.37 ], "angles_trig": [ - 11.614, + 11.709, 156.34 ], "ne1d": 262, "ne2d": 652, - "ne3d": 2038, - "quality_histogram": "[0, 2, 7, 27, 57, 102, 101, 108, 81, 61, 60, 83, 136, 187, 241, 238, 234, 170, 107, 36]", - "total_badness": 3798.8151666 + "ne3d": 2022, + "quality_histogram": "[0, 1, 6, 19, 45, 89, 88, 114, 88, 56, 61, 87, 122, 189, 240, 269, 218, 185, 112, 33]", + "total_badness": 3647.7759992 }, { "angles_tet": [ @@ -487,8 +487,8 @@ "ne1d": 134, "ne2d": 142, "ne3d": 205, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 7, 17, 26, 37, 30, 28, 34, 15, 2, 4]", - "total_badness": 293.89415407 + "quality_histogram": "[0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 7, 17, 27, 33, 33, 29, 33, 15, 2, 4]", + "total_badness": 293.69952154 }, { "angles_tet": [ @@ -502,8 +502,8 @@ "ne1d": 190, "ne2d": 242, "ne3d": 501, - "quality_histogram": "[0, 0, 0, 0, 2, 0, 0, 5, 4, 14, 39, 54, 41, 82, 64, 82, 54, 37, 23, 0]", - "total_badness": 745.18627676 + "quality_histogram": "[0, 0, 0, 0, 2, 0, 1, 5, 4, 14, 39, 50, 43, 83, 64, 82, 54, 37, 23, 0]", + "total_badness": 745.75340705 }, { "angles_tet": [ @@ -516,39 +516,39 @@ ], "ne1d": 262, "ne2d": 652, - "ne3d": 1894, - "quality_histogram": "[0, 2, 5, 20, 38, 79, 95, 106, 70, 32, 41, 60, 94, 145, 217, 266, 250, 198, 121, 55]", - "total_badness": 3344.7627877 + "ne3d": 1909, + "quality_histogram": "[0, 1, 6, 13, 29, 82, 74, 105, 72, 29, 46, 70, 118, 172, 204, 234, 260, 210, 139, 45]", + "total_badness": 3287.5061824 }, { "angles_tet": [ - 21.707, - 139.77 + 21.825, + 139.42 ], "angles_trig": [ - 23.443, - 118.77 + 25.306, + 118.65 ], "ne1d": 378, "ne2d": 1360, - "ne3d": 7586, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 46, 126, 290, 603, 925, 1250, 1521, 1436, 1062, 317]", - "total_badness": 9530.8442156 + "ne3d": 7644, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 41, 121, 305, 587, 951, 1273, 1531, 1463, 1031, 332]", + "total_badness": 9598.9374464 }, { "angles_tet": [ - 23.791, - 144.45 + 24.652, + 141.0 ], "angles_trig": [ - 26.716, - 123.99 + 26.306, + 124.41 ], "ne1d": 624, "ne2d": 3860, - "ne3d": 38096, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 2, 26, 61, 218, 722, 1809, 3652, 6020, 8063, 8757, 6666, 2099]", - "total_badness": 46320.985555 + "ne3d": 38125, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 22, 82, 236, 702, 1857, 3663, 6067, 8006, 8696, 6671, 2121]", + "total_badness": 46389.480456 } ], "cubeandspheres.geo": [ @@ -640,7 +640,7 @@ "ne2d": 906, "ne3d": 1041, "quality_histogram": "[0, 0, 0, 0, 0, 0, 4, 24, 50, 35, 98, 106, 102, 105, 178, 167, 69, 59, 26, 18]", - "total_badness": 1617.9736122 + "total_badness": 1617.9736123 } ], "cubemcyl.geo": [ @@ -661,18 +661,18 @@ }, { "angles_tet": [ - 15.294, + 14.439, 163.36 ], "angles_trig": [ 13.852, - 128.58 + 127.91 ], "ne1d": 64, "ne2d": 556, - "ne3d": 3011, - "quality_histogram": "[0, 0, 0, 1, 3, 1, 14, 25, 40, 85, 116, 209, 333, 406, 462, 445, 441, 279, 120, 31]", - "total_badness": 4347.4002113 + "ne3d": 3009, + "quality_histogram": "[0, 0, 0, 1, 2, 3, 13, 27, 42, 87, 131, 219, 325, 398, 476, 464, 391, 283, 117, 30]", + "total_badness": 4368.0483744 }, { "angles_tet": [ @@ -717,7 +717,7 @@ "ne2d": 5460, "ne3d": 88820, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 11, 51, 248, 703, 2183, 5117, 9583, 14386, 18836, 19401, 14091, 4209]", - "total_badness": 109216.91549 + "total_badness": 109216.91548 }, { "angles_tet": [ @@ -730,15 +730,15 @@ ], "ne1d": 362, "ne2d": 15082, - "ne3d": 520159, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 9, 85, 499, 2149, 7346, 21113, 47200, 79734, 110083, 123828, 97201, 30912]", - "total_badness": 627466.22084 + "ne3d": 520218, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 9, 85, 496, 2160, 7382, 21158, 47170, 79795, 110068, 123883, 97144, 30868]", + "total_badness": 627579.43599 } ], "cubemsphere.geo": [ { "angles_tet": [ - 22.156, + 22.157, 150.39 ], "angles_trig": [ @@ -747,24 +747,24 @@ ], "ne1d": 90, "ne2d": 570, - "ne3d": 4523, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 9, 41, 75, 170, 331, 494, 702, 821, 761, 645, 383, 89]", - "total_badness": 6000.2419679 + "ne3d": 4524, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 9, 47, 78, 175, 315, 496, 713, 797, 777, 636, 390, 88]", + "total_badness": 6006.2212546 }, { "angles_tet": [ - 10.055, - 158.35 + 10.836, + 151.64 ], "angles_trig": [ - 7.7708, - 147.23 + 10.838, + 138.94 ], "ne1d": 44, "ne2d": 142, - "ne3d": 313, - "quality_histogram": "[0, 0, 1, 2, 9, 23, 31, 23, 34, 37, 31, 32, 22, 30, 18, 10, 4, 3, 1, 2]", - "total_badness": 701.96510542 + "ne3d": 330, + "quality_histogram": "[0, 0, 0, 4, 15, 18, 21, 37, 33, 24, 39, 40, 29, 20, 23, 11, 7, 5, 4, 0]", + "total_badness": 728.64632638 }, { "angles_tet": [ @@ -783,18 +783,18 @@ }, { "angles_tet": [ - 24.16, - 139.58 + 24.166, + 139.51 ], "angles_trig": [ 20.668, - 120.71 + 122.41 ], "ne1d": 90, "ne2d": 570, - "ne3d": 4315, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 36, 65, 214, 404, 593, 811, 842, 765, 470, 102]", - "total_badness": 5519.2080716 + "ne3d": 4304, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 33, 83, 198, 407, 568, 809, 873, 756, 456, 108]", + "total_badness": 5505.2501642 }, { "angles_tet": [ @@ -807,9 +807,9 @@ ], "ne1d": 146, "ne2d": 1366, - "ne3d": 17357, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 45, 131, 383, 1002, 1818, 2868, 3691, 3818, 2778, 814]", - "total_badness": 21308.513568 + "ne3d": 17360, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 45, 129, 384, 1009, 1811, 2891, 3679, 3823, 2772, 808]", + "total_badness": 21317.445825 }, { "angles_tet": [ @@ -824,7 +824,7 @@ "ne2d": 4248, "ne3d": 112960, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 17, 100, 493, 1726, 4923, 10719, 17771, 23842, 26353, 20492, 6522]", - "total_badness": 136671.30101 + "total_badness": 136671.30097 } ], "cylinder.geo": [ @@ -845,33 +845,33 @@ }, { "angles_tet": [ - 24.676, + 22.85, 151.98 ], "angles_trig": [ - 24.811, - 126.7 + 25.237, + 118.13 ], "ne1d": 24, "ne2d": 66, - "ne3d": 70, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 0, 6, 5, 5, 2, 6, 5, 3, 5, 14, 17, 1, 0]", - "total_badness": 105.64076027 + "ne3d": 75, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 6, 8, 3, 4, 3, 9, 4, 5, 10, 19, 2, 0]", + "total_badness": 115.49086337 }, { "angles_tet": [ - 8.4923, - 161.34 + 8.2259, + 167.96 ], "angles_trig": [ - 20.122, - 127.45 + 13.649, + 142.85 ], "ne1d": 36, "ne2d": 152, - "ne3d": 358, - "quality_histogram": "[0, 0, 1, 0, 0, 2, 5, 11, 21, 19, 22, 22, 31, 29, 35, 39, 57, 37, 17, 10]", - "total_badness": 559.67848726 + "ne3d": 388, + "quality_histogram": "[0, 0, 3, 7, 9, 20, 37, 38, 44, 32, 27, 20, 31, 17, 19, 16, 32, 13, 18, 5]", + "total_badness": 848.42235771 }, { "angles_tet": [ @@ -941,14 +941,14 @@ 163.27 ], "angles_trig": [ - 14.484, + 14.531, 148.23 ], "ne1d": 48, "ne2d": 100, - "ne3d": 104, - "quality_histogram": "[0, 0, 0, 2, 1, 4, 13, 15, 9, 10, 14, 5, 5, 2, 6, 10, 8, 0, 0, 0]", - "total_badness": 228.55775864 + "ne3d": 103, + "quality_histogram": "[0, 0, 0, 1, 0, 6, 13, 14, 10, 11, 11, 5, 5, 3, 6, 10, 8, 0, 0, 0]", + "total_badness": 223.46243761 }, { "angles_tet": [ @@ -986,14 +986,14 @@ 139.3 ], "angles_trig": [ - 25.146, + 25.16, 122.8 ], "ne1d": 248, "ne2d": 2810, - "ne3d": 17714, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 14, 29, 100, 280, 741, 1663, 2724, 3885, 4147, 3098, 1032]", - "total_badness": 21466.883949 + "ne3d": 17691, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 15, 30, 101, 284, 760, 1672, 2728, 3882, 4123, 3074, 1021]", + "total_badness": 21452.752962 } ], "ellipsoid.geo": [ @@ -1014,18 +1014,18 @@ }, { "angles_tet": [ - 4.4724, - 169.99 + 3.037, + 173.45 ], "angles_trig": [ - 9.3765, - 160.0 + 6.166, + 164.94 ], "ne1d": 0, "ne2d": 156, - "ne3d": 536, - "quality_histogram": "[0, 13, 28, 52, 60, 66, 49, 44, 44, 37, 27, 35, 22, 18, 13, 9, 7, 6, 6, 0]", - "total_badness": 1855.3951762 + "ne3d": 623, + "quality_histogram": "[0, 39, 79, 59, 79, 61, 50, 34, 44, 28, 29, 27, 21, 17, 11, 17, 11, 11, 6, 0]", + "total_badness": 2681.6033582 }, { "angles_tet": [ @@ -1085,14 +1085,14 @@ "ne2d": 4212, "ne3d": 37347, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 9, 52, 185, 546, 1522, 3262, 5723, 7899, 8903, 6950, 2294]", - "total_badness": 45064.497844 + "total_badness": 45064.497842 } ], "ellipticcone.geo": [ { "angles_tet": [ - 23.263, - 146.25 + 22.591, + 142.57 ], "angles_trig": [ 22.188, @@ -1100,9 +1100,9 @@ ], "ne1d": 174, "ne2d": 1492, - "ne3d": 4957, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 8, 34, 88, 187, 310, 511, 694, 881, 895, 745, 469, 135]", - "total_badness": 6507.6297349 + "ne3d": 4964, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 7, 43, 100, 178, 328, 535, 679, 855, 876, 754, 471, 138]", + "total_badness": 6534.2271419 }, { "angles_tet": [ @@ -1110,64 +1110,64 @@ 150.89 ], "angles_trig": [ - 22.128, + 20.916, 124.89 ], "ne1d": 86, "ne2d": 336, - "ne3d": 469, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 0, 6, 20, 36, 44, 66, 67, 67, 47, 50, 44, 16, 5]", - "total_badness": 695.59119444 + "ne3d": 472, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 1, 8, 19, 41, 41, 67, 56, 75, 50, 46, 46, 17, 3]", + "total_badness": 706.01592428 }, { "angles_tet": [ - 16.545, - 153.27 + 16.162, + 153.66 ], "angles_trig": [ - 16.861, + 17.335, 134.96 ], "ne1d": 130, "ne2d": 794, - "ne3d": 1476, - "quality_histogram": "[0, 0, 0, 0, 1, 0, 19, 28, 50, 58, 53, 90, 145, 165, 181, 203, 199, 155, 101, 28]", - "total_badness": 2177.7084872 + "ne3d": 1465, + "quality_histogram": "[0, 0, 0, 0, 4, 4, 17, 30, 60, 52, 56, 97, 126, 152, 179, 214, 197, 157, 93, 27]", + "total_badness": 2183.9671538 }, { "angles_tet": [ - 24.549, - 137.43 + 24.793, + 139.35 ], "angles_trig": [ 22.188, - 117.33 + 115.41 ], "ne1d": 174, "ne2d": 1492, - "ne3d": 4748, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 32, 96, 200, 389, 599, 887, 945, 888, 521, 181]", - "total_badness": 6023.4146593 + "ne3d": 4793, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 13, 37, 104, 208, 400, 610, 865, 966, 855, 555, 177]", + "total_badness": 6095.233585 }, { "angles_tet": [ - 19.964, - 146.92 + 19.953, + 146.95 ], "angles_trig": [ - 22.162, + 21.682, 126.99 ], "ne1d": 258, "ne2d": 3318, - "ne3d": 13093, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 13, 35, 131, 267, 525, 918, 1525, 2178, 2534, 2516, 1864, 585]", - "total_badness": 16495.184175 + "ne3d": 13043, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 13, 38, 140, 250, 506, 938, 1482, 2227, 2518, 2487, 1874, 568]", + "total_badness": 16430.911481 }, { "angles_tet": [ 20.933, - 146.0 + 145.0 ], "angles_trig": [ 22.947, @@ -1175,9 +1175,9 @@ ], "ne1d": 432, "ne2d": 9184, - "ne3d": 68625, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 8, 20, 51, 215, 569, 1425, 3426, 6873, 10848, 14353, 15147, 11893, 3795]", - "total_badness": 83844.770837 + "ne3d": 68601, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 7, 20, 52, 215, 576, 1430, 3446, 6845, 10798, 14313, 15174, 11928, 3795]", + "total_badness": 83814.221094 } ], "ellipticcyl.geo": [ @@ -1198,18 +1198,18 @@ }, { "angles_tet": [ - 16.477, + 16.495, 144.27 ], "angles_trig": [ - 21.842, - 119.59 + 21.861, + 135.25 ], "ne1d": 76, "ne2d": 200, - "ne3d": 241, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 2, 11, 23, 16, 32, 31, 40, 30, 30, 14, 6, 4, 0]", - "total_badness": 387.30490812 + "ne3d": 242, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 3, 14, 22, 16, 31, 31, 36, 30, 32, 15, 6, 4, 0]", + "total_badness": 390.9724027 }, { "angles_tet": [ @@ -1243,18 +1243,18 @@ }, { "angles_tet": [ - 21.299, - 145.92 + 23.086, + 137.32 ], "angles_trig": [ - 22.971, - 123.45 + 23.028, + 123.49 ], "ne1d": 232, "ne2d": 2102, - "ne3d": 7936, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 2, 7, 36, 102, 243, 506, 936, 1318, 1618, 1632, 1161, 374]", - "total_badness": 9862.7920315 + "ne3d": 7935, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 37, 102, 241, 494, 903, 1378, 1579, 1661, 1168, 364]", + "total_badness": 9855.1844761 }, { "angles_tet": [ @@ -1262,14 +1262,14 @@ 140.11 ], "angles_trig": [ - 24.731, - 114.31 + 24.673, + 117.96 ], "ne1d": 388, "ne2d": 5914, - "ne3d": 54280, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 57, 235, 715, 1972, 4653, 8290, 11507, 13163, 10250, 3423]", - "total_badness": 65288.837508 + "ne3d": 54263, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 56, 235, 720, 1962, 4659, 8302, 11461, 13194, 10237, 3422]", + "total_badness": 65270.192816 } ], "extrusion.geo": [ @@ -1346,7 +1346,7 @@ "ne2d": 544, "ne3d": 623, "quality_histogram": "[0, 0, 0, 0, 0, 0, 4, 11, 18, 30, 47, 70, 73, 69, 81, 73, 75, 52, 17, 3]", - "total_badness": 953.76990304 + "total_badness": 953.76990078 } ], "fichera.geo": [ @@ -1363,7 +1363,7 @@ "ne2d": 36, "ne3d": 32, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 2, 8, 8, 5, 0, 0, 0, 0]", - "total_badness": 48.255148991 + "total_badness": 48.255149002 }, { "angles_tet": [ @@ -1408,7 +1408,7 @@ "ne2d": 36, "ne3d": 32, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 2, 8, 8, 5, 0, 0, 0, 0]", - "total_badness": 48.255148991 + "total_badness": 48.255149002 }, { "angles_tet": [ @@ -1453,9 +1453,9 @@ ], "ne1d": 456, "ne2d": 1066, - "ne3d": 1694, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 6, 9, 23, 41, 74, 105, 136, 200, 243, 292, 219, 204, 110, 31]", - "total_badness": 2383.0874819 + "ne3d": 1687, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 6, 10, 26, 38, 76, 99, 143, 201, 242, 289, 221, 197, 109, 29]", + "total_badness": 2378.1819496 }, { "angles_tet": [ @@ -1470,7 +1470,7 @@ "ne2d": 502, "ne3d": 610, "quality_histogram": "[0, 0, 3, 5, 10, 16, 27, 39, 43, 38, 55, 65, 64, 51, 49, 62, 38, 24, 16, 5]", - "total_badness": 1160.8468965 + "total_badness": 1160.8468966 }, { "angles_tet": [ @@ -1483,9 +1483,9 @@ ], "ne1d": 370, "ne2d": 758, - "ne3d": 982, - "quality_histogram": "[0, 0, 0, 0, 0, 7, 6, 25, 33, 29, 47, 79, 112, 128, 147, 142, 96, 68, 50, 13]", - "total_badness": 1492.3556478 + "ne3d": 976, + "quality_histogram": "[0, 0, 0, 0, 0, 8, 8, 24, 34, 29, 48, 79, 109, 131, 145, 143, 92, 65, 49, 12]", + "total_badness": 1491.398109 }, { "angles_tet": [ @@ -1519,18 +1519,18 @@ }, { "angles_tet": [ - 19.776, - 144.38 + 17.699, + 146.43 ], "angles_trig": [ - 22.289, - 122.14 + 21.484, + 131.41 ], "ne1d": 1862, "ne2d": 18540, - "ne3d": 125397, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 4, 21, 93, 374, 1009, 2638, 6483, 12401, 19519, 26284, 28157, 21536, 6877]", - "total_badness": 153172.81544 + "ne3d": 124449, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 3, 28, 103, 330, 992, 2574, 6268, 12200, 19666, 26199, 27602, 21543, 6939]", + "total_badness": 151912.05274 } ], "lense.in2d": [ @@ -1720,65 +1720,65 @@ "manyholes.geo": [ { "angles_tet": [ - 17.962, - 147.8 + 16.576, + 150.57 ], "angles_trig": [ - 17.912, - 139.33 + 14.257, + 139.37 ], "ne1d": 5886, - "ne2d": 45882, - "ne3d": 174631, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 7, 64, 229, 668, 1859, 5592, 10791, 18495, 26482, 29904, 31051, 26889, 18192, 4407]", - "total_badness": 227663.03541 + "ne2d": 45968, + "ne3d": 174910, + "quality_histogram": "[0, 0, 0, 0, 1, 5, 14, 73, 222, 697, 1998, 5753, 10628, 18811, 26671, 30102, 30756, 26507, 18228, 4444]", + "total_badness": 228331.30467 }, { "angles_tet": [ - 13.226, - 153.55 + 15.357, + 146.85 ], "angles_trig": [ - 14.377, - 130.91 + 13.962, + 131.76 ], "ne1d": 2746, - "ne2d": 10428, - "ne3d": 23614, - "quality_histogram": "[0, 0, 0, 1, 2, 8, 39, 141, 333, 732, 1350, 2122, 2750, 3219, 3149, 3069, 2743, 2192, 1438, 326]", - "total_badness": 34314.343654 + "ne2d": 10430, + "ne3d": 23613, + "quality_histogram": "[0, 0, 0, 0, 3, 4, 38, 128, 333, 616, 1323, 2043, 2663, 3190, 3103, 3127, 2800, 2365, 1512, 365]", + "total_badness": 34030.293071 }, { "angles_tet": [ - 12.344, - 154.1 + 13.279, + 151.78 ], "angles_trig": [ 12.439, - 133.91 + 135.02 ], "ne1d": 4106, - "ne2d": 23238, - "ne3d": 63123, - "quality_histogram": "[0, 0, 0, 0, 31, 60, 174, 310, 596, 1169, 2077, 3620, 5748, 7925, 9100, 9947, 9228, 7455, 4552, 1131]", - "total_badness": 87899.222784 + "ne2d": 23286, + "ne3d": 63030, + "quality_histogram": "[0, 0, 0, 0, 30, 62, 162, 292, 580, 1164, 2182, 3657, 5771, 7813, 9070, 9774, 9319, 7479, 4442, 1233]", + "total_badness": 87769.911043 } ], "manyholes2.geo": [ { "angles_tet": [ 10.467, - 152.55 + 151.97 ], "angles_trig": [ - 16.373, - 136.58 + 14.987, + 136.1 ], "ne1d": 10202, - "ne2d": 41054, - "ne3d": 104058, - "quality_histogram": "[0, 0, 0, 0, 2, 14, 88, 229, 686, 1719, 3645, 6682, 9826, 12717, 14060, 15164, 15249, 13389, 8410, 2178]", - "total_badness": 143298.73232 + "ne2d": 40838, + "ne3d": 104127, + "quality_histogram": "[0, 0, 0, 0, 3, 18, 84, 259, 659, 1672, 3632, 6648, 10044, 12303, 13936, 15104, 15521, 13413, 8607, 2224]", + "total_badness": 143245.60742 } ], "matrix.geo": [ @@ -1793,24 +1793,24 @@ ], "ne1d": 174, "ne2d": 1070, - "ne3d": 4599, - "quality_histogram": "[0, 0, 10, 93, 172, 67, 25, 59, 126, 165, 272, 371, 440, 515, 548, 537, 528, 411, 204, 56]", - "total_badness": 7959.8830096 + "ne3d": 4605, + "quality_histogram": "[0, 0, 10, 93, 172, 67, 23, 59, 127, 167, 274, 384, 425, 551, 565, 537, 507, 394, 207, 43]", + "total_badness": 7983.039378 }, { "angles_tet": [ 6.4945, - 166.83 + 167.02 ], "angles_trig": [ - 8.2716, - 155.6 + 8.2262, + 162.29 ], "ne1d": 106, "ne2d": 314, - "ne3d": 872, - "quality_histogram": "[0, 0, 4, 34, 45, 54, 80, 72, 92, 87, 91, 73, 67, 53, 44, 32, 21, 20, 3, 0]", - "total_badness": 2091.3790714 + "ne3d": 866, + "quality_histogram": "[0, 0, 7, 35, 44, 55, 79, 65, 98, 97, 80, 71, 54, 52, 46, 36, 23, 21, 3, 0]", + "total_badness": 2102.426685 }, { "angles_tet": [ @@ -1823,9 +1823,9 @@ ], "ne1d": 132, "ne2d": 588, - "ne3d": 1799, - "quality_histogram": "[0, 0, 2, 17, 33, 76, 152, 120, 84, 98, 127, 150, 170, 203, 187, 133, 118, 64, 55, 10]", - "total_badness": 3522.631959 + "ne3d": 1793, + "quality_histogram": "[0, 0, 2, 14, 30, 78, 151, 120, 83, 100, 128, 136, 179, 207, 182, 145, 116, 60, 49, 13]", + "total_badness": 3492.8420363 }, { "angles_tet": [ @@ -1838,9 +1838,9 @@ ], "ne1d": 174, "ne2d": 1070, - "ne3d": 4497, - "quality_histogram": "[0, 0, 10, 93, 172, 65, 16, 60, 101, 137, 258, 314, 387, 500, 529, 561, 555, 411, 252, 76]", - "total_badness": 7683.1109366 + "ne3d": 4499, + "quality_histogram": "[0, 0, 10, 93, 172, 65, 17, 59, 102, 135, 260, 297, 395, 533, 555, 535, 544, 426, 248, 53]", + "total_badness": 7695.7986256 }, { "angles_tet": [ @@ -1853,9 +1853,9 @@ ], "ne1d": 248, "ne2d": 2256, - "ne3d": 16133, - "quality_histogram": "[0, 0, 0, 0, 0, 7, 22, 55, 90, 186, 318, 576, 969, 1526, 2057, 2534, 2791, 2579, 1841, 582]", - "total_badness": 21280.729551 + "ne3d": 16136, + "quality_histogram": "[0, 0, 0, 0, 0, 6, 21, 57, 96, 192, 326, 561, 1002, 1470, 2088, 2546, 2735, 2664, 1811, 561]", + "total_badness": 21293.088211 }, { "angles_tet": [ @@ -1870,7 +1870,7 @@ "ne2d": 5914, "ne3d": 101287, "quality_histogram": "[0, 0, 0, 0, 0, 1, 6, 8, 42, 111, 349, 979, 2418, 5321, 10105, 15903, 20923, 22509, 17204, 5408]", - "total_badness": 124144.15591 + "total_badness": 124144.15589 } ], "ortho.geo": [ @@ -1968,48 +1968,48 @@ "part1.stl": [ { "angles_tet": [ - 22.083, - 138.04 + 22.309, + 138.64 ], "angles_trig": [ 24.223, - 119.8 + 119.73 ], "ne1d": 170, "ne2d": 400, - "ne3d": 1023, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 16, 55, 75, 124, 152, 176, 176, 136, 86, 20]", - "total_badness": 1363.6686182 + "ne3d": 1012, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 19, 49, 78, 118, 162, 152, 175, 148, 82, 20]", + "total_badness": 1350.0933715 }, { "angles_tet": [ - 10.722, + 10.724, 160.47 ], "angles_trig": [ - 13.01, + 11.879, 146.61 ], "ne1d": 134, "ne2d": 254, - "ne3d": 457, - "quality_histogram": "[0, 0, 0, 4, 1, 3, 9, 7, 11, 19, 29, 44, 53, 56, 60, 63, 43, 31, 20, 4]", - "total_badness": 726.0384133 + "ne3d": 459, + "quality_histogram": "[0, 0, 0, 4, 2, 6, 11, 12, 12, 23, 30, 43, 52, 48, 53, 58, 48, 29, 25, 3]", + "total_badness": 752.19748843 }, { "angles_tet": [ 20.846, - 134.73 + 149.16 ], "angles_trig": [ - 22.401, - 115.69 + 24.868, + 118.45 ], "ne1d": 194, "ne2d": 554, - "ne3d": 1600, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 17, 63, 93, 166, 229, 275, 308, 246, 159, 37]", - "total_badness": 2088.862264 + "ne3d": 1598, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 5, 6, 18, 57, 108, 152, 233, 286, 302, 240, 158, 32]", + "total_badness": 2093.4873417 }, { "angles_tet": [ @@ -2028,18 +2028,18 @@ }, { "angles_tet": [ - 24.374, - 139.79 + 22.28, + 142.66 ], "angles_trig": [ - 25.767, - 121.5 + 25.824, + 121.12 ], "ne1d": 674, "ne2d": 6330, - "ne3d": 73017, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 15, 118, 382, 1197, 3223, 6772, 11399, 15438, 17121, 13196, 4153]", - "total_badness": 88445.46456 + "ne3d": 73067, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 25, 105, 385, 1301, 3396, 6922, 11536, 15281, 16948, 13099, 4066]", + "total_badness": 88672.954227 } ], "period.geo": [ @@ -2049,14 +2049,14 @@ 145.15 ], "angles_trig": [ - 17.555, + 12.712, 130.0 ], "ne1d": 344, "ne2d": 1040, - "ne3d": 3043, - "quality_histogram": "[0, 0, 0, 0, 0, 6, 18, 25, 51, 71, 144, 251, 302, 421, 423, 407, 390, 306, 179, 49]", - "total_badness": 4402.5390324 + "ne3d": 3065, + "quality_histogram": "[0, 0, 0, 1, 0, 8, 20, 28, 50, 87, 139, 254, 327, 419, 437, 402, 357, 308, 183, 45]", + "total_badness": 4471.8813332 }, { "angles_tet": [ @@ -2064,29 +2064,29 @@ 170.6 ], "angles_trig": [ - 11.507, + 10.412, 140.67 ], "ne1d": 160, "ne2d": 234, - "ne3d": 417, - "quality_histogram": "[0, 0, 2, 4, 4, 12, 17, 17, 26, 32, 44, 44, 48, 39, 27, 37, 33, 20, 8, 3]", - "total_badness": 780.76742775 + "ne3d": 402, + "quality_histogram": "[0, 0, 3, 8, 6, 11, 18, 17, 21, 28, 34, 34, 50, 48, 25, 34, 35, 19, 10, 1]", + "total_badness": 773.15414955 }, { "angles_tet": [ - 9.6632, - 163.12 + 9.3309, + 164.02 ], "angles_trig": [ - 13.809, - 147.97 + 10.589, + 154.73 ], "ne1d": 232, "ne2d": 494, - "ne3d": 1159, - "quality_histogram": "[0, 0, 1, 5, 14, 20, 42, 39, 60, 72, 87, 117, 127, 158, 104, 117, 72, 73, 42, 9]", - "total_badness": 2023.1948662 + "ne3d": 1169, + "quality_histogram": "[0, 0, 1, 4, 14, 27, 44, 59, 75, 81, 83, 130, 130, 132, 121, 107, 75, 57, 25, 4]", + "total_badness": 2106.7564554 }, { "angles_tet": [ @@ -2094,14 +2094,14 @@ 145.15 ], "angles_trig": [ - 17.555, + 15.018, 130.0 ], "ne1d": 344, "ne2d": 1040, - "ne3d": 3001, - "quality_histogram": "[0, 0, 0, 0, 0, 6, 17, 24, 42, 58, 124, 222, 276, 398, 439, 428, 393, 327, 202, 45]", - "total_badness": 4283.328223 + "ne3d": 3014, + "quality_histogram": "[0, 0, 0, 0, 0, 7, 19, 27, 44, 70, 118, 236, 274, 393, 459, 410, 390, 313, 200, 54]", + "total_badness": 4326.3204667 }, { "angles_tet": [ @@ -2131,99 +2131,99 @@ "ne2d": 6174, "ne3d": 68319, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 4, 13, 57, 176, 519, 1477, 3598, 7004, 10873, 14367, 15055, 11494, 3682]", - "total_badness": 83579.590629 + "total_badness": 83579.590643 } ], "plane.stl": [ { "angles_tet": [ - 1.2146, - 170.22 + 1.2197, + 163.59 ], "angles_trig": [ - 1.8906, - 147.74 + 1.0761, + 154.41 ], - "ne1d": 892, - "ne2d": 2226, - "ne3d": 7016, - "quality_histogram": "[3, 12, 31, 39, 43, 61, 53, 62, 97, 110, 236, 389, 555, 829, 983, 1053, 1003, 852, 486, 119]", - "total_badness": 10717.291909 + "ne1d": 968, + "ne2d": 2398, + "ne3d": 7433, + "quality_histogram": "[4, 10, 18, 34, 51, 39, 47, 55, 90, 123, 218, 359, 584, 869, 1047, 1147, 1134, 911, 553, 140]", + "total_badness": 11069.021579 }, { "angles_tet": [ - 1.6463, - 171.19 + 1.1363, + 170.33 ], "angles_trig": [ - 1.7241, - 168.81 + 4.3498, + 157.4 ], - "ne1d": 572, - "ne2d": 748, - "ne3d": 932, - "quality_histogram": "[2, 29, 56, 54, 80, 83, 65, 78, 62, 79, 75, 65, 56, 52, 34, 28, 18, 10, 4, 2]", - "total_badness": 3148.0282985 + "ne1d": 622, + "ne2d": 850, + "ne3d": 1082, + "quality_histogram": "[2, 23, 36, 72, 73, 72, 92, 119, 99, 89, 83, 84, 61, 56, 35, 35, 30, 15, 6, 0]", + "total_badness": 3275.0688714 }, { "angles_tet": [ - 1.1094, - 171.74 + 1.1052, + 172.62 ], "angles_trig": [ - 3.1957, - 172.05 + 1.5068, + 169.1 ], - "ne1d": 724, - "ne2d": 1340, - "ne3d": 2375, - "quality_histogram": "[2, 17, 32, 56, 42, 52, 55, 65, 90, 131, 177, 192, 236, 274, 291, 265, 213, 124, 54, 7]", - "total_badness": 4744.9473584 + "ne1d": 762, + "ne2d": 1382, + "ne3d": 2364, + "quality_histogram": "[2, 16, 28, 51, 35, 52, 69, 75, 106, 128, 170, 196, 251, 280, 247, 250, 221, 119, 56, 12]", + "total_badness": 4688.7471339 }, { "angles_tet": [ - 1.2337, - 165.93 + 1.1362, + 159.69 ], "angles_trig": [ - 1.932, - 150.35 + 1.7959, + 144.7 ], - "ne1d": 956, - "ne2d": 2328, - "ne3d": 7371, - "quality_histogram": "[3, 8, 27, 48, 50, 50, 51, 60, 73, 92, 154, 275, 478, 757, 1051, 1198, 1207, 995, 647, 147]", - "total_badness": 10885.708005 + "ne1d": 1032, + "ne2d": 2540, + "ne3d": 7523, + "quality_histogram": "[3, 9, 18, 36, 53, 53, 56, 55, 68, 104, 192, 266, 484, 763, 1025, 1214, 1274, 1049, 621, 180]", + "total_badness": 10993.437815 }, { "angles_tet": [ - 1.1634, - 165.93 + 1.1428, + 165.98 ], "angles_trig": [ - 4.1049, - 148.28 + 3.2068, + 143.04 ], - "ne1d": 1554, - "ne2d": 5646, - "ne3d": 29373, - "quality_histogram": "[2, 6, 10, 11, 20, 49, 62, 47, 81, 131, 233, 473, 1030, 2096, 3516, 4912, 6007, 5650, 3941, 1096]", - "total_badness": 37671.804771 + "ne1d": 1632, + "ne2d": 5956, + "ne3d": 30758, + "quality_histogram": "[2, 6, 11, 9, 18, 47, 53, 60, 89, 142, 264, 584, 1186, 2340, 3713, 5130, 6048, 5861, 4073, 1122]", + "total_badness": 39585.722892 }, { "angles_tet": [ - 1.2313, - 163.56 + 1.2295, + 164.14 ], "angles_trig": [ - 1.2728, - 155.0 + 0.77944, + 140.91 ], - "ne1d": 2992, - "ne2d": 22730, - "ne3d": 271701, - "quality_histogram": "[4, 8, 13, 10, 12, 24, 23, 53, 88, 211, 645, 1879, 5291, 12837, 26732, 43337, 57290, 61716, 46823, 14705]", - "total_badness": 331770.62487 + "ne1d": 3250, + "ne2d": 24762, + "ne3d": 288468, + "quality_histogram": "[4, 8, 12, 11, 11, 16, 22, 40, 83, 219, 643, 2057, 5622, 13897, 28155, 45451, 61031, 65686, 50321, 15179]", + "total_badness": 352107.63072 } ], "revolution.geo": [ @@ -2244,33 +2244,33 @@ }, { "angles_tet": [ - 15.884, - 148.19 + 17.091, + 148.15 ], "angles_trig": [ - 16.462, - 128.75 + 16.667, + 127.75 ], "ne1d": 160, "ne2d": 658, - "ne3d": 1014, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 10, 39, 45, 86, 105, 135, 148, 143, 94, 77, 55, 39, 27, 10]", - "total_badness": 1687.852505 + "ne3d": 1005, + "quality_histogram": "[0, 0, 0, 0, 0, 2, 9, 42, 40, 83, 112, 155, 132, 130, 95, 80, 55, 35, 29, 6]", + "total_badness": 1680.3470075 }, { "angles_tet": [ - 19.465, - 143.15 + 17.856, + 145.3 ], "angles_trig": [ - 21.41, - 127.26 + 20.576, + 127.13 ], "ne1d": 240, "ne2d": 1584, - "ne3d": 3587, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 6, 53, 114, 213, 346, 472, 525, 493, 421, 409, 290, 188, 56]", - "total_badness": 5235.8043244 + "ne3d": 3489, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 5, 46, 105, 191, 377, 434, 538, 475, 397, 391, 272, 194, 63]", + "total_badness": 5083.2288127 }, { "angles_tet": [ @@ -2315,7 +2315,7 @@ "ne2d": 16950, "ne3d": 198677, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 5, 71, 314, 1001, 3314, 8614, 18130, 30449, 42143, 46676, 36551, 11409]", - "total_badness": 240440.79682 + "total_badness": 240440.79679 } ], "sculpture.geo": [ @@ -2377,7 +2377,7 @@ "ne2d": 358, "ne3d": 399, "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 2, 5, 7, 20, 31, 46, 60, 68, 73, 56, 20, 8, 2]", - "total_badness": 577.70426673 + "total_badness": 577.70426674 }, { "angles_tet": [ @@ -2391,8 +2391,8 @@ "ne1d": 288, "ne2d": 912, "ne3d": 1234, - "quality_histogram": "[0, 0, 0, 0, 2, 2, 10, 23, 35, 68, 98, 124, 108, 127, 127, 127, 154, 133, 80, 16]", - "total_badness": 1875.8247719 + "quality_histogram": "[0, 0, 0, 0, 2, 2, 10, 23, 34, 70, 97, 125, 108, 125, 129, 127, 148, 139, 80, 15]", + "total_badness": 1875.2535427 }, { "angles_tet": [ @@ -2413,93 +2413,93 @@ "shaft.geo": [ { "angles_tet": [ - 8.1571, - 162.65 + 0.77317, + 178.45 ], "angles_trig": [ - 9.7076, - 147.95 + 3.7821, + 161.18 ], "ne1d": 708, "ne2d": 1656, - "ne3d": 2629, - "quality_histogram": "[0, 0, 2, 4, 12, 13, 24, 56, 76, 149, 278, 365, 333, 240, 233, 285, 255, 188, 94, 22]", - "total_badness": 4239.9806978 + "ne3d": 2579, + "quality_histogram": "[6, 6, 11, 16, 40, 43, 44, 57, 51, 108, 245, 345, 306, 221, 245, 277, 262, 186, 89, 21]", + "total_badness": 4786.5417646 }, { "angles_tet": [ - 8.5237, - 165.9 + 10.898, + 152.19 ], "angles_trig": [ 10.094, - 128.25 + 125.8 ], "ne1d": 410, "ne2d": 542, - "ne3d": 688, - "quality_histogram": "[0, 0, 0, 2, 1, 4, 6, 11, 18, 32, 41, 56, 73, 85, 81, 83, 66, 73, 43, 13]", - "total_badness": 1047.4282101 + "ne3d": 691, + "quality_histogram": "[0, 0, 0, 1, 1, 4, 4, 9, 19, 25, 43, 49, 57, 74, 79, 85, 72, 87, 46, 36]", + "total_badness": 1015.4381053 }, { "angles_tet": [ - 9.2737, - 159.17 + 6.6221, + 168.6 ], "angles_trig": [ - 13.813, - 149.46 + 11.676, + 150.45 ], "ne1d": 510, "ne2d": 912, - "ne3d": 1645, - "quality_histogram": "[0, 0, 0, 3, 5, 17, 16, 48, 65, 87, 108, 139, 179, 177, 238, 195, 186, 104, 53, 25]", - "total_badness": 2610.9306806 + "ne3d": 1725, + "quality_histogram": "[0, 0, 14, 48, 53, 86, 98, 115, 101, 89, 119, 130, 142, 144, 172, 153, 145, 62, 38, 16]", + "total_badness": 3594.6132948 }, { "angles_tet": [ - 13.139, - 162.65 + 9.2505, + 164.15 ], "angles_trig": [ - 15.194, - 147.25 + 13.646, + 152.2 ], "ne1d": 708, "ne2d": 1656, - "ne3d": 2585, - "quality_histogram": "[0, 0, 0, 1, 4, 4, 10, 22, 43, 120, 259, 375, 332, 266, 243, 291, 287, 189, 115, 24]", - "total_badness": 3972.0391087 + "ne3d": 2569, + "quality_histogram": "[0, 0, 1, 10, 28, 17, 37, 49, 55, 119, 232, 380, 296, 240, 235, 275, 279, 196, 98, 22]", + "total_badness": 4173.0296091 }, { "angles_tet": [ - 15.284, - 147.53 + 14.508, + 147.48 ], "angles_trig": [ - 20.193, - 122.49 + 19.349, + 121.73 ], - "ne1d": 1138, - "ne2d": 4104, - "ne3d": 10879, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 2, 22, 68, 162, 312, 550, 917, 1327, 1807, 2027, 1905, 1346, 433]", - "total_badness": 13982.205496 + "ne1d": 1134, + "ne2d": 4082, + "ne3d": 11002, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 37, 78, 169, 306, 516, 860, 1360, 1865, 2097, 1946, 1376, 390]", + "total_badness": 14144.927135 }, { "angles_tet": [ - 23.051, - 146.15 + 24.097, + 142.76 ], "angles_trig": [ - 26.463, - 118.44 + 24.93, + 117.45 ], "ne1d": 1792, - "ne2d": 10502, - "ne3d": 63623, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 3, 36, 112, 441, 1261, 3055, 6105, 9988, 13378, 14460, 11103, 3679]", - "total_badness": 77412.92414 + "ne2d": 10504, + "ne3d": 63968, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 7, 43, 124, 465, 1348, 3174, 6274, 10228, 13567, 14446, 10774, 3518]", + "total_badness": 78050.614411 } ], "sphere.geo": [ @@ -2576,7 +2576,7 @@ "ne2d": 256, "ne3d": 363, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 19, 33, 58, 54, 54, 32, 38, 31, 24, 12, 6]", - "total_badness": 551.13017475 + "total_badness": 551.13017473 }, { "angles_tet": [ @@ -2623,7 +2623,7 @@ "ne2d": 34, "ne3d": 79, "quality_histogram": "[0, 0, 2, 2, 10, 6, 15, 12, 9, 9, 5, 5, 1, 1, 0, 0, 2, 0, 0, 0]", - "total_badness": 239.01564453 + "total_badness": 239.01564452 }, { "angles_tet": [ @@ -2667,23 +2667,23 @@ "ne1d": 74, "ne2d": 412, "ne3d": 1683, - "quality_histogram": "[0, 0, 0, 0, 0, 5, 3, 12, 21, 29, 71, 92, 153, 214, 236, 260, 224, 186, 131, 46]", - "total_badness": 2358.043084 + "quality_histogram": "[0, 0, 0, 0, 0, 5, 3, 12, 21, 29, 71, 92, 153, 214, 235, 260, 226, 185, 130, 47]", + "total_badness": 2358.026283 }, { "angles_tet": [ - 24.367, - 140.35 + 21.685, + 143.39 ], "angles_trig": [ 22.231, - 124.31 + 124.74 ], "ne1d": 122, "ne2d": 1066, - "ne3d": 13989, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 7, 23, 83, 256, 466, 907, 1562, 2200, 2835, 2874, 2099, 676]", - "total_badness": 17429.478381 + "ne3d": 13948, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 6, 29, 82, 251, 470, 915, 1514, 2191, 2843, 2808, 2138, 699]", + "total_badness": 17373.704294 } ], "square.in2d": [ @@ -2965,33 +2965,33 @@ "torus.geo": [ { "angles_tet": [ - 19.194, - 148.12 + 18.825, + 147.89 ], "angles_trig": [ 19.92, - 127.08 + 127.09 ], "ne1d": 0, "ne2d": 2526, - "ne3d": 5587, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 9, 75, 208, 373, 547, 678, 782, 752, 738, 585, 470, 285, 83]", - "total_badness": 8168.6605532 + "ne3d": 5569, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 10, 75, 203, 376, 547, 677, 778, 751, 731, 590, 458, 282, 89]", + "total_badness": 8143.6063628 }, { "angles_tet": [ - 2.7079, - 172.97 + 1.3321, + 176.32 ], "angles_trig": [ - 4.6723, - 166.19 + 4.018, + 169.42 ], "ne1d": 0, "ne2d": 648, - "ne3d": 3007, - "quality_histogram": "[8, 144, 319, 360, 402, 367, 276, 245, 184, 169, 139, 98, 83, 58, 46, 41, 31, 22, 10, 5]", - "total_badness": 12976.808797 + "ne3d": 3037, + "quality_histogram": "[84, 420, 497, 454, 356, 280, 246, 171, 125, 100, 81, 61, 38, 34, 25, 27, 13, 13, 6, 6]", + "total_badness": 19327.680113 }, { "angles_tet": [ @@ -3000,43 +3000,43 @@ ], "angles_trig": [ 21.25, - 118.2 + 117.4 ], "ne1d": 0, "ne2d": 1430, - "ne3d": 2733, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 4, 11, 39, 130, 214, 321, 436, 454, 400, 279, 240, 155, 49]", - "total_badness": 3874.9869154 + "ne3d": 2732, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 2, 12, 29, 124, 211, 333, 441, 459, 386, 298, 225, 162, 49]", + "total_badness": 3860.4405834 }, { "angles_tet": [ - 21.147, - 145.15 + 21.154, + 145.18 ], "angles_trig": [ 20.446, - 123.07 + 123.92 ], "ne1d": 0, "ne2d": 2526, - "ne3d": 5473, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 34, 119, 265, 466, 597, 763, 810, 767, 682, 534, 342, 92]", - "total_badness": 7745.4881518 + "ne3d": 5467, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 33, 116, 267, 471, 611, 769, 804, 761, 687, 514, 339, 92]", + "total_badness": 7745.8480756 }, { "angles_tet": [ - 21.754, - 144.45 + 21.012, + 144.82 ], "angles_trig": [ - 23.239, - 124.02 + 23.413, + 126.31 ], "ne1d": 0, "ne2d": 5824, - "ne3d": 25317, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 9, 41, 114, 347, 765, 1598, 2782, 4135, 5379, 5234, 3786, 1126]", - "total_badness": 31434.764854 + "ne3d": 25208, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 12, 34, 117, 326, 759, 1612, 2787, 4115, 5299, 5268, 3766, 1111]", + "total_badness": 31294.508253 }, { "angles_tet": [ @@ -3051,7 +3051,7 @@ "ne2d": 16198, "ne3d": 174686, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 4, 58, 234, 858, 2518, 6918, 15184, 26272, 37074, 41964, 33110, 10491]", - "total_badness": 210586.77039 + "total_badness": 210586.77037 } ], "trafo.geo": [ @@ -3132,7 +3132,7 @@ }, { "angles_tet": [ - 13.821, + 14.552, 149.28 ], "angles_trig": [ @@ -3141,9 +3141,9 @@ ], "ne1d": 1722, "ne2d": 9990, - "ne3d": 84843, - "quality_histogram": "[0, 0, 0, 0, 1, 3, 47, 1412, 705, 384, 688, 1183, 2414, 5544, 8737, 13008, 16461, 17017, 12962, 4277]", - "total_badness": 108418.01981 + "ne3d": 84894, + "quality_histogram": "[0, 0, 0, 0, 0, 3, 48, 1415, 704, 380, 693, 1189, 2418, 5553, 8732, 13010, 16484, 17010, 12978, 4277]", + "total_badness": 108486.89306 } ], "twobricks.geo": [ @@ -3153,14 +3153,14 @@ 137.72 ], "angles_trig": [ - 24.205, - 111.42 + 26.574, + 96.902 ], "ne1d": 72, "ne2d": 50, - "ne3d": 46, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 5, 4, 14, 7, 6, 3, 1, 0, 0]", - "total_badness": 70.226764001 + "ne3d": 41, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 6, 2, 15, 5, 5, 2, 1, 0, 0]", + "total_badness": 62.875269627 }, { "angles_tet": [ @@ -3183,14 +3183,14 @@ 125.92 ], "angles_trig": [ - 29.602, + 29.606, 120.18 ], "ne1d": 56, "ne2d": 34, "ne3d": 22, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 4, 0, 0, 8, 0, 0, 0, 0]", - "total_badness": 35.041320435 + "total_badness": 35.041320265 }, { "angles_tet": [ @@ -3198,14 +3198,14 @@ 137.72 ], "angles_trig": [ - 24.205, - 111.42 + 26.574, + 96.902 ], "ne1d": 72, "ne2d": 50, - "ne3d": 46, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 5, 4, 14, 7, 6, 3, 1, 0, 0]", - "total_badness": 70.226762635 + "ne3d": 41, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 6, 2, 16, 4, 5, 2, 1, 0, 0]", + "total_badness": 62.876132237 }, { "angles_tet": [ @@ -3220,7 +3220,7 @@ "ne2d": 132, "ne3d": 174, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 10, 12, 17, 36, 23, 30, 18, 15, 8]", - "total_badness": 232.20307583 + "total_badness": 232.20307581 }, { "angles_tet": [ @@ -3245,14 +3245,14 @@ 137.72 ], "angles_trig": [ - 24.205, - 111.42 + 26.574, + 96.902 ], "ne1d": 72, "ne2d": 50, - "ne3d": 46, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 5, 4, 14, 7, 6, 3, 1, 0, 0]", - "total_badness": 70.226764001 + "ne3d": 41, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 6, 2, 15, 5, 5, 2, 1, 0, 0]", + "total_badness": 62.875269627 }, { "angles_tet": [ @@ -3275,14 +3275,14 @@ 125.92 ], "angles_trig": [ - 29.602, + 29.606, 120.18 ], "ne1d": 56, "ne2d": 34, "ne3d": 22, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 4, 0, 0, 8, 0, 0, 0, 0]", - "total_badness": 35.041320435 + "total_badness": 35.041320265 }, { "angles_tet": [ @@ -3290,14 +3290,14 @@ 137.72 ], "angles_trig": [ - 24.205, - 111.42 + 26.574, + 96.902 ], "ne1d": 72, "ne2d": 50, - "ne3d": 46, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 5, 4, 14, 7, 6, 3, 1, 0, 0]", - "total_badness": 70.226762635 + "ne3d": 41, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 6, 2, 16, 4, 5, 2, 1, 0, 0]", + "total_badness": 62.876132237 }, { "angles_tet": [ @@ -3312,7 +3312,7 @@ "ne2d": 132, "ne3d": 174, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 10, 12, 17, 36, 23, 30, 18, 15, 8]", - "total_badness": 232.20307583 + "total_badness": 232.20307581 }, { "angles_tet": [ @@ -3333,78 +3333,78 @@ "twocyl.geo": [ { "angles_tet": [ - 17.425, - 151.3 + 15.662, + 149.9 ], "angles_trig": [ - 21.178, - 117.72 + 18.029, + 127.96 ], "ne1d": 144, "ne2d": 408, - "ne3d": 577, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 6, 9, 16, 24, 56, 67, 84, 115, 83, 63, 36, 11, 6]", - "total_badness": 849.57493713 + "ne3d": 557, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 13, 27, 12, 14, 49, 67, 56, 84, 80, 61, 50, 32, 10, 1]", + "total_badness": 894.39916443 }, { "angles_tet": [ - 19.604, - 153.38 + 22.041, + 152.6 ], "angles_trig": [ 25.599, - 115.69 + 118.3 ], "ne1d": 68, "ne2d": 98, - "ne3d": 138, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 0, 3, 2, 6, 8, 8, 17, 22, 22, 25, 15, 7, 2]", - "total_badness": 193.53502944 + "ne3d": 145, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 1, 5, 7, 11, 14, 18, 12, 18, 20, 20, 13, 4]", + "total_badness": 205.10207723 }, { "angles_tet": [ - 12.305, - 161.08 + 9.9935, + 164.05 ], "angles_trig": [ - 11.495, - 149.57 + 11.843, + 144.63 ], "ne1d": 102, "ne2d": 234, - "ne3d": 412, - "quality_histogram": "[0, 0, 0, 1, 7, 7, 15, 28, 44, 24, 19, 33, 36, 36, 36, 28, 56, 26, 12, 4]", - "total_badness": 744.59871397 + "ne3d": 442, + "quality_histogram": "[0, 0, 0, 5, 15, 26, 36, 41, 57, 34, 30, 20, 27, 29, 18, 25, 46, 16, 14, 3]", + "total_badness": 943.37633045 }, { "angles_tet": [ - 17.51, - 141.43 + 19.827, + 141.68 ], "angles_trig": [ - 21.505, - 117.52 + 18.029, + 127.96 ], "ne1d": 144, "ne2d": 408, - "ne3d": 575, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 4, 7, 10, 20, 57, 65, 76, 116, 90, 74, 40, 14, 2]", - "total_badness": 830.26839459 + "ne3d": 554, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 11, 19, 10, 13, 41, 59, 66, 92, 80, 68, 48, 31, 13, 2]", + "total_badness": 867.08126513 }, { "angles_tet": [ - 20.993, - 137.7 + 18.887, + 145.59 ], "angles_trig": [ - 22.158, - 117.49 + 21.456, + 129.54 ], "ne1d": 214, "ne2d": 904, - "ne3d": 1847, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 28, 77, 127, 199, 270, 350, 335, 247, 164, 41]", - "total_badness": 2434.6179175 + "ne3d": 1859, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 3, 9, 37, 69, 134, 178, 308, 327, 323, 246, 177, 47]", + "total_badness": 2454.4572433 }, { "angles_tet": [ From 23c6b96b47e20c444a6bb78165dc7e425822b466 Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Fri, 23 Feb 2024 17:39:43 +0100 Subject: [PATCH 2/8] Move RemoveIllegalElements to MeshVolume() --- libsrc/meshing/basegeom.cpp | 3 --- libsrc/meshing/meshfunc.cpp | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/libsrc/meshing/basegeom.cpp b/libsrc/meshing/basegeom.cpp index 0e6900e2..d1dfb8e3 100644 --- a/libsrc/meshing/basegeom.cpp +++ b/libsrc/meshing/basegeom.cpp @@ -1271,9 +1271,6 @@ namespace netgen if (res != MESHING3_OK) return 1; if (multithread.terminate) return 0; - RemoveIllegalElements (*mesh); - if (multithread.terminate) return 0; - MeshQuality3d (*mesh); } diff --git a/libsrc/meshing/meshfunc.cpp b/libsrc/meshing/meshfunc.cpp index 4ddc2844..451a44cb 100644 --- a/libsrc/meshing/meshfunc.cpp +++ b/libsrc/meshing/meshfunc.cpp @@ -515,6 +515,7 @@ namespace netgen throw NgException ("Stop meshing since surface mesh not consistent"); } } + RemoveIllegalElements (mesh); } void MergeMeshes( Mesh & mesh, Array & md ) From d3ea87bd1e2759d4d6c88a2f659747dcdb439162 Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Fri, 23 Feb 2024 17:41:15 +0100 Subject: [PATCH 3/8] Store mesh and goal im MeshOptimize3d --- libsrc/meshing/delaunay.cpp | 5 ++-- libsrc/meshing/improve3.cpp | 48 +++++++++++++++++-------------------- libsrc/meshing/improve3.hpp | 34 +++++++++++++++----------- libsrc/meshing/meshfunc.cpp | 36 +++++++++++++++------------- libsrc/meshing/validate.cpp | 12 +++++----- 5 files changed, 71 insertions(+), 64 deletions(-) diff --git a/libsrc/meshing/delaunay.cpp b/libsrc/meshing/delaunay.cpp index 2ebc031e..d1cb3c0f 100644 --- a/libsrc/meshing/delaunay.cpp +++ b/libsrc/meshing/delaunay.cpp @@ -1625,7 +1625,8 @@ namespace netgen // tempmesh.Save ("tempmesh.vol"); { - MeshOptimize3d meshopt(mp); + MeshOptimize3d meshopt(tempmesh, mp); + meshopt.SetGoal(OPT_CONFORM); tempmesh.Compress(); tempmesh.FindOpenElements (); #ifndef EMSCRIPTEN @@ -1638,7 +1639,7 @@ namespace netgen if(i%5==0) tempmesh.FreeOpenElementsEnvironment (1); - meshopt.SwapImprove(tempmesh, OPT_CONFORM); + meshopt.SwapImprove(); } tempmesh.Compress(); } diff --git a/libsrc/meshing/improve3.cpp b/libsrc/meshing/improve3.cpp index 8bbbdd02..b1e729f9 100644 --- a/libsrc/meshing/improve3.cpp +++ b/libsrc/meshing/improve3.cpp @@ -97,7 +97,7 @@ static ArrayMem SplitElement (Element old, PointIndex pi0, PointInde } return new_elements; -}; +} static double SplitElementBadness (const Mesh::T_POINTS & points, const MeshingParameters & mp, Element old, PointIndex pi0, PointIndex pi1, MeshPoint & pnew) { @@ -151,8 +151,7 @@ static double SplitElementBadness (const Mesh::T_POINTS & points, const MeshingP Connect inner point to boundary point, if one point is inner point. */ -double MeshOptimize3d :: CombineImproveEdge (Mesh & mesh, - const MeshingParameters & mp, +double MeshOptimize3d :: CombineImproveEdge ( Table & elements_of_point, Array & elerrs, PointIndex pi0, PointIndex pi1, @@ -281,8 +280,7 @@ double MeshOptimize3d :: CombineImproveEdge (Mesh & mesh, return d_badness; } -void MeshOptimize3d :: CombineImprove (Mesh & mesh, - OPTIMIZEGOAL goal) +void MeshOptimize3d :: CombineImprove () { static Timer t("MeshOptimize3d::CombineImprove"); RegionTimer reg(t); static Timer topt("Optimize"); @@ -346,7 +344,7 @@ void MeshOptimize3d :: CombineImprove (Mesh & mesh, for(auto i : myrange) { auto [p0,p1] = edges[i]; - double d_badness = CombineImproveEdge (mesh, mp, elementsonnode, elerrs, p0, p1, is_point_removed, true); + double d_badness = CombineImproveEdge (elementsonnode, elerrs, p0, p1, is_point_removed, true); if(d_badness<0.0) { int index = improvement_counter++; @@ -368,7 +366,7 @@ void MeshOptimize3d :: CombineImprove (Mesh & mesh, for(auto [d_badness, ei] : edges_with_improvement) { auto [p0,p1] = edges[ei]; - if (CombineImproveEdge (mesh, mp, elementsonnode, elerrs, p0, p1, is_point_removed, false) < 0.0) + if (CombineImproveEdge (elementsonnode, elerrs, p0, p1, is_point_removed, false) < 0.0) cnt++; } topt.Stop(); @@ -397,7 +395,7 @@ void MeshOptimize3d :: CombineImprove (Mesh & mesh, -double MeshOptimize3d :: SplitImproveEdge (Mesh & mesh, OPTIMIZEGOAL goal, Table & elementsonnode, Array &elerrs, NgArray &locfaces, double badmax, PointIndex pi1, PointIndex pi2, PointIndex ptmp, bool check_only) +double MeshOptimize3d :: SplitImproveEdge (Table & elementsonnode, Array &elerrs, NgArray &locfaces, double badmax, PointIndex pi1, PointIndex pi2, PointIndex ptmp, bool check_only) { double d_badness = 0.0; // int cnt = 0; @@ -556,8 +554,7 @@ double MeshOptimize3d :: SplitImproveEdge (Mesh & mesh, OPTIMIZEGOAL goal, Table return d_badness; } -void MeshOptimize3d :: SplitImprove (Mesh & mesh, - OPTIMIZEGOAL goal) +void MeshOptimize3d :: SplitImprove () { static Timer t("MeshOptimize3d::SplitImprove"); RegionTimer reg(t); static Timer topt("Optimize"); @@ -611,7 +608,7 @@ void MeshOptimize3d :: SplitImprove (Mesh & mesh, for(auto i : myrange) { auto [p0,p1] = edges[i]; - double d_badness = SplitImproveEdge (mesh, goal, elementsonnode, elerrs, locfaces, badmax, p0, p1, ptmp, true); + double d_badness = SplitImproveEdge (elementsonnode, elerrs, locfaces, badmax, p0, p1, ptmp, true); if(d_badness<0.0) { int index = improvement_counter++; @@ -634,7 +631,7 @@ void MeshOptimize3d :: SplitImprove (Mesh & mesh, for(auto [d_badness, ei] : edges_with_improvement) { auto [p0,p1] = edges[ei]; - if (SplitImproveEdge (mesh, goal, elementsonnode, elerrs, locfaces, badmax, p0, p1, ptmp, false) < 0.0) + if (SplitImproveEdge (elementsonnode, elerrs, locfaces, badmax, p0, p1, ptmp, false) < 0.0) cnt++; } topt.Stop(); @@ -659,7 +656,7 @@ void MeshOptimize3d :: SplitImprove (Mesh & mesh, } -double MeshOptimize3d :: SwapImproveEdge (Mesh & mesh, OPTIMIZEGOAL goal, +double MeshOptimize3d :: SwapImproveEdge ( const NgBitArray * working_elements, Table & elementsonnode, INDEX_3_HASHTABLE & faces, @@ -1283,8 +1280,7 @@ double MeshOptimize3d :: SwapImproveEdge (Mesh & mesh, OPTIMIZEGOAL goal, return d_badness; } -void MeshOptimize3d :: SwapImprove (Mesh & mesh, OPTIMIZEGOAL goal, - const NgBitArray * working_elements) +void MeshOptimize3d :: SwapImprove (const NgBitArray * working_elements) { static Timer t("MeshOptimize3d::SwapImprove"); RegionTimer reg(t); static Timer tloop("MeshOptimize3d::SwapImprove loop"); @@ -1362,7 +1358,7 @@ void MeshOptimize3d :: SwapImprove (Mesh & mesh, OPTIMIZEGOAL goal, break; auto [pi0, pi1] = edges[i]; - double d_badness = SwapImproveEdge (mesh, goal, working_elements, elementsonnode, faces, pi0, pi1, true); + double d_badness = SwapImproveEdge (working_elements, elementsonnode, faces, pi0, pi1, true); if(d_badness<0.0) { int index = improvement_counter++; @@ -1377,7 +1373,7 @@ void MeshOptimize3d :: SwapImprove (Mesh & mesh, OPTIMIZEGOAL goal, for(auto [d_badness, ei] : edges_with_improvement) { auto [pi0,pi1] = edges[ei]; - if(SwapImproveEdge (mesh, goal, working_elements, elementsonnode, faces, pi0, pi1, false) < 0.0) + if(SwapImproveEdge (working_elements, elementsonnode, faces, pi0, pi1, false) < 0.0) cnt++; } @@ -1419,7 +1415,7 @@ void MeshOptimize3d :: SwapImprove (Mesh & mesh, OPTIMIZEGOAL goal, -void MeshOptimize3d :: SwapImproveSurface (Mesh & mesh, OPTIMIZEGOAL goal, +void MeshOptimize3d :: SwapImproveSurface ( const NgBitArray * working_elements, const NgArray< NgArray* > * idmaps) { @@ -2279,7 +2275,7 @@ void MeshOptimize3d :: SwapImproveSurface (Mesh & mesh, OPTIMIZEGOAL goal, 2 -> 3 conversion */ -double MeshOptimize3d :: SwapImprove2 ( Mesh & mesh, OPTIMIZEGOAL goal, ElementIndex eli1, int face, +double MeshOptimize3d :: SwapImprove2 ( ElementIndex eli1, int face, Table & elementsonnode, TABLE & belementsonnode, bool check_only ) { @@ -2449,7 +2445,7 @@ double MeshOptimize3d :: SwapImprove2 ( Mesh & mesh, OPTIMIZEGOAL goal, ElementI 2 -> 3 conversion */ -void MeshOptimize3d :: SwapImprove2 (Mesh & mesh, OPTIMIZEGOAL goal) +void MeshOptimize3d :: SwapImprove2 () { static Timer t("MeshOptimize3d::SwapImprove2"); RegionTimer reg(t); @@ -2510,7 +2506,7 @@ void MeshOptimize3d :: SwapImprove2 (Mesh & mesh, OPTIMIZEGOAL goal) for (int j = 0; j < 4; j++) { - double d_badness = SwapImprove2( mesh, goal, eli1, j, elementsonnode, belementsonnode, true); + double d_badness = SwapImprove2( eli1, j, elementsonnode, belementsonnode, true); if(d_badness<0.0) my_faces_with_improvement.Append( std::make_tuple(d_badness, eli1, j) ); } @@ -2526,7 +2522,7 @@ void MeshOptimize3d :: SwapImprove2 (Mesh & mesh, OPTIMIZEGOAL goal) { if(mesh[eli].IsDeleted()) continue; - if(SwapImprove2( mesh, goal, eli, j, elementsonnode, belementsonnode, false) < 0.0) + if(SwapImprove2( eli, j, elementsonnode, belementsonnode, false) < 0.0) cnt++; } @@ -2538,7 +2534,7 @@ void MeshOptimize3d :: SwapImprove2 (Mesh & mesh, OPTIMIZEGOAL goal) (*testout) << "swapimprove2 done" << "\n"; } -double MeshOptimize3d :: SplitImprove2Element (Mesh & mesh, +double MeshOptimize3d :: SplitImprove2Element ( ElementIndex ei, const Table & elements_of_point, const Array & el_badness, @@ -2672,7 +2668,7 @@ double MeshOptimize3d :: SplitImprove2Element (Mesh & mesh, // Split two opposite edges of very flat tet and let all 4 new segments have one common vertex // Imagine a square with 2 diagonals -> new point where diagonals cross, remove the flat tet -void MeshOptimize3d :: SplitImprove2 (Mesh & mesh) +void MeshOptimize3d :: SplitImprove2 () { static Timer t("MeshOptimize3d::SplitImprove2"); RegionTimer reg(t); static Timer tsearch("Search"); @@ -2709,7 +2705,7 @@ void MeshOptimize3d :: SplitImprove2 (Mesh & mesh) { if(mp.only3D_domain_nr && mp.only3D_domain_nr != mesh[ei].GetIndex()) continue; - double d_badness = SplitImprove2Element(mesh, ei, elements_of_point, el_badness, true); + double d_badness = SplitImprove2Element(ei, elements_of_point, el_badness, true); if(d_badness<0.0) { int index = improvement_counter++; @@ -2726,7 +2722,7 @@ void MeshOptimize3d :: SplitImprove2 (Mesh & mesh) topt.Start(); for(auto [d_badness, ei] : elements_with_improvement) { - if( SplitImprove2Element(mesh, ei, elements_of_point, el_badness, false) < 0.0) + if( SplitImprove2Element(ei, elements_of_point, el_badness, false) < 0.0) cnt++; } topt.Stop(); diff --git a/libsrc/meshing/improve3.hpp b/libsrc/meshing/improve3.hpp index 43820406..a82354c1 100644 --- a/libsrc/meshing/improve3.hpp +++ b/libsrc/meshing/improve3.hpp @@ -13,32 +13,38 @@ extern double CalcTotalBad (const Mesh::T_POINTS & points, class MeshOptimize3d { const MeshingParameters & mp; + Mesh & mesh; + OPTIMIZEGOAL goal = OPT_QUALITY; public: - MeshOptimize3d (const MeshingParameters & amp) : mp(amp) { ; } - double CombineImproveEdge (Mesh & mesh, const MeshingParameters & mp, + MeshOptimize3d (Mesh & m, const MeshingParameters & amp, OPTIMIZEGOAL agoal = OPT_QUALITY) : + mesh(m), mp(amp), goal(agoal) { ; } + + void SetGoal(OPTIMIZEGOAL agoal) { goal = agoal; } + + double CombineImproveEdge ( Table & elements_of_point, Array & elerrs, PointIndex pi0, PointIndex pi1, FlatArray is_point_removed, bool check_only=false); - void CombineImprove (Mesh & mesh, OPTIMIZEGOAL goal = OPT_QUALITY); + void CombineImprove (); - void SplitImprove (Mesh & mesh, OPTIMIZEGOAL goal = OPT_QUALITY); - double SplitImproveEdge (Mesh & mesh, OPTIMIZEGOAL goal, Table & elementsonnode, Array &elerrs, NgArray &locfaces, double badmax, PointIndex pi1, PointIndex pi2, PointIndex ptmp, bool check_only=false); + void SplitImprove (); + double SplitImproveEdge (Table & elementsonnode, Array &elerrs, NgArray &locfaces, double badmax, PointIndex pi1, PointIndex pi2, PointIndex ptmp, bool check_only=false); - void SplitImprove2 (Mesh & mesh); - double SplitImprove2Element (Mesh & mesh, ElementIndex ei, const Table & elements_of_point, const Array & elerrs, bool check_only); + void SplitImprove2 (); + double SplitImprove2Element (ElementIndex ei, const Table & elements_of_point, const Array & elerrs, bool check_only); - double SwapImproveEdge (Mesh & mesh, OPTIMIZEGOAL goal, const NgBitArray * working_elements, Table & elementsonnode, INDEX_3_HASHTABLE & faces, PointIndex pi1, PointIndex pi2, bool check_only=false); - void SwapImprove (Mesh & mesh, OPTIMIZEGOAL goal = OPT_QUALITY, - const NgBitArray * working_elements = NULL); - void SwapImproveSurface (Mesh & mesh, OPTIMIZEGOAL goal = OPT_QUALITY, - const NgBitArray * working_elements = NULL, + double SwapImproveEdge (const NgBitArray * working_elements, Table & elementsonnode, INDEX_3_HASHTABLE & faces, PointIndex pi1, PointIndex pi2, bool check_only=false); + void SwapImprove (const NgBitArray * working_elements = NULL); + void SwapImproveSurface (const NgBitArray * working_elements = NULL, const NgArray< NgArray* > * idmaps = NULL); - void SwapImprove2 (Mesh & mesh, OPTIMIZEGOAL goal = OPT_QUALITY); - double SwapImprove2 ( Mesh & mesh, OPTIMIZEGOAL goal, ElementIndex eli1, int face, Table & elementsonnode, TABLE & belementsonnode, bool check_only=false ); + void SwapImprove2 (); + double SwapImprove2 (ElementIndex eli1, int face, Table & elementsonnode, TABLE & belementsonnode, bool check_only=false ); + + void ImproveMesh() { mesh.ImproveMesh(mp, goal); } double CalcBad (const Mesh::T_POINTS & points, const Element & elem, double h) diff --git a/libsrc/meshing/meshfunc.cpp b/libsrc/meshing/meshfunc.cpp index 451a44cb..1384d2bb 100644 --- a/libsrc/meshing/meshfunc.cpp +++ b/libsrc/meshing/meshfunc.cpp @@ -467,7 +467,7 @@ namespace netgen meshed = 0; PrintMessage (5, mesh.GetNOpenElements(), " open faces found"); - MeshOptimize3d optmesh(mp); + MeshOptimize3d optmesh(mesh, mp, OPT_REST); const char * optstr = "mcmstmcmstmcmstmcm"; for (size_t j = 1; j <= strlen(optstr); j++) @@ -479,11 +479,11 @@ namespace netgen switch (optstr[j-1]) { - case 'c': optmesh.CombineImprove(mesh, OPT_REST); break; - case 'd': optmesh.SplitImprove(mesh, OPT_REST); break; - case 's': optmesh.SwapImprove(mesh, OPT_REST); break; - case 't': optmesh.SwapImprove2(mesh, OPT_REST); break; - case 'm': mesh.ImproveMesh(mp, OPT_REST); break; + case 'c': optmesh.CombineImprove(); break; + case 'd': optmesh.SplitImprove(); break; + case 's': optmesh.SwapImprove(); break; + case 't': optmesh.SwapImprove2(); break; + case 'm': optmesh.ImproveMesh(); break; } } @@ -659,7 +659,7 @@ namespace netgen if (multithread.terminate) break; - MeshOptimize3d optmesh(mp); + MeshOptimize3d optmesh(mesh3d, mp); // teterrpow = mp.opterrpow; // for (size_t j = 1; j <= strlen(mp.optimize3d); j++) @@ -671,12 +671,16 @@ namespace netgen switch (mp.optimize3d[j]) { - case 'c': optmesh.CombineImprove(mesh3d, OPT_REST); break; - case 'd': optmesh.SplitImprove(mesh3d); break; - case 'D': optmesh.SplitImprove2(mesh3d); break; - case 's': optmesh.SwapImprove(mesh3d); break; + case 'c': + optmesh.SetGoal(OPT_REST); + optmesh.CombineImprove(); + optmesh.SetGoal(OPT_QUALITY); + break; + case 'd': optmesh.SplitImprove(); break; + case 'D': optmesh.SplitImprove2(); break; + case 's': optmesh.SwapImprove(); break; // case 'u': optmesh.SwapImproveSurface(mesh3d); break; - case 't': optmesh.SwapImprove2(mesh3d); break; + case 't': optmesh.SwapImprove2(); break; #ifdef SOLIDGEOM case 'm': mesh3d.ImproveMesh(*geometry); break; case 'M': mesh3d.ImproveMesh(*geometry); break; @@ -716,19 +720,19 @@ namespace netgen nillegal = mesh3d.MarkIllegalElements(); MeshingParameters dummymp; - MeshOptimize3d optmesh(dummymp); + MeshOptimize3d optmesh(mesh3d, dummymp, OPT_LEGAL); while (nillegal && (it--) > 0) { if (multithread.terminate) break; PrintMessage (5, nillegal, " illegal tets"); - optmesh.SplitImprove (mesh3d, OPT_LEGAL); + optmesh.SplitImprove (); mesh3d.MarkIllegalElements(); // test - optmesh.SwapImprove (mesh3d, OPT_LEGAL); + optmesh.SwapImprove (); mesh3d.MarkIllegalElements(); // test - optmesh.SwapImprove2 (mesh3d, OPT_LEGAL); + optmesh.SwapImprove2 (); oldn = nillegal; nillegal = mesh3d.MarkIllegalElements(); diff --git a/libsrc/meshing/validate.cpp b/libsrc/meshing/validate.cpp index f5fbff75..31bf499a 100644 --- a/libsrc/meshing/validate.cpp +++ b/libsrc/meshing/validate.cpp @@ -470,11 +470,11 @@ namespace netgen multithread.terminate != 1) { MeshingParameters dummymp; - MeshOptimize3d optmesh(dummymp); + MeshOptimize3d optmesh(mesh, dummymp, OPT_QUALITY); for(int i=0; i Date: Fri, 23 Feb 2024 18:20:14 +0100 Subject: [PATCH 4/8] Use badness stored in Element --- libsrc/meshing/improve3.cpp | 229 ++--- libsrc/meshing/improve3.hpp | 12 +- libsrc/meshing/meshclass.cpp | 4 +- libsrc/meshing/meshtype.hpp | 26 +- tests/pytest/results.json | 1834 +++++++++++++++++----------------- 5 files changed, 1064 insertions(+), 1041 deletions(-) diff --git a/libsrc/meshing/improve3.cpp b/libsrc/meshing/improve3.cpp index b1e729f9..25ef97ae 100644 --- a/libsrc/meshing/improve3.cpp +++ b/libsrc/meshing/improve3.cpp @@ -23,14 +23,6 @@ static inline bool NotTooBad(double bad1, double bad2) (bad2 <= 1e8); } -bool CheckAllLegal(Mesh & mesh, FlatArray els) - { - for(auto ei : els) - if(!mesh.LegalTet(mesh[ei])) - return false; - return true; - } - // Calc badness of new element where pi1 and pi2 are replaced by pnew double CalcBadReplacePoints (const Mesh::T_POINTS & points, const MeshingParameters & mp, const Element & elem, double h, PointIndex &pi1, PointIndex &pi2, MeshPoint &pnew) { @@ -49,7 +41,7 @@ static ArrayMem SplitElement (Element old, PointIndex pi0, PointInde ArrayMem new_elements; // split element by cutting edge pi0,pi1 at pinew auto np = old.GetNP(); - old.Flags().illegal_valid = 0; + old.Touch(); if(np == 4) { // Split tet into two tets @@ -141,7 +133,49 @@ static double SplitElementBadness (const Mesh::T_POINTS & points, const MeshingP } return badness; -}; +} + + +tuple MeshOptimize3d :: UpdateBadness() +{ + static Timer tbad("UpdateBadness"); + RegionTimer reg(tbad); + + double totalbad = 0.0; + double maxbad = 0.0; + ParallelForRange(Range(mesh.GetNE()), [&] (auto myrange) { + double totalbad_local = 0.0; + double maxbad_local = 0.0; + for (ElementIndex ei : myrange) + { + auto & el = mesh[ei]; + if(mp.only3D_domain_nr && mp.only3D_domain_nr != el.GetIndex()) continue; + if(!el.BadnessValid()) + el.SetBadness(CalcBad(mesh.Points(), el, 0)); + totalbad_local += el.GetBadness(); + maxbad_local = max(maxbad_local, static_cast(el.GetBadness())); + } + AtomicAdd(totalbad, totalbad_local); + AtomicMax(maxbad, maxbad_local); + }); + return {totalbad, maxbad}; +} + +bool MeshOptimize3d :: HasBadElement(FlatArray els) +{ + for(auto ei : els) + if(mesh[ei].GetBadness()>min_badness) + return true; + return false; +} + +bool MeshOptimize3d :: HasIllegalElement(FlatArray els) +{ + for(auto ei : els) + if(!mesh.LegalTet(mesh[ei])) + return true; + return false; +} /* @@ -153,7 +187,6 @@ static double SplitElementBadness (const Mesh::T_POINTS & points, const MeshingP */ double MeshOptimize3d :: CombineImproveEdge ( Table & elements_of_point, - Array & elerrs, PointIndex pi0, PointIndex pi1, FlatArray is_point_removed, bool check_only) @@ -206,9 +239,9 @@ double MeshOptimize3d :: CombineImproveEdge ( double badness_old = 0.0; for (auto ei : has_one_point) - badness_old += elerrs[ei]; + badness_old += mesh[ei].GetBadness(); for (auto ei : has_both_points) - badness_old += elerrs[ei]; + badness_old += mesh[ei].GetBadness(); MeshPoint pnew = p0; if (p0.Type() == INNERPOINT) @@ -239,7 +272,7 @@ double MeshOptimize3d :: CombineImproveEdge ( break; } - elem.Flags().illegal_valid = 0; + elem.Touch(); if (!mesh.LegalTet(elem)) badness_new += 1e4; } @@ -262,17 +295,17 @@ double MeshOptimize3d :: CombineImproveEdge ( if (elem[l] == pi1) elem[l] = pi0; - elem.Flags().illegal_valid = 0; + elem.Touch(); if (!mesh.LegalTet (elem)) (*testout) << "illegal tet " << ei << endl; } for (auto i : Range(has_one_point)) - elerrs[has_one_point[i]] = one_point_badness[i]; + mesh[has_one_point[i]].SetBadness(one_point_badness[i]); for (auto ei : has_both_points) { - mesh[ei].Flags().illegal_valid = 0; + mesh[ei].Touch(); mesh[ei].Delete(); } } @@ -286,7 +319,6 @@ void MeshOptimize3d :: CombineImprove () static Timer topt("Optimize"); static Timer tsearch("Search"); static Timer tbuild_elements_table("Build elements table"); - static Timer tbad("CalcBad"); mesh.BuildBoundaryEdges(false); @@ -294,7 +326,6 @@ void MeshOptimize3d :: CombineImprove () int ne = mesh.GetNE(); int ntasks = 4*ngcore::TaskManager::GetNumThreads(); - Array elerrs (ne); Array is_point_removed (np); is_point_removed = false; @@ -306,26 +337,11 @@ void MeshOptimize3d :: CombineImprove () multithread.task = "Optimize Volume: Combine Improve"; - tbad.Start(); - double totalbad = 0.0; - ParallelForRange(Range(ne), [&] (auto myrange) - { - double totalbad_local = 0.0; - for (ElementIndex ei : myrange) - { - if(mesh.GetDimension()==3 && mp.only3D_domain_nr && mp.only3D_domain_nr != mesh[ei].GetIndex()) - continue; - double elerr = CalcBad (mesh.Points(), mesh[ei], 0); - totalbad_local += elerr; - elerrs[ei] = elerr; - } - AtomicAdd(totalbad, totalbad_local); - }, ntasks); - tbad.Stop(); + UpdateBadness(); if (goal == OPT_QUALITY) { - totalbad = mesh.CalcTotalBad (mp); + double totalbad = mesh.CalcTotalBad (mp); (*testout) << "Total badness = " << totalbad << endl; } @@ -344,7 +360,7 @@ void MeshOptimize3d :: CombineImprove () for(auto i : myrange) { auto [p0,p1] = edges[i]; - double d_badness = CombineImproveEdge (elementsonnode, elerrs, p0, p1, is_point_removed, true); + double d_badness = CombineImproveEdge (elementsonnode, p0, p1, is_point_removed, true); if(d_badness<0.0) { int index = improvement_counter++; @@ -366,7 +382,7 @@ void MeshOptimize3d :: CombineImprove () for(auto [d_badness, ei] : edges_with_improvement) { auto [p0,p1] = edges[ei]; - if (CombineImproveEdge (elementsonnode, elerrs, p0, p1, is_point_removed, false) < 0.0) + if (CombineImproveEdge (elementsonnode, p0, p1, is_point_removed, false) < 0.0) cnt++; } topt.Stop(); @@ -379,7 +395,7 @@ void MeshOptimize3d :: CombineImprove () if (goal == OPT_QUALITY) { - totalbad = mesh.CalcTotalBad (mp); + double totalbad = mesh.CalcTotalBad (mp); (*testout) << "Total badness = " << totalbad << endl; int cntill = 0; @@ -395,7 +411,7 @@ void MeshOptimize3d :: CombineImprove () -double MeshOptimize3d :: SplitImproveEdge (Table & elementsonnode, Array &elerrs, NgArray &locfaces, double badmax, PointIndex pi1, PointIndex pi2, PointIndex ptmp, bool check_only) +double MeshOptimize3d :: SplitImproveEdge (Table & elementsonnode, NgArray &locfaces, double badmax, PointIndex pi1, PointIndex pi2, PointIndex ptmp, bool check_only) { double d_badness = 0.0; // int cnt = 0; @@ -424,14 +440,14 @@ double MeshOptimize3d :: SplitImproveEdge (Table & elem if(mp.only3D_domain_nr != mesh[ei].GetIndex()) return 0.0; - if ((goal == OPT_LEGAL) && CheckAllLegal(mesh, hasbothpoints)) + if ((goal == OPT_LEGAL) && !HasIllegalElement(hasbothpoints)) return 0.0; double bad1 = 0.0; double bad1_max = 0.0; for (ElementIndex ei : hasbothpoints) { - double bad = elerrs[ei]; + double bad = mesh[ei].GetBadness(); bad1 += bad; bad1_max = max(bad1_max, bad); } @@ -504,9 +520,8 @@ double MeshOptimize3d :: SplitImproveEdge (Table & elem Element newel1 = oldel; Element newel2 = oldel; - oldel.Flags().illegal_valid = 0; - newel1.Flags().illegal_valid = 0; - newel2.Flags().illegal_valid = 0; + newel1.Touch(); + newel2.Touch(); for (int l = 0; l < 4; l++) { @@ -535,11 +550,11 @@ double MeshOptimize3d :: SplitImproveEdge (Table & elem Element newel1 = oldel; Element newel2 = oldel; - oldel.Flags().illegal_valid = 0; + oldel.Touch(); oldel.Delete(); - newel1.Flags().illegal_valid = 0; - newel2.Flags().illegal_valid = 0; + newel1.Touch(); + newel2.Touch(); for (int l = 0; l < 4; l++) { @@ -567,8 +582,6 @@ void MeshOptimize3d :: SplitImprove () auto elementsonnode = mesh.CreatePoint2ElementTable(nullopt, mp.only3D_domain_nr); - Array elerrs(ne); - const char * savetask = multithread.task; multithread.task = "Optimize Volume: Split Improve"; @@ -576,15 +589,7 @@ void MeshOptimize3d :: SplitImprove () (*testout) << "start SplitImprove" << "\n"; mesh.BuildBoundaryEdges(false); - ParallelFor( mesh.VolumeElements().Range(), [&] (ElementIndex ei) NETGEN_LAMBDA_INLINE - { - if(mp.only3D_domain_nr && mp.only3D_domain_nr != mesh.VolumeElement(ei).GetIndex()) - return; - - elerrs[ei] = CalcBad (mesh.Points(), mesh[ei], 0); - bad += elerrs[ei]; - AtomicMax(badmax, elerrs[ei]); - }); + UpdateBadness(); if (goal == OPT_QUALITY) { @@ -608,7 +613,7 @@ void MeshOptimize3d :: SplitImprove () for(auto i : myrange) { auto [p0,p1] = edges[i]; - double d_badness = SplitImproveEdge (elementsonnode, elerrs, locfaces, badmax, p0, p1, ptmp, true); + double d_badness = SplitImproveEdge (elementsonnode, locfaces, badmax, p0, p1, ptmp, true); if(d_badness<0.0) { int index = improvement_counter++; @@ -631,7 +636,7 @@ void MeshOptimize3d :: SplitImprove () for(auto [d_badness, ei] : edges_with_improvement) { auto [p0,p1] = edges[ei]; - if (SplitImproveEdge (elementsonnode, elerrs, locfaces, badmax, p0, p1, ptmp, false) < 0.0) + if (SplitImproveEdge (elementsonnode, locfaces, badmax, p0, p1, ptmp, false) < 0.0) cnt++; } topt.Stop(); @@ -725,7 +730,7 @@ double MeshOptimize3d :: SwapImproveEdge ( return 0.0; } - if ((goal == OPT_LEGAL) && CheckAllLegal(mesh, hasbothpoints)) + if ((goal == OPT_LEGAL) && !HasIllegalElement(hasbothpoints)) return 0.0; int nsuround = hasbothpoints.Size(); @@ -790,9 +795,9 @@ double MeshOptimize3d :: SwapImproveEdge ( CalcBad (mesh.Points(), el32, 0) + CalcBad (mesh.Points(), el33, 0); - el31.Flags().illegal_valid = 0; - el32.Flags().illegal_valid = 0; - el33.Flags().illegal_valid = 0; + el31.Touch(); + el32.Touch(); + el33.Touch(); if (!mesh.LegalTet(el31) || !mesh.LegalTet(el32) || @@ -814,8 +819,8 @@ double MeshOptimize3d :: SwapImproveEdge ( bad2 = CalcBad (mesh.Points(), el21, 0) + CalcBad (mesh.Points(), el22, 0); - el21.Flags().illegal_valid = 0; - el22.Flags().illegal_valid = 0; + el21.Touch(); + el22.Touch(); if (!mesh.LegalTet(el21) || !mesh.LegalTet(el22)) @@ -857,8 +862,8 @@ double MeshOptimize3d :: SwapImproveEdge ( mesh[hasbothpoints[1]].Delete(); mesh[hasbothpoints[2]].Delete(); - el21.Flags().illegal_valid = 0; - el22.Flags().illegal_valid = 0; + el21.Touch(); + el22.Touch(); mesh.AddVolumeElement(el21); mesh.AddVolumeElement(el22); } @@ -933,10 +938,10 @@ double MeshOptimize3d :: SwapImproveEdge ( CalcBad (mesh.Points(), el4, 0); - el1.Flags().illegal_valid = 0; - el2.Flags().illegal_valid = 0; - el3.Flags().illegal_valid = 0; - el4.Flags().illegal_valid = 0; + el1.Touch(); + el2.Touch(); + el3.Touch(); + el4.Touch(); if (goal != OPT_CONFORM) @@ -969,10 +974,10 @@ double MeshOptimize3d :: SwapImproveEdge ( CalcBad (mesh.Points(), el3, 0) + CalcBad (mesh.Points(), el4, 0); - el1.Flags().illegal_valid = 0; - el2.Flags().illegal_valid = 0; - el3.Flags().illegal_valid = 0; - el4.Flags().illegal_valid = 0; + el1.Touch(); + el2.Touch(); + el3.Touch(); + el4.Touch(); if (goal != OPT_CONFORM) { @@ -1005,10 +1010,10 @@ double MeshOptimize3d :: SwapImproveEdge ( CalcBad (mesh.Points(), el3b, 0) + CalcBad (mesh.Points(), el4b, 0); - el1b.Flags().illegal_valid = 0; - el2b.Flags().illegal_valid = 0; - el3b.Flags().illegal_valid = 0; - el4b.Flags().illegal_valid = 0; + el1b.Touch(); + el2b.Touch(); + el3b.Touch(); + el4b.Touch(); if (goal != OPT_CONFORM) { @@ -1045,10 +1050,10 @@ double MeshOptimize3d :: SwapImproveEdge ( for (auto i : IntRange(4)) mesh[hasbothpoints[i]].Delete(); - el1.Flags().illegal_valid = 0; - el2.Flags().illegal_valid = 0; - el3.Flags().illegal_valid = 0; - el4.Flags().illegal_valid = 0; + el1.Touch(); + el2.Touch(); + el3.Touch(); + el4.Touch(); mesh.AddVolumeElement (el1); mesh.AddVolumeElement (el2); mesh.AddVolumeElement (el3); @@ -1059,10 +1064,10 @@ double MeshOptimize3d :: SwapImproveEdge ( for (auto i : IntRange(4)) mesh[hasbothpoints[i]].Delete(); - el1b.Flags().illegal_valid = 0; - el2b.Flags().illegal_valid = 0; - el3b.Flags().illegal_valid = 0; - el4b.Flags().illegal_valid = 0; + el1b.Touch(); + el2b.Touch(); + el3b.Touch(); + el4b.Touch(); mesh.AddVolumeElement (el1b); mesh.AddVolumeElement (el2b); mesh.AddVolumeElement (el3b); @@ -1165,7 +1170,7 @@ double MeshOptimize3d :: SwapImproveEdge ( hel[3] = pi2; bad2 += CalcBad (mesh.Points(), hel, 0); - hel.Flags().illegal_valid = 0; + hel.Touch(); if (!mesh.LegalTet(hel)) bad2 += 1e4; hel[2] = suroundpts[k % nsuround]; @@ -1174,7 +1179,7 @@ double MeshOptimize3d :: SwapImproveEdge ( bad2 += CalcBad (mesh.Points(), hel, 0); - hel.Flags().illegal_valid = 0; + hel.Touch(); if (!mesh.LegalTet(hel)) bad2 += 1e4; } // (*testout) << "bad2," << l << " = " << bad2 << endl; @@ -1244,7 +1249,7 @@ double MeshOptimize3d :: SwapImproveEdge ( hel[1] = suroundpts[k % nsuround]; hel[2] = suroundpts[(k+1) % nsuround]; hel[3] = pi2; - hel.Flags().illegal_valid = 0; + hel.Touch(); /* (*testout) << nsuround << "-swap, new el,top = " @@ -2403,9 +2408,9 @@ double MeshOptimize3d :: SwapImprove2 ( ElementIndex eli1, int face, CalcBad (mesh.Points(), el33, 0); - el31.Flags().illegal_valid = 0; - el32.Flags().illegal_valid = 0; - el33.Flags().illegal_valid = 0; + el31.Touch(); + el32.Touch(); + el33.Touch(); if (!mesh.LegalTet(el31) || !mesh.LegalTet(el32) || @@ -2424,9 +2429,9 @@ double MeshOptimize3d :: SwapImprove2 ( ElementIndex eli1, int face, if (d_badness<0.0) { - el31.Flags().illegal_valid = 0; - el32.Flags().illegal_valid = 0; - el33.Flags().illegal_valid = 0; + el31.Touch(); + el32.Touch(); + el33.Touch(); mesh[eli1].Delete(); mesh[eli2].Delete(); @@ -2537,7 +2542,6 @@ void MeshOptimize3d :: SwapImprove2 () double MeshOptimize3d :: SplitImprove2Element ( ElementIndex ei, const Table & elements_of_point, - const Array & el_badness, bool check_only) { auto & el = mesh[ei]; @@ -2545,7 +2549,7 @@ double MeshOptimize3d :: SplitImprove2Element ( return false; // Optimize only bad elements - if(el_badness[ei] < 100) + if(el.GetBadness() < 100) return false; // search for very flat tets, with two disjoint edges nearly crossing, like a rectangle with diagonals @@ -2621,21 +2625,21 @@ double MeshOptimize3d :: SplitImprove2Element ( has_both_points1.Append (ei1); } - double badness_before = el_badness[ei]; + double badness_before = mesh[ei].GetBadness(); double badness_after = 0.0; for (auto ei0 : has_both_points0) { if(mesh[ei0].GetType()!=TET) return false; - badness_before += el_badness[ei0]; + badness_before += mesh[ei0].GetBadness(); badness_after += SplitElementBadness (mesh.Points(), mp, mesh[ei0], pi0, pi1, pnew); } for (auto ei1 : has_both_points1) { if(mesh[ei1].GetType()!=TET) return false; - badness_before += el_badness[ei1]; + badness_before += mesh[ei1].GetBadness(); badness_after += SplitElementBadness (mesh.Points(), mp, mesh[ei1], pi2, pi3, pnew); } @@ -2645,7 +2649,7 @@ double MeshOptimize3d :: SplitImprove2Element ( if(badness_after el_badness (ne); - - ParallelForRange(Range(ne), [&] (auto myrange) - { - for (ElementIndex ei : myrange) - { - if(mp.only3D_domain_nr && mp.only3D_domain_nr != mesh[ei].GetIndex()) - continue; - el_badness[ei] = CalcBad (mesh.Points(), mesh[ei], 0); - } - }); - + UpdateBadness(); mesh.BuildBoundaryEdges(false); Array> split_candidates(ne); @@ -2705,7 +2698,7 @@ void MeshOptimize3d :: SplitImprove2 () { if(mp.only3D_domain_nr && mp.only3D_domain_nr != mesh[ei].GetIndex()) continue; - double d_badness = SplitImprove2Element(ei, elements_of_point, el_badness, true); + double d_badness = SplitImprove2Element(ei, elements_of_point, true); if(d_badness<0.0) { int index = improvement_counter++; @@ -2722,7 +2715,7 @@ void MeshOptimize3d :: SplitImprove2 () topt.Start(); for(auto [d_badness, ei] : elements_with_improvement) { - if( SplitImprove2Element(ei, elements_of_point, el_badness, false) < 0.0) + if( SplitImprove2Element(ei, elements_of_point, false) < 0.0) cnt++; } topt.Stop(); diff --git a/libsrc/meshing/improve3.hpp b/libsrc/meshing/improve3.hpp index a82354c1..a0519479 100644 --- a/libsrc/meshing/improve3.hpp +++ b/libsrc/meshing/improve3.hpp @@ -15,6 +15,11 @@ class MeshOptimize3d const MeshingParameters & mp; Mesh & mesh; OPTIMIZEGOAL goal = OPT_QUALITY; + double min_badness = 0; + + tuple UpdateBadness(); + bool HasBadElement(FlatArray els); + bool HasIllegalElement(FlatArray els); public: @@ -22,19 +27,20 @@ public: mesh(m), mp(amp), goal(agoal) { ; } void SetGoal(OPTIMIZEGOAL agoal) { goal = agoal; } + void SetMinBadness(double badness) { min_badness = badness; } double CombineImproveEdge ( Table & elements_of_point, - Array & elerrs, PointIndex pi0, PointIndex pi1, + PointIndex pi0, PointIndex pi1, FlatArray is_point_removed, bool check_only=false); void CombineImprove (); void SplitImprove (); - double SplitImproveEdge (Table & elementsonnode, Array &elerrs, NgArray &locfaces, double badmax, PointIndex pi1, PointIndex pi2, PointIndex ptmp, bool check_only=false); + double SplitImproveEdge (Table & elementsonnode, NgArray &locfaces, double badmax, PointIndex pi1, PointIndex pi2, PointIndex ptmp, bool check_only=false); void SplitImprove2 (); - double SplitImprove2Element (ElementIndex ei, const Table & elements_of_point, const Array & elerrs, bool check_only); + double SplitImprove2Element (ElementIndex ei, const Table & elements_of_point, bool check_only); double SwapImproveEdge (const NgBitArray * working_elements, Table & elementsonnode, INDEX_3_HASHTABLE & faces, PointIndex pi1, PointIndex pi2, bool check_only=false); diff --git a/libsrc/meshing/meshclass.cpp b/libsrc/meshing/meshclass.cpp index c7b70efc..c51c0ae1 100644 --- a/libsrc/meshing/meshclass.cpp +++ b/libsrc/meshing/meshclass.cpp @@ -603,7 +603,7 @@ namespace netgen { volelements.Append (el); } - volelements.Last().Flags().illegal_valid = 0; + volelements.Last().Touch(); volelements.Last().Flags().fixed = 0; volelements.Last().Flags().deleted = 0; @@ -626,7 +626,7 @@ namespace netgen */ volelements[ei] = el; - volelements[ei].Flags().illegal_valid = 0; + volelements[ei].Touch(); volelements[ei].Flags().fixed = 0; volelements[ei].Flags().deleted = 0; } diff --git a/libsrc/meshing/meshtype.hpp b/libsrc/meshing/meshtype.hpp index f71fc35f..62d9f0b8 100644 --- a/libsrc/meshing/meshtype.hpp +++ b/libsrc/meshing/meshtype.hpp @@ -13,6 +13,7 @@ #include #include +#include "core/exception.hpp" #include "msghandler.hpp" namespace netgen @@ -994,7 +995,10 @@ namespace netgen { return flags.strongrefflag; } int Illegal () const - { return flags.illegal; } + { + NETGEN_CHECK_SAME(flags.illegal_valid, true); + return flags.illegal; + } int IllegalValid () const { return flags.illegal_valid; } void SetIllegal (int aillegal) @@ -1007,6 +1011,26 @@ namespace netgen flags.illegal = alegal ? 0 : 1; flags.illegal_valid = 1; } + + bool BadnessValid() + { return flags.badness_valid; } + + float GetBadness() + { + NETGEN_CHECK_SAME(flags.badness_valid, true); + return badness; + } + + void SetBadness(float value) + { + badness = value; + flags.badness_valid = 1; + } + + void Touch() { + flags.illegal_valid = 0; + flags.badness_valid = 0; + } void Delete () { flags.deleted = 1; } bool IsDeleted () const diff --git a/tests/pytest/results.json b/tests/pytest/results.json index 5d5af071..eb137e38 100644 --- a/tests/pytest/results.json +++ b/tests/pytest/results.json @@ -2,18 +2,18 @@ "boundarycondition.geo": [ { "angles_tet": [ - 27.291, - 136.38 + 26.191, + 136.36 ], "angles_trig": [ - 23.577, - 123.09 + 23.62, + 121.42 ], "ne1d": 74, "ne2d": 52, - "ne3d": 48, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 7, 7, 16, 3, 6, 1, 1, 0, 1]", - "total_badness": 74.651719788 + "ne3d": 43, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 7, 5, 13, 4, 6, 1, 1, 0, 0]", + "total_badness": 67.191916743 }, { "angles_tet": [ @@ -47,18 +47,18 @@ }, { "angles_tet": [ - 27.292, - 136.38 + 26.191, + 136.36 ], "angles_trig": [ - 23.578, - 123.09 + 23.62, + 121.42 ], "ne1d": 74, "ne2d": 52, - "ne3d": 48, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 7, 7, 16, 3, 6, 1, 1, 0, 1]", - "total_badness": 74.651710944 + "ne3d": 43, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 7, 5, 13, 4, 6, 1, 1, 0, 0]", + "total_badness": 67.191916765 }, { "angles_tet": [ @@ -71,14 +71,14 @@ ], "ne1d": 118, "ne2d": 126, - "ne3d": 141, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 18, 11, 17, 30, 19, 19, 14, 7, 2]", - "total_badness": 196.01215512 + "ne3d": 136, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 22, 10, 15, 29, 16, 19, 13, 7, 1]", + "total_badness": 190.84531316 }, { "angles_tet": [ - 26.405, - 131.02 + 28.55, + 132.15 ], "angles_trig": [ 24.196, @@ -86,26 +86,26 @@ ], "ne1d": 181, "ne2d": 291, - "ne3d": 459, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 9, 18, 30, 44, 69, 111, 100, 54, 18]", - "total_badness": 575.46697618 + "ne3d": 435, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 29, 33, 54, 74, 90, 80, 48, 15]", + "total_badness": 554.47412921 } ], "boxcyl.geo": [ { "angles_tet": [ - 21.213, - 142.56 + 21.225, + 143.02 ], "angles_trig": [ - 22.379, + 22.402, 121.98 ], "ne1d": 190, "ne2d": 450, - "ne3d": 834, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 93, 74, 76, 85, 110, 106, 100, 99, 45, 19]", - "total_badness": 1200.3294639 + "ne3d": 763, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 16, 46, 53, 73, 81, 69, 93, 96, 92, 88, 40, 16]", + "total_badness": 1120.112517 }, { "angles_tet": [ @@ -133,238 +133,238 @@ ], "ne1d": 136, "ne2d": 204, - "ne3d": 326, - "quality_histogram": "[0, 0, 0, 2, 3, 8, 7, 9, 11, 14, 9, 18, 28, 30, 45, 57, 41, 29, 11, 4]", - "total_badness": 526.10466705 + "ne3d": 306, + "quality_histogram": "[0, 0, 0, 2, 4, 7, 11, 10, 9, 15, 15, 20, 21, 38, 44, 41, 34, 24, 9, 2]", + "total_badness": 514.31347847 }, { "angles_tet": [ - 21.211, - 138.67 + 21.224, + 136.69 ], "angles_trig": [ - 22.376, + 22.402, 121.98 ], "ne1d": 190, "ne2d": 450, - "ne3d": 833, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 24, 86, 78, 71, 79, 124, 107, 92, 99, 51, 21]", - "total_badness": 1192.8552253 + "ne3d": 742, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 15, 44, 47, 68, 84, 61, 88, 93, 90, 95, 43, 14]", + "total_badness": 1083.0472623 }, { "angles_tet": [ - 26.153, - 141.36 + 25.644, + 139.2 ], "angles_trig": [ - 25.575, - 114.94 + 23.435, + 115.39 ], "ne1d": 284, "ne2d": 922, - "ne3d": 3853, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 15, 42, 118, 219, 455, 671, 787, 798, 574, 170]", - "total_badness": 4779.225323 + "ne3d": 3065, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 21, 34, 78, 221, 319, 529, 640, 633, 437, 151]", + "total_badness": 3805.5671206 }, { "angles_tet": [ - 25.158, - 143.56 + 27.437, + 140.94 ], "angles_trig": [ - 26.347, - 116.86 + 26.707, + 115.82 ], "ne1d": 456, "ne2d": 2480, - "ne3d": 18633, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 17, 90, 298, 808, 1625, 2854, 3990, 4460, 3380, 1106]", - "total_badness": 22512.61657 + "ne3d": 14672, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, 53, 199, 519, 1231, 2129, 3147, 3654, 2828, 901]", + "total_badness": 17610.111798 } ], "circle_on_cube.geo": [ { "angles_tet": [ - 25.073, - 134.64 + 22.477, + 136.37 ], "angles_trig": [ - 20.125, - 122.26 + 17.668, + 111.68 ], "ne1d": 94, "ne2d": 162, - "ne3d": 616, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 4, 13, 15, 36, 61, 59, 78, 112, 98, 85, 43, 12]", - "total_badness": 838.94349076 + "ne3d": 539, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 4, 8, 12, 19, 51, 64, 77, 84, 113, 60, 38, 8]", + "total_badness": 730.6462233 }, { "angles_tet": [ - 15.603, - 140.66 + 15.613, + 142.3 ], "angles_trig": [ 19.788, - 123.88 + 122.66 ], "ne1d": 40, "ne2d": 30, - "ne3d": 43, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 0, 2, 5, 9, 7, 5, 5, 3, 3, 2, 0, 0, 1, 0]", - "total_badness": 82.109638474 + "ne3d": 37, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 0, 2, 5, 6, 11, 1, 5, 2, 2, 1, 1, 0, 0, 0]", + "total_badness": 71.995863583 }, { "angles_tet": [ - 20.678, - 133.74 + 27.91, + 126.99 ], "angles_trig": [ 23.119, - 112.86 + 114.31 ], "ne1d": 62, "ne2d": 76, - "ne3d": 155, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 9, 16, 26, 34, 29, 13, 10, 8, 0]", - "total_badness": 220.46268417 + "ne3d": 132, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 12, 15, 25, 31, 17, 12, 9, 4, 1]", + "total_badness": 188.06169802 }, { "angles_tet": [ - 25.158, - 131.6 + 25.043, + 130.43 ], "angles_trig": [ - 23.161, - 113.1 + 25.633, + 113.25 ], "ne1d": 94, "ne2d": 162, - "ne3d": 587, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 22, 44, 62, 62, 114, 104, 94, 57, 15]", - "total_badness": 769.56121713 + "ne3d": 503, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 19, 29, 60, 75, 85, 96, 79, 40, 12]", + "total_badness": 658.94098229 }, { "angles_tet": [ - 22.472, - 138.67 + 27.024, + 137.07 ], "angles_trig": [ - 26.461, - 115.01 + 28.458, + 106.82 ], "ne1d": 138, "ne2d": 370, - "ne3d": 2009, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 13, 21, 56, 130, 220, 339, 438, 428, 295, 67]", - "total_badness": 2495.8001047 + "ne3d": 1596, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 9, 27, 92, 206, 267, 344, 334, 254, 60]", + "total_badness": 1963.9270548 }, { "angles_tet": [ - 25.429, - 141.91 + 27.872, + 139.54 ], "angles_trig": [ - 26.66, - 115.7 + 26.836, + 112.22 ], "ne1d": 224, "ne2d": 922, - "ne3d": 12168, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 17, 52, 227, 553, 1180, 1901, 2590, 2911, 2091, 637]", - "total_badness": 14779.532724 + "ne3d": 9154, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 33, 103, 297, 649, 1223, 1932, 2247, 2016, 650]", + "total_badness": 10895.036801 } ], "cone.geo": [ { "angles_tet": [ - 14.938, - 141.57 + 15.75, + 142.51 ], "angles_trig": [ - 16.548, - 122.02 + 15.975, + 122.42 ], "ne1d": 64, "ne2d": 718, - "ne3d": 1191, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 2, 18, 41, 51, 83, 122, 133, 145, 163, 130, 138, 89, 60, 15]", - "total_badness": 1802.9323748 + "ne3d": 1146, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 8, 16, 43, 58, 89, 125, 122, 141, 150, 135, 113, 89, 47, 9]", + "total_badness": 1762.8462929 }, { "angles_tet": [ - 9.1858, - 161.19 + 12.355, + 161.49 ], "angles_trig": [ - 13.35, - 149.4 + 12.226, + 144.29 ], "ne1d": 32, "ne2d": 208, - "ne3d": 503, - "quality_histogram": "[0, 0, 1, 5, 16, 30, 36, 31, 25, 40, 53, 39, 45, 39, 40, 32, 26, 23, 12, 10]", - "total_badness": 1031.5095298 + "ne3d": 463, + "quality_histogram": "[0, 0, 0, 2, 8, 19, 37, 37, 35, 38, 38, 37, 38, 40, 19, 38, 29, 20, 22, 6]", + "total_badness": 909.51493585 }, { "angles_tet": [ - 7.2677, - 164.69 + 9.7616, + 164.1 ], "angles_trig": [ - 15.673, - 144.5 + 10.106, + 153.08 ], "ne1d": 48, "ne2d": 420, - "ne3d": 581, - "quality_histogram": "[0, 0, 1, 8, 9, 9, 13, 16, 45, 51, 79, 93, 70, 52, 51, 37, 24, 11, 12, 0]", - "total_badness": 1098.0426702 + "ne3d": 583, + "quality_histogram": "[0, 0, 1, 5, 10, 14, 16, 16, 33, 63, 107, 66, 74, 58, 52, 27, 11, 14, 13, 3]", + "total_badness": 1104.7233833 }, { "angles_tet": [ - 17.166, - 143.86 + 13.187, + 147.74 ], "angles_trig": [ - 19.54, - 120.27 + 17.408, + 122.16 ], "ne1d": 64, "ne2d": 718, - "ne3d": 1186, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 8, 22, 42, 92, 106, 123, 168, 148, 166, 127, 103, 62, 17]", - "total_badness": 1745.7492969 + "ne3d": 1137, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 3, 9, 31, 59, 90, 112, 116, 153, 161, 138, 115, 91, 45, 13]", + "total_badness": 1717.9294394 }, { "angles_tet": [ - 25.516, - 138.4 + 25.148, + 138.91 ], "angles_trig": [ - 25.119, - 121.58 + 22.997, + 120.3 ], "ne1d": 96, "ne2d": 1648, - "ne3d": 4372, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 16, 60, 127, 237, 407, 551, 707, 802, 764, 543, 156]", - "total_badness": 5622.2033105 + "ne3d": 3856, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 5, 22, 72, 158, 260, 409, 520, 626, 679, 573, 430, 102]", + "total_badness": 5061.9869618 }, { "angles_tet": [ - 20.726, - 143.6 + 22.972, + 142.2 ], "angles_trig": [ - 23.171, - 123.6 + 24.338, + 122.16 ], "ne1d": 160, "ne2d": 4738, - "ne3d": 27128, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 6, 18, 86, 216, 621, 1451, 2693, 4334, 5762, 5891, 4576, 1473]", - "total_badness": 33206.092664 + "ne3d": 21525, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 5, 18, 81, 218, 519, 1076, 2125, 3325, 4344, 4757, 3832, 1225]", + "total_badness": 26324.805946 } ], "cube.geo": [ @@ -430,33 +430,33 @@ }, { "angles_tet": [ - 27.354, - 136.27 + 33.549, + 129.66 ], "angles_trig": [ - 21.671, - 126.93 + 27.158, + 119.33 ], "ne1d": 48, "ne2d": 36, - "ne3d": 57, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 1, 10, 12, 9, 12, 4, 1, 2, 0]", - "total_badness": 83.840161698 + "ne3d": 38, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 5, 1, 13, 0, 2, 5, 0]", + "total_badness": 53.231047857 }, { "angles_tet": [ - 31.709, - 132.62 + 31.794, + 132.85 ], "angles_trig": [ 28.796, - 108.23 + 105.01 ], "ne1d": 72, "ne2d": 92, - "ne3d": 138, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 11, 8, 8, 25, 23, 30, 17, 10]", - "total_badness": 173.92559042 + "ne3d": 132, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 11, 5, 13, 26, 18, 30, 15, 9]", + "total_badness": 166.4958056 } ], "cubeandring.geo": [ @@ -471,9 +471,9 @@ ], "ne1d": 262, "ne2d": 652, - "ne3d": 2022, - "quality_histogram": "[0, 1, 6, 19, 45, 89, 88, 114, 88, 56, 61, 87, 122, 189, 240, 269, 218, 185, 112, 33]", - "total_badness": 3647.7759992 + "ne3d": 1857, + "quality_histogram": "[0, 1, 4, 20, 45, 81, 89, 111, 82, 55, 58, 77, 131, 188, 215, 214, 193, 152, 113, 28]", + "total_badness": 3392.4559528 }, { "angles_tet": [ @@ -482,13 +482,13 @@ ], "angles_trig": [ 22.715, - 110.61 + 110.68 ], "ne1d": 134, "ne2d": 142, - "ne3d": 205, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 7, 17, 27, 33, 33, 29, 33, 15, 2, 4]", - "total_badness": 293.69952154 + "ne3d": 193, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 0, 1, 0, 4, 7, 17, 25, 31, 25, 27, 34, 15, 3, 3]", + "total_badness": 276.85560019 }, { "angles_tet": [ @@ -496,14 +496,14 @@ 159.84 ], "angles_trig": [ - 20.057, + 19.918, 131.52 ], "ne1d": 190, "ne2d": 242, - "ne3d": 501, - "quality_histogram": "[0, 0, 0, 0, 2, 0, 1, 5, 4, 14, 39, 50, 43, 83, 64, 82, 54, 37, 23, 0]", - "total_badness": 745.75340705 + "ne3d": 443, + "quality_histogram": "[0, 0, 0, 0, 2, 0, 1, 5, 4, 14, 36, 48, 31, 68, 64, 71, 51, 35, 13, 0]", + "total_badness": 663.69097487 }, { "angles_tet": [ @@ -516,39 +516,39 @@ ], "ne1d": 262, "ne2d": 652, - "ne3d": 1909, - "quality_histogram": "[0, 1, 6, 13, 29, 82, 74, 105, 72, 29, 46, 70, 118, 172, 204, 234, 260, 210, 139, 45]", - "total_badness": 3287.5061824 + "ne3d": 1655, + "quality_histogram": "[0, 0, 2, 14, 36, 66, 75, 92, 86, 32, 37, 52, 90, 161, 184, 225, 197, 178, 102, 26]", + "total_badness": 2904.871737 }, { "angles_tet": [ - 21.825, - 139.42 + 23.105, + 140.16 ], "angles_trig": [ - 25.306, - 118.65 + 23.955, + 117.93 ], "ne1d": 378, "ne2d": 1360, - "ne3d": 7644, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 41, 121, 305, 587, 951, 1273, 1531, 1463, 1031, 332]", - "total_badness": 9598.9374464 + "ne3d": 6128, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 11, 40, 115, 224, 441, 772, 962, 1226, 1196, 871, 268]", + "total_badness": 7688.465096 }, { "angles_tet": [ - 24.652, - 141.0 + 22.414, + 142.28 ], "angles_trig": [ - 26.306, - 124.41 + 26.19, + 120.57 ], "ne1d": 624, "ne2d": 3860, - "ne3d": 38125, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 22, 82, 236, 702, 1857, 3663, 6067, 8006, 8696, 6671, 2121]", - "total_badness": 46389.480456 + "ne3d": 29435, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 20, 35, 140, 425, 1108, 2328, 4157, 6139, 7141, 5940, 2000]", + "total_badness": 35320.500741 } ], "cubeandspheres.geo": [ @@ -646,202 +646,202 @@ "cubemcyl.geo": [ { "angles_tet": [ - 17.552, - 149.02 + 18.498, + 149.4 ], "angles_trig": [ - 19.505, - 129.13 + 20.98, + 128.43 ], "ne1d": 142, "ne2d": 2400, - "ne3d": 20169, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 5, 25, 79, 231, 483, 876, 1588, 2360, 2911, 3368, 3435, 2711, 1628, 469]", - "total_badness": 27089.560986 + "ne3d": 17784, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 15, 72, 177, 380, 754, 1416, 2074, 2648, 3013, 3039, 2408, 1406, 381]", + "total_badness": 23838.771502 }, { "angles_tet": [ - 14.439, + 14.839, 163.36 ], "angles_trig": [ 13.852, - 127.91 + 128.88 ], "ne1d": 64, "ne2d": 556, - "ne3d": 3009, - "quality_histogram": "[0, 0, 0, 1, 2, 3, 13, 27, 42, 87, 131, 219, 325, 398, 476, 464, 391, 283, 117, 30]", - "total_badness": 4368.0483744 + "ne3d": 2527, + "quality_histogram": "[0, 0, 0, 1, 3, 3, 13, 21, 45, 87, 131, 201, 271, 361, 392, 379, 330, 192, 82, 15]", + "total_badness": 3732.8031568 }, { "angles_tet": [ - 17.198, - 146.78 + 22.204, + 144.2 ], "angles_trig": [ - 19.119, - 125.8 + 20.457, + 131.4 ], "ne1d": 102, "ne2d": 1280, - "ne3d": 8063, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 5, 27, 79, 200, 404, 723, 1075, 1303, 1418, 1197, 941, 556, 133]", - "total_badness": 10967.392706 + "ne3d": 6627, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 4, 14, 45, 131, 360, 598, 900, 1106, 1173, 1015, 768, 406, 107]", + "total_badness": 8993.1807463 }, { "angles_tet": [ - 19.398, - 141.79 + 21.141, + 148.31 ], "angles_trig": [ - 21.638, + 21.611, 126.55 ], "ne1d": 142, "ne2d": 2400, - "ne3d": 19151, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 3, 14, 55, 170, 418, 1024, 1805, 2657, 3451, 3664, 3317, 2042, 530]", - "total_badness": 24613.208269 + "ne3d": 15309, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 3, 23, 55, 140, 359, 805, 1463, 2161, 2694, 2954, 2634, 1558, 459]", + "total_badness": 19727.869608 }, { "angles_tet": [ - 21.795, - 146.06 + 22.581, + 143.99 ], "angles_trig": [ - 22.867, - 125.23 + 24.014, + 127.71 ], "ne1d": 210, "ne2d": 5460, - "ne3d": 88820, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 11, 51, 248, 703, 2183, 5117, 9583, 14386, 18836, 19401, 14091, 4209]", - "total_badness": 109216.91548 + "ne3d": 67072, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 6, 48, 124, 432, 1291, 3132, 6334, 10320, 14235, 15595, 11771, 3784]", + "total_badness": 81524.550953 }, { "angles_tet": [ - 23.058, - 143.66 + 22.466, + 144.76 ], "angles_trig": [ - 23.971, - 124.25 + 23.709, + 124.43 ], "ne1d": 362, "ne2d": 15082, - "ne3d": 520218, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 9, 85, 496, 2160, 7382, 21158, 47170, 79795, 110068, 123883, 97144, 30868]", - "total_badness": 627579.43599 + "ne3d": 393202, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 4, 45, 232, 948, 3557, 10813, 25511, 50218, 80582, 101638, 89274, 30380]", + "total_badness": 465262.05237 } ], "cubemsphere.geo": [ { "angles_tet": [ - 22.157, - 150.39 + 21.066, + 146.42 ], "angles_trig": [ - 20.064, - 125.29 + 20.446, + 128.42 ], "ne1d": 90, "ne2d": 570, - "ne3d": 4524, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 9, 47, 78, 175, 315, 496, 713, 797, 777, 636, 390, 88]", - "total_badness": 6006.2212546 + "ne3d": 3971, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 7, 30, 66, 153, 277, 462, 599, 716, 677, 565, 340, 77]", + "total_badness": 5266.0349233 }, { "angles_tet": [ - 10.836, - 151.64 + 11.451, + 157.71 ], "angles_trig": [ 10.838, - 138.94 + 143.17 ], "ne1d": 44, "ne2d": 142, - "ne3d": 330, - "quality_histogram": "[0, 0, 0, 4, 15, 18, 21, 37, 33, 24, 39, 40, 29, 20, 23, 11, 7, 5, 4, 0]", - "total_badness": 728.64632638 + "ne3d": 300, + "quality_histogram": "[0, 0, 4, 4, 13, 22, 27, 41, 31, 33, 27, 29, 25, 14, 10, 7, 6, 4, 3, 0]", + "total_badness": 723.41477982 }, { "angles_tet": [ - 13.22, - 146.51 + 13.391, + 145.87 ], "angles_trig": [ - 16.161, - 132.51 + 15.737, + 131.46 ], "ne1d": 68, "ne2d": 272, - "ne3d": 1429, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 0, 2, 7, 15, 38, 92, 155, 214, 253, 241, 169, 143, 76, 23]", - "total_badness": 1985.519867 + "ne3d": 1130, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 0, 5, 7, 9, 33, 67, 128, 166, 218, 193, 128, 105, 55, 15]", + "total_badness": 1583.5041417 }, { "angles_tet": [ - 24.166, - 139.51 + 23.123, + 136.08 ], "angles_trig": [ - 20.668, - 122.41 + 20.649, + 118.46 ], "ne1d": 90, "ne2d": 570, - "ne3d": 4304, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 33, 83, 198, 407, 568, 809, 873, 756, 456, 108]", - "total_badness": 5505.2501642 + "ne3d": 3400, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 24, 47, 150, 279, 472, 624, 685, 620, 397, 92]", + "total_badness": 4320.4213106 }, { "angles_tet": [ - 25.558, - 139.27 + 24.981, + 137.27 ], "angles_trig": [ - 21.95, - 123.73 + 26.224, + 119.24 ], "ne1d": 146, "ne2d": 1366, - "ne3d": 17360, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 45, 129, 384, 1009, 1811, 2891, 3679, 3823, 2772, 808]", - "total_badness": 21317.445825 + "ne3d": 13329, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 20, 66, 259, 611, 1300, 2171, 2929, 3096, 2207, 667]", + "total_badness": 16228.04137 }, { "angles_tet": [ - 24.327, - 140.29 + 26.716, + 136.56 ], "angles_trig": [ - 25.758, - 120.76 + 27.377, + 122.43 ], "ne1d": 248, "ne2d": 4248, - "ne3d": 112960, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 17, 100, 493, 1726, 4923, 10719, 17771, 23842, 26353, 20492, 6522]", - "total_badness": 136671.30097 + "ne3d": 85698, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 36, 211, 883, 2564, 6070, 11308, 17750, 22003, 18718, 6151]", + "total_badness": 101798.71852 } ], "cylinder.geo": [ { "angles_tet": [ - 19.076, - 144.67 + 19.071, + 144.66 ], "angles_trig": [ - 25.583, - 111.5 + 22.881, + 111.85 ], "ne1d": 52, "ne2d": 286, - "ne3d": 407, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 2, 4, 10, 32, 48, 50, 81, 56, 52, 42, 14, 14]", - "total_badness": 567.546292 + "ne3d": 394, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 2, 6, 18, 38, 45, 53, 70, 51, 48, 40, 12, 9]", + "total_badness": 562.09628542 }, { "angles_tet": [ @@ -849,91 +849,91 @@ 151.98 ], "angles_trig": [ - 25.237, + 24.892, 118.13 ], "ne1d": 24, "ne2d": 66, - "ne3d": 75, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 6, 8, 3, 4, 3, 9, 4, 5, 10, 19, 2, 0]", - "total_badness": 115.49086337 + "ne3d": 71, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 2, 5, 6, 5, 7, 1, 4, 3, 3, 12, 21, 1, 0]", + "total_badness": 109.34437941 }, { "angles_tet": [ - 8.2259, - 167.96 + 13.555, + 156.87 ], "angles_trig": [ - 13.649, - 142.85 + 17.963, + 137.34 ], "ne1d": 36, "ne2d": 152, - "ne3d": 388, - "quality_histogram": "[0, 0, 3, 7, 9, 20, 37, 38, 44, 32, 27, 20, 31, 17, 19, 16, 32, 13, 18, 5]", - "total_badness": 848.42235771 + "ne3d": 385, + "quality_histogram": "[0, 0, 0, 0, 2, 16, 21, 48, 51, 36, 29, 25, 32, 21, 30, 11, 36, 9, 16, 2]", + "total_badness": 763.74730648 }, { "angles_tet": [ - 19.058, - 144.69 + 19.062, + 144.68 ], "angles_trig": [ - 25.588, - 111.45 + 22.836, + 111.85 ], "ne1d": 52, "ne2d": 286, - "ne3d": 407, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 0, 3, 10, 31, 45, 55, 73, 61, 53, 46, 15, 13]", - "total_badness": 563.90833945 + "ne3d": 394, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 2, 6, 18, 38, 45, 52, 71, 52, 46, 41, 12, 9]", + "total_badness": 562.08196742 }, { "angles_tet": [ - 21.985, - 136.08 + 22.162, + 138.1 ], "angles_trig": [ - 24.141, - 119.73 + 23.553, + 118.77 ], "ne1d": 76, "ne2d": 636, - "ne3d": 1183, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 29, 61, 96, 141, 201, 195, 208, 129, 88, 25]", - "total_badness": 1595.7683733 + "ne3d": 1072, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 17, 33, 85, 107, 117, 148, 182, 157, 124, 81, 19]", + "total_badness": 1472.990756 }, { "angles_tet": [ - 27.151, - 138.19 + 25.257, + 138.11 ], "angles_trig": [ - 27.89, - 120.16 + 28.297, + 122.06 ], "ne1d": 124, "ne2d": 1666, - "ne3d": 7963, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 21, 55, 143, 336, 696, 1178, 1725, 1848, 1439, 521]", - "total_badness": 9633.6668545 + "ne3d": 6485, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 21, 51, 115, 285, 583, 949, 1247, 1534, 1287, 407]", + "total_badness": 7848.0881684 } ], "cylsphere.geo": [ { "angles_tet": [ - 16.89, - 146.66 + 16.806, + 141.8 ], "angles_trig": [ - 17.583, - 116.74 + 17.554, + 116.77 ], "ne1d": 104, "ne2d": 494, - "ne3d": 707, - "quality_histogram": "[0, 0, 0, 0, 0, 2, 5, 7, 19, 31, 60, 96, 109, 89, 101, 53, 69, 48, 15, 3]", - "total_badness": 1103.8873525 + "ne3d": 713, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 4, 6, 18, 35, 56, 89, 109, 96, 98, 63, 67, 49, 18, 4]", + "total_badness": 1103.0227656 }, { "angles_tet": [ @@ -952,147 +952,147 @@ }, { "angles_tet": [ - 16.975, - 146.47 + 16.871, + 140.82 ], "angles_trig": [ - 17.533, - 120.59 + 17.529, + 119.51 ], "ne1d": 104, "ne2d": 494, - "ne3d": 706, - "quality_histogram": "[0, 0, 0, 0, 0, 2, 5, 6, 17, 30, 59, 98, 99, 97, 96, 68, 65, 45, 16, 3]", - "total_badness": 1096.9819246 + "ne3d": 700, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 4, 5, 15, 36, 54, 88, 118, 95, 98, 60, 58, 48, 19, 1]", + "total_badness": 1084.4485162 }, { "angles_tet": [ - 19.739, - 142.01 + 21.113, + 140.01 ], "angles_trig": [ - 21.005, - 119.84 + 20.438, + 119.42 ], "ne1d": 152, "ne2d": 1082, - "ne3d": 2842, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 5, 22, 43, 84, 156, 233, 309, 459, 535, 529, 378, 87]", - "total_badness": 3653.5906442 + "ne3d": 2388, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 4, 24, 52, 106, 136, 234, 288, 370, 427, 392, 277, 77]", + "total_badness": 3125.4084069 }, { "angles_tet": [ - 25.231, - 139.3 + 26.125, + 138.82 ], "angles_trig": [ - 25.16, - 122.8 + 25.689, + 119.61 ], "ne1d": 248, "ne2d": 2810, - "ne3d": 17691, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 15, 30, 101, 284, 760, 1672, 2728, 3882, 4123, 3074, 1021]", - "total_badness": 21452.752962 + "ne3d": 14046, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 25, 94, 242, 545, 1189, 2024, 2901, 3398, 2742, 877]", + "total_badness": 16934.768104 } ], "ellipsoid.geo": [ { "angles_tet": [ - 18.985, - 146.67 + 16.259, + 146.82 ], "angles_trig": [ - 18.356, - 122.93 + 16.161, + 118.74 ], "ne1d": 0, "ne2d": 694, - "ne3d": 1271, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 7, 34, 67, 108, 149, 145, 161, 175, 147, 107, 92, 59, 18]", - "total_badness": 1927.202371 + "ne3d": 1189, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 4, 19, 32, 67, 117, 138, 145, 137, 152, 129, 97, 87, 53, 11]", + "total_badness": 1841.4900213 }, { "angles_tet": [ - 3.037, - 173.45 + 3.8936, + 169.13 ], "angles_trig": [ - 6.166, - 164.94 + 8.0156, + 154.68 ], "ne1d": 0, "ne2d": 156, - "ne3d": 623, - "quality_histogram": "[0, 39, 79, 59, 79, 61, 50, 34, 44, 28, 29, 27, 21, 17, 11, 17, 11, 11, 6, 0]", - "total_badness": 2681.6033582 + "ne3d": 719, + "quality_histogram": "[0, 10, 50, 96, 128, 86, 61, 61, 43, 35, 36, 29, 25, 23, 15, 10, 5, 4, 2, 0]", + "total_badness": 2694.7787325 }, { "angles_tet": [ - 20.08, - 138.43 + 19.38, + 137.84 ], "angles_trig": [ - 19.842, - 116.21 + 18.638, + 115.93 ], "ne1d": 0, "ne2d": 384, - "ne3d": 588, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 7, 17, 40, 68, 74, 90, 109, 64, 52, 37, 22, 7]", - "total_badness": 870.44417377 + "ne3d": 580, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 5, 16, 43, 63, 83, 89, 100, 57, 57, 32, 23, 10]", + "total_badness": 859.84790156 }, { "angles_tet": [ - 22.423, - 143.66 + 15.553, + 147.24 ], "angles_trig": [ - 19.734, - 119.91 + 17.934, + 118.38 ], "ne1d": 0, "ne2d": 694, - "ne3d": 1259, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 20, 61, 90, 124, 145, 171, 157, 147, 147, 103, 75, 16]", - "total_badness": 1857.1598634 + "ne3d": 1173, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 2, 13, 34, 63, 78, 153, 141, 171, 132, 121, 110, 83, 58, 13]", + "total_badness": 1791.4868143 }, { "angles_tet": [ - 21.995, - 138.77 + 22.395, + 139.69 ], "angles_trig": [ - 25.46, - 115.64 + 23.33, + 120.75 ], "ne1d": 0, "ne2d": 1578, - "ne3d": 5402, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 2, 7, 41, 142, 273, 437, 588, 900, 1031, 1032, 733, 215]", - "total_badness": 6841.327071 + "ne3d": 4496, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 22, 76, 196, 287, 392, 571, 680, 742, 745, 610, 174]", + "total_badness": 5824.6143444 }, { "angles_tet": [ - 21.744, - 144.6 + 26.843, + 137.54 ], "angles_trig": [ - 26.751, - 121.56 + 24.967, + 122.02 ], "ne1d": 0, "ne2d": 4212, - "ne3d": 37347, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 9, 52, 185, 546, 1522, 3262, 5723, 7899, 8903, 6950, 2294]", - "total_badness": 45064.497842 + "ne3d": 29009, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 40, 143, 381, 1051, 2234, 4090, 5936, 7062, 6060, 2007]", + "total_badness": 34725.637925 } ], "ellipticcone.geo": [ { "angles_tet": [ - 22.591, - 142.57 + 20.015, + 145.85 ], "angles_trig": [ 22.188, @@ -1100,74 +1100,74 @@ ], "ne1d": 174, "ne2d": 1492, - "ne3d": 4964, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 7, 43, 100, 178, 328, 535, 679, 855, 876, 754, 471, 138]", - "total_badness": 6534.2271419 + "ne3d": 4528, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 4, 9, 31, 86, 156, 314, 433, 684, 804, 789, 677, 393, 148]", + "total_badness": 5961.7142634 }, { "angles_tet": [ - 20.274, + 18.684, 150.89 ], "angles_trig": [ - 20.916, + 20.004, 124.89 ], "ne1d": 86, "ne2d": 336, - "ne3d": 472, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 1, 8, 19, 41, 41, 67, 56, 75, 50, 46, 46, 17, 3]", - "total_badness": 706.01592428 + "ne3d": 451, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 3, 3, 7, 25, 29, 40, 55, 63, 60, 58, 50, 39, 14, 5]", + "total_badness": 676.0478602 }, { "angles_tet": [ - 16.162, + 16.488, 153.66 ], "angles_trig": [ - 17.335, + 17.329, 134.96 ], "ne1d": 130, "ne2d": 794, - "ne3d": 1465, - "quality_histogram": "[0, 0, 0, 0, 4, 4, 17, 30, 60, 52, 56, 97, 126, 152, 179, 214, 197, 157, 93, 27]", - "total_badness": 2183.9671538 + "ne3d": 1394, + "quality_histogram": "[0, 0, 0, 0, 2, 3, 18, 28, 67, 51, 60, 93, 149, 162, 160, 198, 154, 141, 87, 21]", + "total_badness": 2106.8764105 }, { "angles_tet": [ - 24.793, - 139.35 + 22.169, + 142.23 ], "angles_trig": [ - 22.188, - 115.41 + 22.159, + 124.34 ], "ne1d": 174, "ne2d": 1492, - "ne3d": 4793, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 13, 37, 104, 208, 400, 610, 865, 966, 855, 555, 177]", - "total_badness": 6095.233585 + "ne3d": 4113, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 36, 79, 174, 349, 532, 800, 782, 720, 469, 162]", + "total_badness": 5232.7862847 }, { "angles_tet": [ - 19.953, - 146.95 + 20.439, + 140.14 ], "angles_trig": [ - 21.682, - 126.99 + 20.798, + 125.5 ], "ne1d": 258, "ne2d": 3318, - "ne3d": 13043, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 13, 38, 140, 250, 506, 938, 1482, 2227, 2518, 2487, 1874, 568]", - "total_badness": 16430.911481 + "ne3d": 11161, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 10, 34, 154, 294, 480, 811, 1301, 1746, 2060, 2144, 1629, 496]", + "total_badness": 14135.519943 }, { "angles_tet": [ - 20.933, - 145.0 + 19.604, + 144.73 ], "angles_trig": [ 22.947, @@ -1175,26 +1175,26 @@ ], "ne1d": 432, "ne2d": 9184, - "ne3d": 68601, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 7, 20, 52, 215, 576, 1430, 3446, 6845, 10798, 14313, 15174, 11928, 3795]", - "total_badness": 83814.221094 + "ne3d": 55066, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 9, 25, 68, 229, 521, 1211, 2463, 4649, 7581, 11114, 12676, 10825, 3693]", + "total_badness": 66783.744886 } ], "ellipticcyl.geo": [ { "angles_tet": [ - 20.908, - 145.52 + 21.138, + 141.47 ], "angles_trig": [ - 21.34, - 121.52 + 21.241, + 127.69 ], "ne1d": 156, "ne2d": 942, - "ne3d": 2141, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 8, 29, 62, 101, 159, 256, 306, 360, 377, 282, 155, 43]", - "total_badness": 2890.2110231 + "ne3d": 2025, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 11, 29, 56, 111, 157, 234, 289, 339, 324, 265, 167, 41]", + "total_badness": 2743.4404901 }, { "angles_tet": [ @@ -1213,63 +1213,63 @@ }, { "angles_tet": [ - 24.683, - 136.88 + 21.771, + 135.32 ], "angles_trig": [ - 24.591, - 114.49 + 24.077, + 116.68 ], "ne1d": 116, "ne2d": 542, - "ne3d": 1031, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 16, 45, 82, 99, 163, 195, 190, 115, 99, 23]", - "total_badness": 1364.8877139 + "ne3d": 956, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 2, 6, 27, 48, 87, 100, 162, 185, 145, 107, 69, 17]", + "total_badness": 1295.4197367 }, { "angles_tet": [ - 21.397, - 134.44 + 21.053, + 138.41 ], "angles_trig": [ - 21.803, - 118.55 + 22.47, + 115.82 ], "ne1d": 156, "ne2d": 942, - "ne3d": 2091, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 15, 36, 73, 126, 232, 306, 377, 391, 305, 180, 48]", - "total_badness": 2749.9153281 + "ne3d": 1938, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 4, 27, 45, 75, 140, 215, 270, 360, 326, 267, 162, 45]", + "total_badness": 2588.7538195 }, { "angles_tet": [ - 23.086, - 137.32 + 23.707, + 138.8 ], "angles_trig": [ - 23.028, - 123.49 + 22.931, + 122.72 ], "ne1d": 232, "ne2d": 2102, - "ne3d": 7935, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 37, 102, 241, 494, 903, 1378, 1579, 1661, 1168, 364]", - "total_badness": 9855.1844761 + "ne3d": 6670, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 3, 18, 54, 120, 269, 480, 787, 1108, 1307, 1294, 949, 280]", + "total_badness": 8387.7773397 }, { "angles_tet": [ - 24.388, - 140.11 + 24.652, + 142.74 ], "angles_trig": [ - 24.673, - 117.96 + 26.03, + 122.42 ], "ne1d": 388, "ne2d": 5914, - "ne3d": 54263, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 56, 235, 720, 1962, 4659, 8302, 11461, 13194, 10237, 3422]", - "total_badness": 65270.192816 + "ne3d": 42620, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 6, 10, 41, 148, 478, 1315, 3033, 5861, 8629, 11050, 9006, 3043]", + "total_badness": 50758.45986 } ], "extrusion.geo": [ @@ -1335,18 +1335,18 @@ }, { "angles_tet": [ - 13.66, - 140.84 + 19.454, + 139.54 ], "angles_trig": [ - 16.325, + 17.955, 118.98 ], "ne1d": 276, "ne2d": 544, - "ne3d": 623, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 4, 11, 18, 30, 47, 70, 73, 69, 81, 73, 75, 52, 17, 3]", - "total_badness": 953.76990078 + "ne3d": 592, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 5, 10, 26, 51, 55, 48, 69, 62, 77, 64, 66, 44, 12, 3]", + "total_badness": 934.42745493 } ], "fichera.geo": [ @@ -1413,38 +1413,38 @@ { "angles_tet": [ 28.158, - 128.52 + 134.7 ], "angles_trig": [ 28.353, - 114.07 + 107.49 ], "ne1d": 96, "ne2d": 108, - "ne3d": 194, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 6, 12, 26, 25, 34, 34, 35, 12, 7]", - "total_badness": 254.28246256 + "ne3d": 182, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 8, 14, 17, 17, 33, 35, 31, 19, 6]", + "total_badness": 236.36384433 }, { "angles_tet": [ - 28.713, - 135.86 + 27.898, + 128.74 ], "angles_trig": [ - 27.552, + 27.032, 105.69 ], "ne1d": 144, "ne2d": 264, - "ne3d": 484, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 23, 37, 65, 105, 72, 87, 59, 23]", - "total_badness": 613.06762292 + "ne3d": 460, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 13, 22, 40, 61, 97, 92, 63, 57, 14]", + "total_badness": 587.30107216 } ], "hinge.stl": [ { "angles_tet": [ - 15.803, + 15.51, 152.56 ], "angles_trig": [ @@ -1453,9 +1453,9 @@ ], "ne1d": 456, "ne2d": 1066, - "ne3d": 1687, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 6, 10, 26, 38, 76, 99, 143, 201, 242, 289, 221, 197, 109, 29]", - "total_badness": 2378.1819496 + "ne3d": 1640, + "quality_histogram": "[0, 0, 0, 0, 0, 2, 4, 13, 25, 33, 76, 92, 138, 201, 259, 270, 219, 179, 106, 23]", + "total_badness": 2318.6977642 }, { "angles_tet": [ @@ -1468,9 +1468,9 @@ ], "ne1d": 298, "ne2d": 502, - "ne3d": 610, - "quality_histogram": "[0, 0, 3, 5, 10, 16, 27, 39, 43, 38, 55, 65, 64, 51, 49, 62, 38, 24, 16, 5]", - "total_badness": 1160.8468966 + "ne3d": 604, + "quality_histogram": "[0, 0, 4, 5, 10, 16, 28, 40, 45, 41, 57, 62, 61, 50, 46, 59, 37, 24, 14, 5]", + "total_badness": 1166.4155254 }, { "angles_tet": [ @@ -1483,24 +1483,24 @@ ], "ne1d": 370, "ne2d": 758, - "ne3d": 976, - "quality_histogram": "[0, 0, 0, 0, 0, 8, 8, 24, 34, 29, 48, 79, 109, 131, 145, 143, 92, 65, 49, 12]", - "total_badness": 1491.398109 + "ne3d": 980, + "quality_histogram": "[0, 0, 0, 0, 0, 8, 8, 23, 33, 29, 49, 79, 112, 130, 144, 142, 95, 67, 49, 12]", + "total_badness": 1495.506642 }, { "angles_tet": [ - 17.097, + 17.101, 147.54 ], "angles_trig": [ 18.124, - 131.28 + 134.43 ], "ne1d": 516, "ne2d": 1454, - "ne3d": 2329, - "quality_histogram": "[0, 0, 0, 0, 0, 2, 2, 13, 22, 39, 68, 145, 210, 272, 358, 330, 328, 308, 185, 47]", - "total_badness": 3218.2251987 + "ne3d": 2261, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 2, 14, 25, 41, 74, 124, 217, 266, 350, 312, 325, 305, 161, 44]", + "total_badness": 3135.9282664 }, { "angles_tet": [ @@ -1513,24 +1513,24 @@ ], "ne1d": 722, "ne2d": 2768, - "ne3d": 6516, - "quality_histogram": "[0, 0, 0, 0, 1, 0, 0, 3, 16, 30, 61, 162, 306, 578, 835, 999, 1088, 1188, 967, 282]", - "total_badness": 8307.9517383 + "ne3d": 5864, + "quality_histogram": "[0, 0, 0, 0, 1, 0, 0, 2, 11, 29, 52, 133, 309, 591, 807, 914, 970, 977, 820, 248]", + "total_badness": 7521.3448919 }, { "angles_tet": [ - 17.699, - 146.43 + 20.122, + 141.52 ], "angles_trig": [ - 21.484, + 22.174, 131.41 ], "ne1d": 1862, "ne2d": 18540, - "ne3d": 124449, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 3, 28, 103, 330, 992, 2574, 6268, 12200, 19666, 26199, 27602, 21543, 6939]", - "total_badness": 151912.05274 + "ne3d": 98702, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 14, 70, 229, 721, 1862, 4505, 8530, 14453, 20299, 23204, 18602, 6211]", + "total_badness": 119526.37454 } ], "lense.in2d": [ @@ -1632,14 +1632,14 @@ 125.39 ], "angles_trig": [ - 35.225, - 109.34 + 35.264, + 90.0 ], "ne1d": 44, "ne2d": 28, - "ne3d": 24, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 20, 0, 2, 0, 0, 0, 0]", - "total_badness": 36.197580222 + "ne3d": 18, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 12, 0, 3, 0, 0, 0, 0]", + "total_badness": 27.2783989 }, { "angles_tet": [ @@ -1677,29 +1677,29 @@ 125.39 ], "angles_trig": [ - 35.225, - 109.34 + 35.264, + 90.0 ], "ne1d": 44, "ne2d": 28, - "ne3d": 24, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 20, 0, 2, 0, 0, 0, 0]", - "total_badness": 36.197580222 + "ne3d": 18, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 12, 0, 3, 0, 0, 0, 0]", + "total_badness": 27.2783989 }, { "angles_tet": [ - 31.097, - 125.11 + 30.544, + 123.51 ], "angles_trig": [ 28.101, - 92.426 + 92.749 ], "ne1d": 80, "ne2d": 66, - "ne3d": 73, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 20, 13, 2, 3, 6]", - "total_badness": 97.336071703 + "ne3d": 68, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 8, 11, 12, 12, 4, 7, 3]", + "total_badness": 90.370075048 }, { "angles_tet": [ @@ -1712,56 +1712,56 @@ ], "ne1d": 122, "ne2d": 192, - "ne3d": 302, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 10, 16, 35, 31, 45, 51, 66, 34, 10]", - "total_badness": 388.25333392 + "ne3d": 297, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 10, 11, 37, 45, 39, 44, 64, 33, 10]", + "total_badness": 382.68128655 } ], "manyholes.geo": [ { "angles_tet": [ 16.576, - 150.57 + 148.83 ], "angles_trig": [ - 14.257, + 18.114, 139.37 ], "ne1d": 5886, "ne2d": 45968, - "ne3d": 174910, - "quality_histogram": "[0, 0, 0, 0, 1, 5, 14, 73, 222, 697, 1998, 5753, 10628, 18811, 26671, 30102, 30756, 26507, 18228, 4444]", - "total_badness": 228331.30467 + "ne3d": 155393, + "quality_histogram": "[0, 0, 0, 0, 0, 4, 12, 72, 296, 756, 2181, 5888, 10154, 16863, 23433, 25524, 26388, 23378, 16376, 4068]", + "total_badness": 203913.71319 }, { "angles_tet": [ - 15.357, - 146.85 + 14.027, + 148.8 ], "angles_trig": [ - 13.962, - 131.76 + 13.388, + 135.25 ], "ne1d": 2746, "ne2d": 10430, - "ne3d": 23613, - "quality_histogram": "[0, 0, 0, 0, 3, 4, 38, 128, 333, 616, 1323, 2043, 2663, 3190, 3103, 3127, 2800, 2365, 1512, 365]", - "total_badness": 34030.293071 + "ne3d": 22408, + "quality_histogram": "[0, 0, 0, 0, 5, 4, 39, 139, 329, 643, 1287, 2030, 2636, 2981, 2830, 2754, 2611, 2224, 1513, 383]", + "total_badness": 32453.511775 }, { "angles_tet": [ 13.279, - 151.78 + 150.54 ], "angles_trig": [ 12.439, - 135.02 + 139.33 ], "ne1d": 4106, "ne2d": 23286, - "ne3d": 63030, - "quality_histogram": "[0, 0, 0, 0, 30, 62, 162, 292, 580, 1164, 2182, 3657, 5771, 7813, 9070, 9774, 9319, 7479, 4442, 1233]", - "total_badness": 87769.911043 + "ne3d": 57573, + "quality_histogram": "[0, 0, 0, 0, 32, 67, 185, 316, 648, 1283, 2258, 3684, 5611, 7608, 8411, 8563, 7999, 6293, 3645, 970]", + "total_badness": 81418.094713 } ], "manyholes2.geo": [ @@ -1776,9 +1776,9 @@ ], "ne1d": 10202, "ne2d": 40838, - "ne3d": 104127, - "quality_histogram": "[0, 0, 0, 0, 3, 18, 84, 259, 659, 1672, 3632, 6648, 10044, 12303, 13936, 15104, 15521, 13413, 8607, 2224]", - "total_badness": 143245.60742 + "ne3d": 97503, + "quality_histogram": "[0, 0, 0, 0, 3, 17, 82, 272, 640, 1651, 3507, 6538, 9622, 11789, 13182, 13731, 13803, 12181, 8310, 2175]", + "total_badness": 134656.05974 } ], "matrix.geo": [ @@ -1793,24 +1793,24 @@ ], "ne1d": 174, "ne2d": 1070, - "ne3d": 4605, - "quality_histogram": "[0, 0, 10, 93, 172, 67, 23, 59, 127, 167, 274, 384, 425, 551, 565, 537, 507, 394, 207, 43]", - "total_badness": 7983.039378 + "ne3d": 4235, + "quality_histogram": "[0, 0, 10, 93, 172, 70, 19, 68, 134, 172, 258, 362, 405, 477, 504, 485, 432, 332, 191, 51]", + "total_badness": 7498.1647914 }, { "angles_tet": [ 6.4945, - 167.02 + 166.83 ], "angles_trig": [ - 8.2262, - 162.29 + 8.2716, + 155.6 ], "ne1d": 106, "ne2d": 314, - "ne3d": 866, - "quality_histogram": "[0, 0, 7, 35, 44, 55, 79, 65, 98, 97, 80, 71, 54, 52, 46, 36, 23, 21, 3, 0]", - "total_badness": 2102.426685 + "ne3d": 870, + "quality_histogram": "[0, 0, 4, 30, 45, 52, 74, 67, 102, 94, 85, 79, 71, 50, 43, 32, 22, 18, 2, 0]", + "total_badness": 2071.1392811 }, { "angles_tet": [ @@ -1823,9 +1823,9 @@ ], "ne1d": 132, "ne2d": 588, - "ne3d": 1793, - "quality_histogram": "[0, 0, 2, 14, 30, 78, 151, 120, 83, 100, 128, 136, 179, 207, 182, 145, 116, 60, 49, 13]", - "total_badness": 3492.8420363 + "ne3d": 1733, + "quality_histogram": "[0, 0, 2, 14, 30, 79, 151, 126, 80, 114, 115, 148, 155, 191, 164, 139, 98, 75, 43, 9]", + "total_badness": 3419.5577951 }, { "angles_tet": [ @@ -1838,39 +1838,39 @@ ], "ne1d": 174, "ne2d": 1070, - "ne3d": 4499, - "quality_histogram": "[0, 0, 10, 93, 172, 65, 17, 59, 102, 135, 260, 297, 395, 533, 555, 535, 544, 426, 248, 53]", - "total_badness": 7695.7986256 + "ne3d": 4033, + "quality_histogram": "[0, 0, 10, 93, 172, 65, 19, 59, 122, 145, 235, 314, 397, 430, 496, 463, 425, 325, 203, 60]", + "total_badness": 7130.4305505 }, { "angles_tet": [ - 13.101, - 145.56 + 13.107, + 146.8 ], "angles_trig": [ - 15.887, + 15.013, 143.02 ], "ne1d": 248, "ne2d": 2256, - "ne3d": 16136, - "quality_histogram": "[0, 0, 0, 0, 0, 6, 21, 57, 96, 192, 326, 561, 1002, 1470, 2088, 2546, 2735, 2664, 1811, 561]", - "total_badness": 21293.088211 + "ne3d": 13330, + "quality_histogram": "[0, 0, 0, 0, 0, 7, 24, 59, 111, 200, 334, 577, 923, 1244, 1693, 1968, 2226, 2106, 1450, 408]", + "total_badness": 17854.021232 }, { "angles_tet": [ - 18.113, - 145.19 + 18.203, + 144.77 ], "angles_trig": [ 17.821, - 130.51 + 127.38 ], "ne1d": 418, "ne2d": 5914, - "ne3d": 101287, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 6, 8, 42, 111, 349, 979, 2418, 5321, 10105, 15903, 20923, 22509, 17204, 5408]", - "total_badness": 124144.15589 + "ne3d": 77980, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 4, 10, 42, 95, 272, 677, 1671, 3677, 6953, 11122, 15643, 18219, 14772, 4823]", + "total_badness": 94762.484886 } ], "ortho.geo": [ @@ -1936,65 +1936,65 @@ }, { "angles_tet": [ - 27.31, - 136.31 + 33.047, + 131.72 ], "angles_trig": [ - 32.958, - 102.54 + 27.996, + 104.14 ], "ne1d": 48, "ne2d": 36, - "ne3d": 57, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 2, 9, 11, 10, 12, 4, 1, 2, 0]", - "total_badness": 83.838340747 + "ne3d": 38, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 8, 4, 2, 13, 1, 2, 4, 0]", + "total_badness": 53.235534633 }, { "angles_tet": [ 27.731, - 134.89 + 129.3 ], "angles_trig": [ 28.064, - 104.8 + 103.04 ], "ne1d": 72, "ne2d": 104, - "ne3d": 157, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 9, 22, 17, 29, 25, 28, 10, 6]", - "total_badness": 206.30371107 + "ne3d": 150, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 6, 23, 14, 31, 21, 29, 13, 5]", + "total_badness": 194.78642472 } ], "part1.stl": [ { "angles_tet": [ - 22.309, - 138.64 + 25.648, + 134.92 ], "angles_trig": [ - 24.223, - 119.73 + 21.656, + 123.23 ], "ne1d": 170, "ne2d": 400, - "ne3d": 1012, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 19, 49, 78, 118, 162, 152, 175, 148, 82, 20]", - "total_badness": 1350.0933715 + "ne3d": 935, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 31, 50, 72, 95, 153, 154, 144, 130, 85, 15]", + "total_badness": 1253.3564966 }, { "angles_tet": [ - 10.724, + 11.063, 160.47 ], "angles_trig": [ - 11.879, + 16.003, 146.61 ], "ne1d": 134, "ne2d": 254, - "ne3d": 459, - "quality_histogram": "[0, 0, 0, 4, 2, 6, 11, 12, 12, 23, 30, 43, 52, 48, 53, 58, 48, 29, 25, 3]", - "total_badness": 752.19748843 + "ne3d": 403, + "quality_histogram": "[0, 0, 0, 3, 2, 5, 11, 9, 11, 14, 34, 54, 47, 42, 47, 42, 38, 29, 13, 2]", + "total_badness": 667.71392521 }, { "angles_tet": [ @@ -2002,61 +2002,61 @@ 149.16 ], "angles_trig": [ - 24.868, - 118.45 + 23.265, + 118.76 ], "ne1d": 194, "ne2d": 554, - "ne3d": 1598, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 5, 6, 18, 57, 108, 152, 233, 286, 302, 240, 158, 32]", - "total_badness": 2093.4873417 + "ne3d": 1392, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 3, 2, 14, 58, 98, 142, 225, 231, 282, 193, 112, 31]", + "total_badness": 1831.8327918 }, { "angles_tet": [ 21.368, - 141.27 + 141.6 ], "angles_trig": [ - 26.65, - 112.07 + 26.845, + 111.5 ], "ne1d": 266, "ne2d": 958, - "ne3d": 4158, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 5, 9, 19, 53, 126, 298, 501, 705, 822, 870, 591, 159]", - "total_badness": 5194.9903517 + "ne3d": 3408, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 20, 57, 112, 222, 436, 581, 684, 679, 455, 154]", + "total_badness": 4268.0697316 }, { "angles_tet": [ - 22.28, - 142.66 + 25.008, + 143.1 ], "angles_trig": [ - 25.824, - 121.12 + 25.338, + 116.0 ], "ne1d": 674, "ne2d": 6330, - "ne3d": 73067, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 25, 105, 385, 1301, 3396, 6922, 11536, 15281, 16948, 13099, 4066]", - "total_badness": 88672.954227 + "ne3d": 56477, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 71, 242, 741, 2061, 4421, 7889, 11520, 13883, 11827, 3801]", + "total_badness": 67611.072045 } ], "period.geo": [ { "angles_tet": [ - 14.172, - 145.15 + 15.419, + 147.86 ], "angles_trig": [ - 12.712, + 14.285, 130.0 ], "ne1d": 344, "ne2d": 1040, - "ne3d": 3065, - "quality_histogram": "[0, 0, 0, 1, 0, 8, 20, 28, 50, 87, 139, 254, 327, 419, 437, 402, 357, 308, 183, 45]", - "total_badness": 4471.8813332 + "ne3d": 2826, + "quality_histogram": "[0, 0, 0, 0, 1, 7, 23, 28, 47, 95, 145, 233, 313, 404, 357, 365, 342, 282, 149, 35]", + "total_badness": 4160.1848769 }, { "angles_tet": [ @@ -2064,64 +2064,64 @@ 170.6 ], "angles_trig": [ - 10.412, - 140.67 + 11.284, + 146.85 ], "ne1d": 160, "ne2d": 234, - "ne3d": 402, - "quality_histogram": "[0, 0, 3, 8, 6, 11, 18, 17, 21, 28, 34, 34, 50, 48, 25, 34, 35, 19, 10, 1]", - "total_badness": 773.15414955 + "ne3d": 404, + "quality_histogram": "[0, 0, 2, 7, 7, 10, 18, 23, 23, 27, 38, 40, 40, 41, 20, 35, 30, 26, 13, 4]", + "total_badness": 776.63612701 }, { "angles_tet": [ - 9.3309, - 164.02 + 12.462, + 161.3 ], "angles_trig": [ - 10.589, - 154.73 + 15.538, + 141.61 ], "ne1d": 232, "ne2d": 494, - "ne3d": 1169, - "quality_histogram": "[0, 0, 1, 4, 14, 27, 44, 59, 75, 81, 83, 130, 130, 132, 121, 107, 75, 57, 25, 4]", - "total_badness": 2106.7564554 + "ne3d": 1200, + "quality_histogram": "[0, 0, 0, 0, 9, 17, 37, 51, 68, 82, 103, 138, 131, 133, 133, 115, 76, 75, 28, 4]", + "total_badness": 2067.8813464 }, { "angles_tet": [ - 14.172, - 145.15 + 16.492, + 144.48 ], "angles_trig": [ - 15.018, + 14.285, 130.0 ], "ne1d": 344, "ne2d": 1040, - "ne3d": 3014, - "quality_histogram": "[0, 0, 0, 0, 0, 7, 19, 27, 44, 70, 118, 236, 274, 393, 459, 410, 390, 313, 200, 54]", - "total_badness": 4326.3204667 + "ne3d": 2744, + "quality_histogram": "[0, 0, 0, 0, 0, 6, 21, 26, 42, 87, 142, 223, 290, 367, 364, 339, 335, 314, 150, 38]", + "total_badness": 4004.5532677 }, { "angles_tet": [ - 20.132, - 145.06 + 20.66, + 142.83 ], "angles_trig": [ - 23.036, - 125.82 + 23.275, + 126.57 ], "ne1d": 480, "ne2d": 2200, - "ne3d": 11579, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 5, 6, 37, 79, 241, 508, 972, 1450, 2025, 2203, 2142, 1482, 429]", - "total_badness": 14696.222297 + "ne3d": 9834, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 8, 34, 86, 214, 499, 795, 1292, 1690, 1874, 1774, 1247, 319]", + "total_badness": 12535.447884 }, { "angles_tet": [ - 20.751, - 144.48 + 20.439, + 143.63 ], "angles_trig": [ 20.259, @@ -2129,9 +2129,9 @@ ], "ne1d": 820, "ne2d": 6174, - "ne3d": 68319, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 4, 13, 57, 176, 519, 1477, 3598, 7004, 10873, 14367, 15055, 11494, 3682]", - "total_badness": 83579.590643 + "ne3d": 53651, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 19, 57, 137, 388, 1037, 2328, 4684, 7756, 10834, 12631, 10267, 3510]", + "total_badness": 64920.508941 } ], "plane.stl": [ @@ -2146,29 +2146,29 @@ ], "ne1d": 968, "ne2d": 2398, - "ne3d": 7433, - "quality_histogram": "[4, 10, 18, 34, 51, 39, 47, 55, 90, 123, 218, 359, 584, 869, 1047, 1147, 1134, 911, 553, 140]", - "total_badness": 11069.021579 + "ne3d": 6675, + "quality_histogram": "[4, 7, 20, 37, 52, 41, 50, 58, 98, 139, 214, 322, 525, 815, 962, 1014, 975, 773, 461, 108]", + "total_badness": 10130.244557 }, { "angles_tet": [ - 1.1363, - 170.33 + 1.3517, + 170.75 ], "angles_trig": [ - 4.3498, - 157.4 + 4.564, + 154.31 ], "ne1d": 622, "ne2d": 850, - "ne3d": 1082, - "quality_histogram": "[2, 23, 36, 72, 73, 72, 92, 119, 99, 89, 83, 84, 61, 56, 35, 35, 30, 15, 6, 0]", - "total_badness": 3275.0688714 + "ne3d": 1105, + "quality_histogram": "[2, 15, 34, 71, 83, 79, 99, 118, 95, 87, 91, 92, 64, 52, 36, 38, 26, 16, 7, 0]", + "total_badness": 3287.2091868 }, { "angles_tet": [ - 1.1052, - 172.62 + 1.1106, + 172.54 ], "angles_trig": [ 1.5068, @@ -2176,9 +2176,9 @@ ], "ne1d": 762, "ne2d": 1382, - "ne3d": 2364, - "quality_histogram": "[2, 16, 28, 51, 35, 52, 69, 75, 106, 128, 170, 196, 251, 280, 247, 250, 221, 119, 56, 12]", - "total_badness": 4688.7471339 + "ne3d": 2264, + "quality_histogram": "[2, 11, 26, 51, 43, 62, 76, 82, 112, 145, 187, 188, 233, 270, 236, 205, 188, 87, 43, 17]", + "total_badness": 4579.5008368 }, { "angles_tet": [ @@ -2187,13 +2187,13 @@ ], "angles_trig": [ 1.7959, - 144.7 + 149.13 ], "ne1d": 1032, "ne2d": 2540, - "ne3d": 7523, - "quality_histogram": "[3, 9, 18, 36, 53, 53, 56, 55, 68, 104, 192, 266, 484, 763, 1025, 1214, 1274, 1049, 621, 180]", - "total_badness": 10993.437815 + "ne3d": 6309, + "quality_histogram": "[3, 7, 19, 37, 49, 54, 57, 46, 71, 116, 180, 246, 412, 602, 830, 1058, 999, 892, 488, 143]", + "total_badness": 9404.1925779 }, { "angles_tet": [ @@ -2206,123 +2206,123 @@ ], "ne1d": 1632, "ne2d": 5956, - "ne3d": 30758, - "quality_histogram": "[2, 6, 11, 9, 18, 47, 53, 60, 89, 142, 264, 584, 1186, 2340, 3713, 5130, 6048, 5861, 4073, 1122]", - "total_badness": 39585.722892 + "ne3d": 24659, + "quality_histogram": "[2, 6, 10, 10, 18, 46, 53, 62, 89, 129, 244, 459, 933, 1809, 2876, 4088, 4869, 4724, 3261, 971]", + "total_badness": 31845.585286 }, { "angles_tet": [ - 1.2295, - 164.14 + 1.2302, + 164.19 ], "angles_trig": [ 0.77944, - 140.91 + 144.06 ], "ne1d": 3250, "ne2d": 24762, - "ne3d": 288468, - "quality_histogram": "[4, 8, 12, 11, 11, 16, 22, 40, 83, 219, 643, 2057, 5622, 13897, 28155, 45451, 61031, 65686, 50321, 15179]", - "total_badness": 352107.63072 + "ne3d": 221077, + "quality_histogram": "[4, 6, 13, 13, 16, 17, 22, 43, 83, 150, 447, 1259, 3460, 8531, 17761, 31190, 45960, 53819, 43964, 14319]", + "total_badness": 266516.21683 } ], "revolution.geo": [ { "angles_tet": [ - 18.192, - 146.62 + 15.312, + 149.05 ], "angles_trig": [ - 16.784, - 125.93 + 17.425, + 131.61 ], "ne1d": 320, "ne2d": 2790, - "ne3d": 7801, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 19, 85, 222, 383, 609, 790, 928, 1072, 1122, 1033, 869, 535, 133]", - "total_badness": 11028.386222 + "ne3d": 7098, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 10, 59, 137, 244, 430, 608, 739, 858, 884, 988, 887, 698, 465, 91]", + "total_badness": 10312.576827 }, { "angles_tet": [ - 17.091, - 148.15 + 17.49, + 137.78 ], "angles_trig": [ - 16.667, - 127.75 + 16.251, + 128.55 ], "ne1d": 160, "ne2d": 658, - "ne3d": 1005, - "quality_histogram": "[0, 0, 0, 0, 0, 2, 9, 42, 40, 83, 112, 155, 132, 130, 95, 80, 55, 35, 29, 6]", - "total_badness": 1680.3470075 + "ne3d": 958, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 10, 42, 64, 108, 121, 152, 113, 121, 84, 45, 41, 33, 20, 4]", + "total_badness": 1663.3751748 }, { "angles_tet": [ - 17.856, - 145.3 + 20.28, + 142.22 ], "angles_trig": [ - 20.576, - 127.13 + 20.442, + 126.55 ], "ne1d": 240, "ne2d": 1584, - "ne3d": 3489, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 5, 46, 105, 191, 377, 434, 538, 475, 397, 391, 272, 194, 63]", - "total_badness": 5083.2288127 + "ne3d": 3266, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 12, 39, 98, 204, 357, 454, 494, 440, 396, 306, 237, 180, 49]", + "total_badness": 4799.8542284 }, { "angles_tet": [ - 16.533, - 145.17 + 18.211, + 143.27 ], "angles_trig": [ - 16.65, - 126.12 + 18.435, + 134.15 ], "ne1d": 320, "ne2d": 2790, - "ne3d": 7588, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 3, 3, 53, 130, 283, 474, 732, 845, 1029, 1136, 1138, 955, 650, 157]", - "total_badness": 10417.772443 + "ne3d": 6652, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 32, 94, 175, 350, 562, 668, 763, 864, 885, 906, 777, 476, 98]", + "total_badness": 9455.157368 }, { "angles_tet": [ - 19.966, - 146.33 + 21.015, + 144.61 ], "angles_trig": [ - 22.508, - 127.48 + 21.826, + 129.36 ], "ne1d": 480, "ne2d": 6314, - "ne3d": 31852, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 4, 10, 39, 160, 534, 1078, 2215, 3774, 5529, 6417, 6291, 4543, 1258]", - "total_badness": 39852.048962 + "ne3d": 25177, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 14, 81, 233, 674, 1207, 1892, 2928, 4081, 4659, 4811, 3580, 1014]", + "total_badness": 31907.54831 }, { "angles_tet": [ - 24.204, - 141.06 + 23.38, + 143.42 ], "angles_trig": [ - 25.313, - 123.86 + 24.17, + 122.83 ], "ne1d": 800, "ne2d": 16950, - "ne3d": 198677, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 5, 71, 314, 1001, 3314, 8614, 18130, 30449, 42143, 46676, 36551, 11409]", - "total_badness": 240440.79679 + "ne3d": 152833, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 5, 38, 200, 745, 2342, 5684, 12089, 21053, 31272, 37454, 31439, 10512]", + "total_badness": 183225.05641 } ], "sculpture.geo": [ { "angles_tet": [ - 17.893, - 145.39 + 16.244, + 149.74 ], "angles_trig": [ 26.076, @@ -2330,9 +2330,9 @@ ], "ne1d": 192, "ne2d": 358, - "ne3d": 399, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 2, 5, 7, 20, 31, 46, 60, 68, 73, 56, 20, 8, 2]", - "total_badness": 577.70426627 + "ne3d": 394, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 3, 2, 4, 7, 21, 29, 45, 59, 67, 72, 56, 19, 8, 2]", + "total_badness": 573.04023539 }, { "angles_tet": [ @@ -2366,8 +2366,8 @@ }, { "angles_tet": [ - 17.893, - 145.39 + 16.244, + 149.74 ], "angles_trig": [ 26.076, @@ -2375,9 +2375,9 @@ ], "ne1d": 192, "ne2d": 358, - "ne3d": 399, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 2, 5, 7, 20, 31, 46, 60, 68, 73, 56, 20, 8, 2]", - "total_badness": 577.70426674 + "ne3d": 394, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 3, 2, 4, 7, 21, 29, 45, 59, 67, 72, 56, 19, 8, 2]", + "total_badness": 573.04023539 }, { "angles_tet": [ @@ -2390,14 +2390,14 @@ ], "ne1d": 288, "ne2d": 912, - "ne3d": 1234, - "quality_histogram": "[0, 0, 0, 0, 2, 2, 10, 23, 34, 70, 97, 125, 108, 125, 129, 127, 148, 139, 80, 15]", - "total_badness": 1875.2535427 + "ne3d": 1233, + "quality_histogram": "[0, 0, 0, 0, 2, 2, 8, 22, 34, 71, 98, 125, 108, 125, 129, 127, 148, 139, 80, 15]", + "total_badness": 1870.536903 }, { "angles_tet": [ 16.0, - 149.5 + 151.02 ], "angles_trig": [ 17.232, @@ -2405,101 +2405,101 @@ ], "ne1d": 480, "ne2d": 2314, - "ne3d": 6590, - "quality_histogram": "[0, 0, 0, 0, 2, 3, 11, 9, 20, 24, 53, 89, 214, 406, 753, 1055, 1353, 1311, 962, 325]", - "total_badness": 8284.1518654 + "ne3d": 5632, + "quality_histogram": "[0, 0, 0, 0, 2, 4, 12, 12, 10, 28, 51, 90, 168, 362, 625, 886, 1152, 1079, 865, 286]", + "total_badness": 7095.2341945 } ], "shaft.geo": [ { "angles_tet": [ - 0.77317, - 178.45 + 0.89578, + 177.45 ], "angles_trig": [ - 3.7821, - 161.18 + 2.4127, + 168.18 ], "ne1d": 708, "ne2d": 1656, - "ne3d": 2579, - "quality_histogram": "[6, 6, 11, 16, 40, 43, 44, 57, 51, 108, 245, 345, 306, 221, 245, 277, 262, 186, 89, 21]", - "total_badness": 4786.5417646 + "ne3d": 2582, + "quality_histogram": "[11, 13, 11, 21, 32, 34, 40, 54, 62, 136, 244, 353, 302, 231, 238, 265, 252, 168, 93, 22]", + "total_badness": 5045.5018779 }, { "angles_tet": [ 10.898, - 152.19 + 157.91 ], "angles_trig": [ 10.094, - 125.8 + 120.23 ], "ne1d": 410, "ne2d": 542, - "ne3d": 691, - "quality_histogram": "[0, 0, 0, 1, 1, 4, 4, 9, 19, 25, 43, 49, 57, 74, 79, 85, 72, 87, 46, 36]", - "total_badness": 1015.4381053 + "ne3d": 693, + "quality_histogram": "[0, 0, 0, 1, 1, 6, 4, 7, 18, 30, 36, 55, 57, 76, 69, 85, 51, 73, 89, 35]", + "total_badness": 1018.6548699 }, { "angles_tet": [ - 6.6221, - 168.6 + 6.7545, + 168.94 ], "angles_trig": [ - 11.676, - 150.45 + 9.6804, + 149.02 ], "ne1d": 510, "ne2d": 912, - "ne3d": 1725, - "quality_histogram": "[0, 0, 14, 48, 53, 86, 98, 115, 101, 89, 119, 130, 142, 144, 172, 153, 145, 62, 38, 16]", - "total_badness": 3594.6132948 + "ne3d": 1849, + "quality_histogram": "[0, 0, 6, 17, 40, 79, 74, 123, 124, 105, 136, 149, 175, 161, 189, 176, 144, 77, 50, 24]", + "total_badness": 3540.3025687 }, { "angles_tet": [ - 9.2505, - 164.15 + 8.8864, + 166.45 ], "angles_trig": [ - 13.646, - 152.2 + 9.4306, + 152.63 ], "ne1d": 708, "ne2d": 1656, - "ne3d": 2569, - "quality_histogram": "[0, 0, 1, 10, 28, 17, 37, 49, 55, 119, 232, 380, 296, 240, 235, 275, 279, 196, 98, 22]", - "total_badness": 4173.0296091 + "ne3d": 2547, + "quality_histogram": "[0, 0, 2, 12, 28, 32, 20, 43, 81, 141, 235, 340, 290, 240, 250, 297, 258, 175, 79, 24]", + "total_badness": 4200.3293929 }, { "angles_tet": [ 14.508, - 147.48 + 147.74 ], "angles_trig": [ - 19.349, - 121.73 + 18.623, + 122.73 ], "ne1d": 1134, "ne2d": 4082, - "ne3d": 11002, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 37, 78, 169, 306, 516, 860, 1360, 1865, 2097, 1946, 1376, 390]", - "total_badness": 14144.927135 + "ne3d": 9578, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 2, 33, 87, 162, 317, 526, 787, 1147, 1540, 1717, 1709, 1194, 355]", + "total_badness": 12393.785687 }, { "angles_tet": [ - 24.097, - 142.76 + 22.905, + 145.07 ], "angles_trig": [ - 24.93, - 117.45 + 23.644, + 125.33 ], "ne1d": 1792, "ne2d": 10504, - "ne3d": 63968, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 7, 43, 124, 465, 1348, 3174, 6274, 10228, 13567, 14446, 10774, 3518]", - "total_badness": 78050.614411 + "ne3d": 50516, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 4, 24, 103, 310, 989, 2215, 4358, 7483, 10550, 11873, 9522, 3085]", + "total_badness": 61132.694461 } ], "sphere.geo": [ @@ -2565,33 +2565,33 @@ }, { "angles_tet": [ - 22.983, - 128.09 + 21.541, + 133.99 ], "angles_trig": [ - 22.196, - 111.76 + 22.184, + 111.63 ], "ne1d": 0, "ne2d": 256, "ne3d": 363, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 19, 33, 58, 54, 54, 32, 38, 31, 24, 12, 6]", - "total_badness": 551.13017473 + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 16, 43, 51, 48, 54, 38, 35, 30, 27, 12, 6]", + "total_badness": 551.63000225 }, { "angles_tet": [ - 30.456, - 130.64 + 27.27, + 135.23 ], "angles_trig": [ - 29.846, - 110.98 + 27.012, + 116.77 ], "ne1d": 0, "ne2d": 658, - "ne3d": 2272, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 24, 67, 135, 263, 417, 457, 440, 354, 113]", - "total_badness": 2808.9045443 + "ne3d": 1875, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 32, 54, 138, 203, 297, 374, 359, 315, 94]", + "total_badness": 2326.6685303 } ], "sphereincube.geo": [ @@ -2636,9 +2636,9 @@ ], "ne1d": 30, "ne2d": 100, - "ne3d": 242, - "quality_histogram": "[0, 0, 6, 15, 20, 43, 45, 12, 21, 10, 21, 8, 12, 4, 4, 6, 4, 7, 3, 1]", - "total_badness": 732.39744465 + "ne3d": 236, + "quality_histogram": "[0, 0, 5, 19, 15, 43, 46, 15, 18, 10, 18, 7, 13, 5, 5, 3, 5, 7, 1, 1]", + "total_badness": 719.47619178 }, { "angles_tet": [ @@ -2658,32 +2658,32 @@ { "angles_tet": [ 14.198, - 139.87 + 139.5 ], "angles_trig": [ - 16.51, - 128.49 + 16.856, + 128.1 ], "ne1d": 74, "ne2d": 412, - "ne3d": 1683, - "quality_histogram": "[0, 0, 0, 0, 0, 5, 3, 12, 21, 29, 71, 92, 153, 214, 235, 260, 226, 185, 130, 47]", - "total_badness": 2358.026283 + "ne3d": 1528, + "quality_histogram": "[0, 0, 0, 0, 0, 4, 3, 13, 19, 42, 60, 98, 134, 187, 217, 221, 223, 168, 102, 37]", + "total_badness": 2162.2296255 }, { "angles_tet": [ - 21.685, - 143.39 + 25.166, + 141.75 ], "angles_trig": [ - 22.231, - 124.74 + 25.169, + 121.79 ], "ne1d": 122, "ne2d": 1066, - "ne3d": 13948, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 6, 29, 82, 251, 470, 915, 1514, 2191, 2843, 2808, 2138, 699]", - "total_badness": 17373.704294 + "ne3d": 10781, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 36, 102, 284, 653, 1130, 1662, 2237, 2320, 1773, 574]", + "total_badness": 13258.625001 } ], "square.in2d": [ @@ -2965,93 +2965,93 @@ "torus.geo": [ { "angles_tet": [ - 18.825, - 147.89 + 17.338, + 149.86 ], "angles_trig": [ - 19.92, - 127.09 + 16.308, + 134.73 ], "ne1d": 0, "ne2d": 2526, - "ne3d": 5569, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 10, 75, 203, 376, 547, 677, 778, 751, 731, 590, 458, 282, 89]", - "total_badness": 8143.6063628 + "ne3d": 5237, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 7, 22, 75, 210, 359, 522, 662, 731, 681, 655, 545, 424, 271, 73]", + "total_badness": 7726.4646332 }, { "angles_tet": [ - 1.3321, - 176.32 + 1.4555, + 176.75 ], "angles_trig": [ - 4.018, - 169.42 + 4.9052, + 165.77 ], "ne1d": 0, "ne2d": 648, - "ne3d": 3037, - "quality_histogram": "[84, 420, 497, 454, 356, 280, 246, 171, 125, 100, 81, 61, 38, 34, 25, 27, 13, 13, 6, 6]", - "total_badness": 19327.680113 + "ne3d": 3414, + "quality_histogram": "[22, 222, 485, 571, 446, 416, 284, 221, 159, 158, 112, 78, 63, 50, 38, 36, 22, 15, 13, 3]", + "total_badness": 16930.551213 }, { "angles_tet": [ - 17.153, - 145.79 + 20.366, + 140.42 ], "angles_trig": [ - 21.25, - 117.4 + 20.852, + 122.03 ], "ne1d": 0, "ne2d": 1430, - "ne3d": 2732, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 2, 12, 29, 124, 211, 333, 441, 459, 386, 298, 225, 162, 49]", - "total_badness": 3860.4405834 + "ne3d": 2549, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 17, 63, 133, 253, 331, 392, 388, 337, 248, 190, 143, 52]", + "total_badness": 3677.6528084 }, { "angles_tet": [ - 21.154, - 145.18 + 21.625, + 147.22 ], "angles_trig": [ - 20.446, - 123.92 + 17.098, + 124.24 ], "ne1d": 0, "ne2d": 2526, - "ne3d": 5467, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 33, 116, 267, 471, 611, 769, 804, 761, 687, 514, 339, 92]", - "total_badness": 7745.8480756 + "ne3d": 5029, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 5, 35, 155, 298, 449, 597, 701, 718, 654, 559, 475, 312, 70]", + "total_badness": 7228.135752 }, { "angles_tet": [ - 21.012, - 144.82 + 20.858, + 141.38 ], "angles_trig": [ - 23.413, - 126.31 + 24.104, + 121.3 ], "ne1d": 0, "ne2d": 5824, - "ne3d": 25208, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 12, 34, 117, 326, 759, 1612, 2787, 4115, 5299, 5268, 3766, 1111]", - "total_badness": 31294.508253 + "ne3d": 20540, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 5, 43, 142, 445, 927, 1457, 2377, 3214, 3845, 4066, 3130, 888]", + "total_badness": 25815.071924 }, { "angles_tet": [ - 21.699, - 145.02 + 23.724, + 142.9 ], "angles_trig": [ - 23.154, - 120.78 + 25.04, + 120.67 ], "ne1d": 0, "ne2d": 16198, - "ne3d": 174686, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 4, 58, 234, 858, 2518, 6918, 15184, 26272, 37074, 41964, 33110, 10491]", - "total_badness": 210586.77037 + "ne3d": 134720, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 4, 25, 176, 613, 1823, 4698, 10061, 18130, 27392, 33341, 28867, 9590]", + "total_badness": 160914.50246 } ], "trafo.geo": [ @@ -3062,13 +3062,13 @@ ], "angles_trig": [ 14.916, - 132.02 + 130.79 ], "ne1d": 690, "ne2d": 1662, - "ne3d": 5132, - "quality_histogram": "[0, 0, 1, 0, 2, 12, 24, 42, 108, 200, 269, 367, 431, 571, 685, 733, 586, 527, 446, 128]", - "total_badness": 7423.4819931 + "ne3d": 5010, + "quality_histogram": "[0, 0, 1, 0, 2, 12, 24, 42, 106, 207, 269, 365, 437, 563, 648, 692, 575, 512, 433, 122]", + "total_badness": 7271.8276032 }, { "angles_tet": [ @@ -3081,9 +3081,9 @@ ], "ne1d": 390, "ne2d": 516, - "ne3d": 1342, - "quality_histogram": "[0, 1, 5, 13, 16, 44, 80, 117, 122, 153, 159, 135, 123, 113, 85, 80, 54, 28, 11, 3]", - "total_badness": 2768.1650274 + "ne3d": 1332, + "quality_histogram": "[0, 1, 5, 13, 16, 44, 80, 117, 124, 148, 155, 138, 122, 109, 88, 79, 52, 27, 11, 3]", + "total_badness": 2751.8122025 }, { "angles_tet": [ @@ -3096,9 +3096,9 @@ ], "ne1d": 512, "ne2d": 864, - "ne3d": 2363, - "quality_histogram": "[0, 0, 0, 3, 9, 11, 42, 63, 119, 151, 184, 204, 316, 393, 341, 237, 138, 87, 42, 23]", - "total_badness": 3893.8304292 + "ne3d": 2356, + "quality_histogram": "[0, 0, 0, 3, 9, 11, 44, 63, 119, 147, 191, 204, 314, 386, 342, 235, 133, 87, 44, 24]", + "total_badness": 3886.5793174 }, { "angles_tet": [ @@ -3107,13 +3107,13 @@ ], "angles_trig": [ 14.916, - 132.02 + 130.79 ], "ne1d": 690, "ne2d": 1662, - "ne3d": 5067, - "quality_histogram": "[0, 0, 1, 0, 1, 8, 17, 35, 109, 188, 260, 357, 413, 536, 678, 734, 604, 538, 451, 137]", - "total_badness": 7266.2053478 + "ne3d": 4904, + "quality_histogram": "[0, 0, 1, 0, 1, 7, 20, 39, 107, 201, 255, 345, 419, 519, 636, 699, 558, 526, 444, 127]", + "total_badness": 7068.8896003 }, { "angles_tet": [ @@ -3126,41 +3126,41 @@ ], "ne1d": 1050, "ne2d": 3670, - "ne3d": 17479, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 13, 27, 55, 173, 512, 1412, 2098, 2269, 2479, 2612, 2725, 2398, 704]", - "total_badness": 22725.68654 + "ne3d": 15463, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 13, 28, 56, 152, 457, 1304, 1913, 2007, 2196, 2233, 2376, 2104, 622]", + "total_badness": 20158.89476 }, { "angles_tet": [ - 14.552, - 149.28 + 14.338, + 149.5 ], "angles_trig": [ - 19.234, + 20.032, 128.69 ], "ne1d": 1722, "ne2d": 9990, - "ne3d": 84894, - "quality_histogram": "[0, 0, 0, 0, 0, 3, 48, 1415, 704, 380, 693, 1189, 2418, 5553, 8732, 13010, 16484, 17010, 12978, 4277]", - "total_badness": 108486.89306 + "ne3d": 69583, + "quality_histogram": "[0, 0, 0, 0, 0, 3, 48, 1403, 715, 357, 613, 960, 1822, 4065, 6566, 10140, 13360, 14575, 11301, 3655]", + "total_badness": 89029.875437 } ], "twobricks.geo": [ { "angles_tet": [ - 26.301, - 137.72 + 29.387, + 127.84 ], "angles_trig": [ - 26.574, - 96.902 + 24.205, + 111.42 ], "ne1d": 72, "ne2d": 50, "ne3d": 41, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 6, 2, 15, 5, 5, 2, 1, 0, 0]", - "total_badness": 62.875269627 + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 4, 16, 5, 5, 1, 0, 0, 0]", + "total_badness": 62.968824916 }, { "angles_tet": [ @@ -3194,37 +3194,37 @@ }, { "angles_tet": [ - 26.301, - 137.72 + 29.387, + 127.84 ], "angles_trig": [ - 26.574, - 96.902 + 24.205, + 111.42 ], "ne1d": 72, "ne2d": 50, "ne3d": 41, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 6, 2, 16, 4, 5, 2, 1, 0, 0]", - "total_badness": 62.876132237 + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 4, 16, 5, 5, 1, 0, 0, 0]", + "total_badness": 62.968824736 }, { "angles_tet": [ - 23.292, - 131.34 + 24.096, + 132.78 ], "angles_trig": [ 27.682, - 108.04 + 109.77 ], "ne1d": 116, "ne2d": 132, - "ne3d": 174, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 10, 12, 17, 36, 23, 30, 18, 15, 8]", - "total_badness": 232.20307581 + "ne3d": 167, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 13, 9, 17, 36, 21, 29, 17, 14, 7]", + "total_badness": 223.72156428 }, { "angles_tet": [ - 28.202, + 26.164, 131.83 ], "angles_trig": [ @@ -3233,26 +3233,26 @@ ], "ne1d": 186, "ne2d": 330, - "ne3d": 561, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 22, 35, 52, 81, 98, 100, 102, 55, 12]", - "total_badness": 726.84401009 + "ne3d": 548, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 18, 38, 50, 82, 90, 102, 102, 51, 11]", + "total_badness": 709.67012072 } ], "twocubes.geo": [ { "angles_tet": [ - 26.301, - 137.72 + 29.387, + 127.84 ], "angles_trig": [ - 26.574, - 96.902 + 24.205, + 111.42 ], "ne1d": 72, "ne2d": 50, "ne3d": 41, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 6, 2, 15, 5, 5, 2, 1, 0, 0]", - "total_badness": 62.875269627 + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 4, 16, 5, 5, 1, 0, 0, 0]", + "total_badness": 62.968824916 }, { "angles_tet": [ @@ -3286,37 +3286,37 @@ }, { "angles_tet": [ - 26.301, - 137.72 + 29.387, + 127.84 ], "angles_trig": [ - 26.574, - 96.902 + 24.205, + 111.42 ], "ne1d": 72, "ne2d": 50, "ne3d": 41, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 6, 2, 16, 4, 5, 2, 1, 0, 0]", - "total_badness": 62.876132237 + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 4, 16, 5, 5, 1, 0, 0, 0]", + "total_badness": 62.968824736 }, { "angles_tet": [ - 23.292, - 131.34 + 24.096, + 132.78 ], "angles_trig": [ 27.682, - 108.04 + 109.77 ], "ne1d": 116, "ne2d": 132, - "ne3d": 174, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 10, 12, 17, 36, 23, 30, 18, 15, 8]", - "total_badness": 232.20307581 + "ne3d": 167, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 13, 9, 17, 36, 21, 29, 17, 14, 7]", + "total_badness": 223.72156428 }, { "angles_tet": [ - 28.202, + 26.164, 131.83 ], "angles_trig": [ @@ -3325,56 +3325,56 @@ ], "ne1d": 186, "ne2d": 330, - "ne3d": 561, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 22, 35, 52, 81, 98, 100, 102, 55, 12]", - "total_badness": 726.84401009 + "ne3d": 548, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 18, 38, 50, 82, 90, 102, 102, 51, 11]", + "total_badness": 709.67012072 } ], "twocyl.geo": [ { "angles_tet": [ - 15.662, - 149.9 + 15.875, + 154.45 ], "angles_trig": [ 18.029, - 127.96 + 132.57 ], "ne1d": 144, "ne2d": 408, - "ne3d": 557, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 13, 27, 12, 14, 49, 67, 56, 84, 80, 61, 50, 32, 10, 1]", - "total_badness": 894.39916443 + "ne3d": 555, + "quality_histogram": "[0, 0, 0, 0, 0, 2, 13, 22, 15, 25, 40, 61, 62, 75, 90, 57, 53, 34, 3, 3]", + "total_badness": 891.41800481 }, { "angles_tet": [ - 22.041, - 152.6 + 18.044, + 148.8 ], "angles_trig": [ - 25.599, - 118.3 + 21.63, + 119.03 ], "ne1d": 68, "ne2d": 98, - "ne3d": 145, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 1, 5, 7, 11, 14, 18, 12, 18, 20, 20, 13, 4]", - "total_badness": 205.10207723 + "ne3d": 120, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 1, 4, 8, 14, 6, 12, 4, 13, 10, 11, 15, 17, 3, 1]", + "total_badness": 193.19570482 }, { "angles_tet": [ - 9.9935, - 164.05 + 12.182, + 163.59 ], "angles_trig": [ - 11.843, - 144.63 + 13.77, + 141.93 ], "ne1d": 102, "ne2d": 234, - "ne3d": 442, - "quality_histogram": "[0, 0, 0, 5, 15, 26, 36, 41, 57, 34, 30, 20, 27, 29, 18, 25, 46, 16, 14, 3]", - "total_badness": 943.37633045 + "ne3d": 445, + "quality_histogram": "[0, 0, 0, 4, 8, 19, 29, 45, 57, 32, 21, 29, 26, 33, 26, 30, 47, 20, 15, 4]", + "total_badness": 892.47855902 }, { "angles_tet": [ @@ -3387,39 +3387,39 @@ ], "ne1d": 144, "ne2d": 408, - "ne3d": 554, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 11, 19, 10, 13, 41, 59, 66, 92, 80, 68, 48, 31, 13, 2]", - "total_badness": 867.08126513 + "ne3d": 536, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 11, 21, 15, 17, 42, 59, 52, 75, 79, 67, 54, 31, 10, 2]", + "total_badness": 846.80867342 }, { "angles_tet": [ - 18.887, - 145.59 + 17.878, + 145.86 ], "angles_trig": [ - 21.456, + 20.624, 129.54 ], "ne1d": 214, "ne2d": 904, - "ne3d": 1859, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 3, 9, 37, 69, 134, 178, 308, 327, 323, 246, 177, 47]", - "total_badness": 2454.4572433 + "ne3d": 1685, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 5, 15, 24, 84, 112, 164, 272, 308, 261, 240, 163, 35]", + "total_badness": 2237.4434395 }, { "angles_tet": [ - 21.528, - 142.94 + 24.457, + 138.81 ], "angles_trig": [ - 26.329, - 116.56 + 27.627, + 116.01 ], "ne1d": 350, "ne2d": 2358, - "ne3d": 13357, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 23, 78, 239, 564, 1230, 2137, 2846, 3149, 2364, 721]", - "total_badness": 16204.662169 + "ne3d": 10887, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 17, 76, 186, 444, 871, 1513, 2300, 2629, 2170, 676]", + "total_badness": 13109.548598 } ] } \ No newline at end of file From 6be1c5799996dc40bac009bb3c71f98209a49272 Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Fri, 23 Feb 2024 18:26:07 +0100 Subject: [PATCH 5/8] Call CalcTotalBad only if testout is active --- libsrc/meshing/improve3.cpp | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/libsrc/meshing/improve3.cpp b/libsrc/meshing/improve3.cpp index 25ef97ae..f8948da8 100644 --- a/libsrc/meshing/improve3.cpp +++ b/libsrc/meshing/improve3.cpp @@ -339,7 +339,7 @@ void MeshOptimize3d :: CombineImprove () UpdateBadness(); - if (goal == OPT_QUALITY) + if (goal == OPT_QUALITY && testout->good()) { double totalbad = mesh.CalcTotalBad (mp); (*testout) << "Total badness = " << totalbad << endl; @@ -393,7 +393,7 @@ void MeshOptimize3d :: CombineImprove () PrintMessage (5, cnt, " elements combined"); (*testout) << "CombineImprove done" << "\n"; - if (goal == OPT_QUALITY) + if (goal == OPT_QUALITY && testout->good()) { double totalbad = mesh.CalcTotalBad (mp); (*testout) << "Total badness = " << totalbad << endl; @@ -591,7 +591,7 @@ void MeshOptimize3d :: SplitImprove () UpdateBadness(); - if (goal == OPT_QUALITY) + if (goal == OPT_QUALITY && testout->good()) { bad = mesh.CalcTotalBad (mp); (*testout) << "Total badness = " << bad << endl; @@ -646,8 +646,11 @@ void MeshOptimize3d :: SplitImprove () if (goal == OPT_QUALITY) { - bad = mesh.CalcTotalBad (mp); - (*testout) << "Total badness = " << bad << endl; + if(testout->good()) + { + bad = mesh.CalcTotalBad (mp); + (*testout) << "Total badness = " << bad << endl; + } [[maybe_unused]] int cntill = 0; ne = mesh.GetNE(); @@ -1339,7 +1342,7 @@ void MeshOptimize3d :: SwapImprove (const NgBitArray * working_elements) } // Calculate total badness - if (goal == OPT_QUALITY) + if (goal == OPT_QUALITY && testout->good()) { double bad1 = mesh.CalcTotalBad (mp); (*testout) << "Total badness = " << bad1 << endl; @@ -2471,8 +2474,11 @@ void MeshOptimize3d :: SwapImprove2 () PrintMessage (3, "SwapImprove2 "); (*testout) << "\n" << "Start SwapImprove2" << "\n"; - double bad1 = mesh.CalcTotalBad (mp); - (*testout) << "Total badness = " << bad1 << endl; + if(testout->good()) + { + double bad1 = mesh.CalcTotalBad (mp); + (*testout) << "Total badness = " << bad1 << endl; + } // find elements on node @@ -2534,9 +2540,12 @@ void MeshOptimize3d :: SwapImprove2 () PrintMessage (5, cnt, " swaps performed"); mesh.Compress(); - bad1 = mesh.CalcTotalBad (mp); - (*testout) << "Total badness = " << bad1 << endl; - (*testout) << "swapimprove2 done" << "\n"; + if(testout->good()) + { + double bad1 = mesh.CalcTotalBad (mp); + (*testout) << "Total badness = " << bad1 << endl; + (*testout) << "swapimprove2 done" << "\n"; + } } double MeshOptimize3d :: SplitImprove2Element ( From 13867ef1a0103fbc2eeaaf0a30a341d67fc311ad Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Fri, 23 Feb 2024 20:32:39 +0100 Subject: [PATCH 6/8] Extra optimization steps for bad elements --- libsrc/meshing/improve3.cpp | 37 +- libsrc/meshing/improve3.hpp | 4 +- libsrc/meshing/meshfunc.cpp | 19 +- tests/pytest/compare_results.py | 39 +- tests/pytest/results.json | 1728 ++++++++++++++-------------- tests/pytest/test_nonnative_master | 93 ++ 6 files changed, 1028 insertions(+), 892 deletions(-) create mode 100644 tests/pytest/test_nonnative_master diff --git a/libsrc/meshing/improve3.cpp b/libsrc/meshing/improve3.cpp index f8948da8..d7aa8b5d 100644 --- a/libsrc/meshing/improve3.cpp +++ b/libsrc/meshing/improve3.cpp @@ -136,29 +136,36 @@ static double SplitElementBadness (const Mesh::T_POINTS & points, const MeshingP } -tuple MeshOptimize3d :: UpdateBadness() +tuple MeshOptimize3d :: UpdateBadness() { static Timer tbad("UpdateBadness"); RegionTimer reg(tbad); double totalbad = 0.0; double maxbad = 0.0; + atomic bad_elements = 0; + ParallelForRange(Range(mesh.GetNE()), [&] (auto myrange) { double totalbad_local = 0.0; double maxbad_local = 0.0; + int bad_elements_local = 0; for (ElementIndex ei : myrange) { auto & el = mesh[ei]; if(mp.only3D_domain_nr && mp.only3D_domain_nr != el.GetIndex()) continue; if(!el.BadnessValid()) el.SetBadness(CalcBad(mesh.Points(), el, 0)); - totalbad_local += el.GetBadness(); - maxbad_local = max(maxbad_local, static_cast(el.GetBadness())); + double bad = el.GetBadness(); + totalbad_local += bad; + maxbad_local = max(maxbad_local, bad); + if(bad > min_badness) + bad_elements_local++; } AtomicAdd(totalbad, totalbad_local); AtomicMax(maxbad, maxbad_local); + bad_elements += bad_elements_local; }); - return {totalbad, maxbad}; + return {totalbad, maxbad, bad_elements}; } bool MeshOptimize3d :: HasBadElement(FlatArray els) @@ -177,6 +184,13 @@ bool MeshOptimize3d :: HasIllegalElement(FlatArray els) return false; } +bool MeshOptimize3d :: NeedsOptimization(FlatArray els) +{ + if(goal == OPT_LEGAL) return HasIllegalElement(els); + if(goal == OPT_QUALITY) return HasBadElement(els); + return true; +} + /* Combine two points to one. @@ -440,7 +454,7 @@ double MeshOptimize3d :: SplitImproveEdge (Table & elem if(mp.only3D_domain_nr != mesh[ei].GetIndex()) return 0.0; - if ((goal == OPT_LEGAL) && !HasIllegalElement(hasbothpoints)) + if (!NeedsOptimization(hasbothpoints)) return 0.0; double bad1 = 0.0; @@ -733,7 +747,7 @@ double MeshOptimize3d :: SwapImproveEdge ( return 0.0; } - if ((goal == OPT_LEGAL) && !HasIllegalElement(hasbothpoints)) + if(!NeedsOptimization(hasbothpoints)) return 0.0; int nsuround = hasbothpoints.Size(); @@ -1354,6 +1368,8 @@ void MeshOptimize3d :: SwapImprove (const NgBitArray * working_elements) Array> candidate_edges(edges.Size()); std::atomic improvement_counter(0); + UpdateBadness(); + tloop.Start(); auto num_elements_before = mesh.VolumeElements().Range().Next(); @@ -2366,6 +2382,10 @@ double MeshOptimize3d :: SwapImprove2 ( ElementIndex eli1, int face, if (elem2.GetType() != TET) continue; + ArrayMem elis = {eli1, eli2}; + if(!NeedsOptimization(elis)) + continue; + int comnodes=0; for (int l = 1; l <= 4; l++) if (elem2.PNum(l) == pi1 || elem2.PNum(l) == pi2 || @@ -2380,8 +2400,7 @@ double MeshOptimize3d :: SwapImprove2 ( ElementIndex eli1, int face, if (comnodes == 3) { - bad1 = CalcBad (mesh.Points(), elem, 0) + - CalcBad (mesh.Points(), elem2, 0); + bad1 = elem.GetBadness() + elem2.GetBadness(); if (!mesh.LegalTet(elem) || !mesh.LegalTet(elem2)) @@ -2494,6 +2513,8 @@ void MeshOptimize3d :: SwapImprove2 () Array> faces_with_improvement; Array>> faces_with_improvement_threadlocal(num_threads); + UpdateBadness(); + ParallelForRange( Range(ne), [&]( auto myrange ) { int tid = ngcore::TaskManager::GetThreadId(); diff --git a/libsrc/meshing/improve3.hpp b/libsrc/meshing/improve3.hpp index a0519479..bb93cb53 100644 --- a/libsrc/meshing/improve3.hpp +++ b/libsrc/meshing/improve3.hpp @@ -17,9 +17,9 @@ class MeshOptimize3d OPTIMIZEGOAL goal = OPT_QUALITY; double min_badness = 0; - tuple UpdateBadness(); bool HasBadElement(FlatArray els); bool HasIllegalElement(FlatArray els); + bool NeedsOptimization(FlatArray els); public: @@ -29,6 +29,8 @@ public: void SetGoal(OPTIMIZEGOAL agoal) { goal = agoal; } void SetMinBadness(double badness) { min_badness = badness; } + tuple UpdateBadness(); + double CombineImproveEdge ( Table & elements_of_point, PointIndex pi0, PointIndex pi1, diff --git a/libsrc/meshing/meshfunc.cpp b/libsrc/meshing/meshfunc.cpp index 1384d2bb..9da051da 100644 --- a/libsrc/meshing/meshfunc.cpp +++ b/libsrc/meshing/meshfunc.cpp @@ -654,13 +654,28 @@ namespace netgen */ mesh3d.CalcSurfacesOfNode(); + + MeshOptimize3d optmesh(mesh3d, mp); + + // optimize only bad elements first + optmesh.SetMinBadness(1000.); + for(auto i : Range(mp.optsteps3d)) + { + auto [total_badness, max_badness, bad_els] = optmesh.UpdateBadness(); + if(bad_els==0) break; + optmesh.SplitImprove(); + optmesh.SwapImprove(); + optmesh.SwapImprove2(); + } + + // Now optimize all elements + optmesh.SetMinBadness(0); + for (auto i : Range(mp.optsteps3d)) { if (multithread.terminate) break; - MeshOptimize3d optmesh(mesh3d, mp); - // teterrpow = mp.opterrpow; // for (size_t j = 1; j <= strlen(mp.optimize3d); j++) for (auto j : Range(mp.optimize3d.size())) diff --git a/tests/pytest/compare_results.py b/tests/pytest/compare_results.py index 1015be34..f95e97c8 100644 --- a/tests/pytest/compare_results.py +++ b/tests/pytest/compare_results.py @@ -88,29 +88,34 @@ for bad1,bad2, f1, f2 in zip(data['#trigs'], data2['#trigs'], data['file'], data if bad2>0 and bad2<0.8*bad1: print(f"{GREEN}ntrigs {f1} got better: {bad1} -> {bad2}".ljust(w) + diff + RESET) -n = len(data)+1 -fig,ax = plt.subplots(figsize=(10,7)) -for i,d in enumerate(['min trig angle','min tet angle','max trig angle','max tet angle']): - ax = plt.subplot(2,5,i+1) +n = len(data) + 1 +fig, ax = plt.subplots(figsize=(15, 7)) # Adjust figsize as needed +plt.xticks([]) +plt.yticks([]) +ax.yaxis.grid(False) +ax.xaxis.grid(False) +for i, d in enumerate(['min trig angle', 'min tet angle', 'max trig angle', 'max tet angle']): + plt.subplot(2, 4, i + 1) # Remove ax = plt.title(d) - ax.set_xticks([1,2]) - if len(data[d])==0 or len(data2[d])==0: + # plt.xticks([1, 2]) + if len(data[d]) == 0 or len(data2[d]) == 0: continue - plt.violinplot([data[d],data2[d]], showmedians=True) + plt.violinplot([data[d], data2[d]], showmedians=True) med = statistics.median(data[d]) - plt.hlines(med, 1,2, linestyle='dotted') - if d=='badness': - ax.set_yscale('log') - ax.set_xticklabels([ref, ref2]) + plt.hlines(med, 1, 2, linestyle='dotted') + if d == 'badness': + plt.yscale('log') + plt.xticks([1, 2], [ref, ref2]) +for i, d in enumerate(['badness', '#edges', '#trigs', '#tets']): + plt.xticks([]) + plt.subplot(2, 4, 5 + i) + plt.title('difference ' + d + ' (in %)') + plt.boxplot([100.0 * (y - x) / x for x, y in zip(data[d], data2[d])]) + plt.hlines(0.0, 0.5, 1.5, linestyle='dotted') -for i,d in enumerate(['badness','#edges','#trigs','#tets']): - ax = plt.subplot(2,5,6+i) - plt.title('difference '+d+' (in %)') -# plt.violinplot([(y-x)/x for x,y in zip(data[d],data2[d])], showmedians=True) - plt.boxplot([100.0*(y-x)/x for x,y in zip(data[d],data2[d])]) - plt.hlines(0.0, 0.5,1.5, linestyle='dotted') +plt.tight_layout() # Adjust layout # plt.savefig('comparison.png', dpi=100) diff --git a/tests/pytest/results.json b/tests/pytest/results.json index eb137e38..ed19e006 100644 --- a/tests/pytest/results.json +++ b/tests/pytest/results.json @@ -2,18 +2,18 @@ "boundarycondition.geo": [ { "angles_tet": [ - 26.191, - 136.36 + 22.08, + 143.36 ], "angles_trig": [ - 23.62, - 121.42 + 18.539, + 142.35 ], "ne1d": 74, "ne2d": 52, - "ne3d": 43, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 7, 5, 13, 4, 6, 1, 1, 0, 0]", - "total_badness": 67.191916743 + "ne3d": 41, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 3, 1, 0, 11, 5, 14, 1, 4, 0, 0, 0, 0]", + "total_badness": 69.280452693 }, { "angles_tet": [ @@ -47,18 +47,18 @@ }, { "angles_tet": [ - 26.191, - 136.36 + 30.893, + 127.37 ], "angles_trig": [ - 23.62, - 121.42 + 26.565, + 91.094 ], "ne1d": 74, "ne2d": 52, - "ne3d": 43, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 7, 5, 13, 4, 6, 1, 1, 0, 0]", - "total_badness": 67.191916765 + "ne3d": 36, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 5, 15, 1, 4, 0, 0, 0, 0]", + "total_badness": 55.902432365 }, { "angles_tet": [ @@ -73,12 +73,12 @@ "ne2d": 126, "ne3d": 136, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 22, 10, 15, 29, 16, 19, 13, 7, 1]", - "total_badness": 190.84531316 + "total_badness": 190.84531317 }, { "angles_tet": [ 28.55, - 132.15 + 131.21 ], "angles_trig": [ 24.196, @@ -86,26 +86,26 @@ ], "ne1d": 181, "ne2d": 291, - "ne3d": 435, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 29, 33, 54, 74, 90, 80, 48, 15]", - "total_badness": 554.47412921 + "ne3d": 423, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 9, 22, 27, 54, 71, 81, 87, 57, 10]", + "total_badness": 535.77438972 } ], "boxcyl.geo": [ { "angles_tet": [ - 21.225, - 143.02 + 21.224, + 142.43 ], "angles_trig": [ - 22.402, + 22.403, 121.98 ], "ne1d": 190, "ne2d": 450, - "ne3d": 763, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 16, 46, 53, 73, 81, 69, 93, 96, 92, 88, 40, 16]", - "total_badness": 1120.112517 + "ne3d": 751, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 16, 46, 55, 75, 83, 71, 89, 84, 91, 87, 39, 15]", + "total_badness": 1107.3889231 }, { "angles_tet": [ @@ -120,7 +120,7 @@ "ne2d": 108, "ne3d": 111, "quality_histogram": "[0, 0, 0, 0, 1, 1, 2, 5, 13, 15, 5, 14, 6, 11, 7, 11, 3, 15, 2, 0]", - "total_badness": 196.5187028 + "total_badness": 196.51870279 }, { "angles_tet": [ @@ -139,146 +139,146 @@ }, { "angles_tet": [ - 21.224, - 136.69 + 21.222, + 131.85 ], "angles_trig": [ - 22.402, + 22.403, 121.98 ], "ne1d": 190, "ne2d": 450, - "ne3d": 742, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 15, 44, 47, 68, 84, 61, 88, 93, 90, 95, 43, 14]", - "total_badness": 1083.0472623 + "ne3d": 743, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 15, 46, 50, 70, 84, 67, 88, 85, 93, 92, 39, 14]", + "total_badness": 1090.2554152 }, { "angles_tet": [ - 25.644, - 139.2 + 24.636, + 138.29 ], "angles_trig": [ - 23.435, - 115.39 + 23.311, + 117.05 ], "ne1d": 284, "ne2d": 922, - "ne3d": 3065, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 21, 34, 78, 221, 319, 529, 640, 633, 437, 151]", - "total_badness": 3805.5671206 + "ne3d": 3028, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 16, 43, 81, 218, 369, 489, 604, 623, 449, 132]", + "total_badness": 3768.3794003 }, { "angles_tet": [ - 27.437, - 140.94 + 29.0, + 138.89 ], "angles_trig": [ - 26.707, - 115.82 + 28.033, + 111.86 ], "ne1d": 456, "ne2d": 2480, - "ne3d": 14672, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, 53, 199, 519, 1231, 2129, 3147, 3654, 2828, 901]", - "total_badness": 17610.111798 + "ne3d": 14520, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 44, 181, 508, 1170, 2162, 3142, 3510, 2863, 930]", + "total_badness": 17404.36259 } ], "circle_on_cube.geo": [ { "angles_tet": [ - 22.477, - 136.37 + 26.444, + 133.76 ], "angles_trig": [ - 17.668, - 111.68 + 22.641, + 113.83 ], "ne1d": 94, "ne2d": 162, - "ne3d": 539, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 4, 8, 12, 19, 51, 64, 77, 84, 113, 60, 38, 8]", - "total_badness": 730.6462233 + "ne3d": 537, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 13, 19, 49, 60, 66, 109, 95, 68, 44, 11]", + "total_badness": 714.42871623 }, { "angles_tet": [ - 15.613, - 142.3 + 16.709, + 142.87 ], "angles_trig": [ 19.788, - 122.66 + 124.53 ], "ne1d": 40, "ne2d": 30, "ne3d": 37, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 0, 2, 5, 6, 11, 1, 5, 2, 2, 1, 1, 0, 0, 0]", - "total_badness": 71.995863583 + "quality_histogram": "[0, 0, 0, 0, 0, 1, 2, 0, 1, 11, 8, 5, 4, 3, 0, 2, 0, 0, 0, 0]", + "total_badness": 72.253422388 }, { "angles_tet": [ - 27.91, - 126.99 + 26.508, + 128.24 ], "angles_trig": [ 23.119, - 114.31 + 117.29 ], "ne1d": 62, "ne2d": 76, - "ne3d": 132, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 12, 15, 25, 31, 17, 12, 9, 4, 1]", - "total_badness": 188.06169802 + "ne3d": 131, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 8, 22, 16, 30, 20, 15, 8, 5, 1]", + "total_badness": 185.23356052 }, { "angles_tet": [ - 25.043, - 130.43 + 28.726, + 134.02 ], "angles_trig": [ - 25.633, - 113.25 + 22.971, + 114.54 ], "ne1d": 94, "ne2d": 162, - "ne3d": 503, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 19, 29, 60, 75, 85, 96, 79, 40, 12]", - "total_badness": 658.94098229 + "ne3d": 490, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, 15, 38, 45, 73, 110, 83, 74, 34, 7]", + "total_badness": 645.37905468 }, { "angles_tet": [ - 27.024, - 137.07 + 28.79, + 135.96 ], "angles_trig": [ - 28.458, - 106.82 + 28.056, + 112.66 ], "ne1d": 138, "ne2d": 370, - "ne3d": 1596, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 9, 27, 92, 206, 267, 344, 334, 254, 60]", - "total_badness": 1963.9270548 + "ne3d": 1534, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 11, 35, 83, 172, 256, 337, 351, 220, 68]", + "total_badness": 1884.7047242 }, { "angles_tet": [ - 27.872, - 139.54 + 26.5, + 141.58 ], "angles_trig": [ - 26.836, - 112.22 + 26.328, + 110.62 ], "ne1d": 224, "ne2d": 922, - "ne3d": 9154, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 33, 103, 297, 649, 1223, 1932, 2247, 2016, 650]", - "total_badness": 10895.036801 + "ne3d": 9117, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 10, 31, 123, 329, 741, 1263, 1954, 2214, 1832, 618]", + "total_badness": 10924.299533 } ], "cone.geo": [ { "angles_tet": [ - 15.75, + 18.902, 142.51 ], "angles_trig": [ @@ -287,44 +287,44 @@ ], "ne1d": 64, "ne2d": 718, - "ne3d": 1146, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 8, 16, 43, 58, 89, 125, 122, 141, 150, 135, 113, 89, 47, 9]", - "total_badness": 1762.8462929 + "ne3d": 1145, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 7, 17, 40, 54, 82, 124, 129, 158, 136, 126, 116, 97, 46, 12]", + "total_badness": 1753.9631189 }, { "angles_tet": [ - 12.355, + 12.894, 161.49 ], "angles_trig": [ - 12.226, - 144.29 + 14.156, + 150.69 ], "ne1d": 32, "ne2d": 208, - "ne3d": 463, - "quality_histogram": "[0, 0, 0, 2, 8, 19, 37, 37, 35, 38, 38, 37, 38, 40, 19, 38, 29, 20, 22, 6]", - "total_badness": 909.51493585 + "ne3d": 457, + "quality_histogram": "[0, 0, 0, 4, 6, 7, 19, 15, 24, 25, 34, 39, 28, 61, 38, 46, 40, 39, 19, 13]", + "total_badness": 786.17360323 }, { "angles_tet": [ - 9.7616, - 164.1 + 8.5678, + 164.24 ], "angles_trig": [ - 10.106, - 153.08 + 12.521, + 143.3 ], "ne1d": 48, "ne2d": 420, - "ne3d": 583, - "quality_histogram": "[0, 0, 1, 5, 10, 14, 16, 16, 33, 63, 107, 66, 74, 58, 52, 27, 11, 14, 13, 3]", - "total_badness": 1104.7233833 + "ne3d": 626, + "quality_histogram": "[0, 0, 0, 10, 8, 19, 21, 14, 37, 71, 91, 75, 76, 62, 48, 37, 18, 18, 18, 3]", + "total_badness": 1193.0076866 }, { "angles_tet": [ - 13.187, - 147.74 + 18.484, + 140.51 ], "angles_trig": [ 17.408, @@ -332,39 +332,39 @@ ], "ne1d": 64, "ne2d": 718, - "ne3d": 1137, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 3, 9, 31, 59, 90, 112, 116, 153, 161, 138, 115, 91, 45, 13]", - "total_badness": 1717.9294394 + "ne3d": 1129, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 3, 7, 32, 45, 98, 114, 134, 146, 153, 132, 115, 92, 48, 10]", + "total_badness": 1702.0762407 }, { "angles_tet": [ - 25.148, - 138.91 + 18.863, + 137.16 ], "angles_trig": [ - 22.997, - 120.3 + 22.582, + 119.38 ], "ne1d": 96, "ne2d": 1648, - "ne3d": 3856, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 5, 22, 72, 158, 260, 409, 520, 626, 679, 573, 430, 102]", - "total_badness": 5061.9869618 + "ne3d": 3805, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 0, 4, 29, 65, 158, 271, 388, 475, 646, 674, 591, 396, 107]", + "total_badness": 4995.2199245 }, { "angles_tet": [ - 22.972, - 142.2 + 23.624, + 143.07 ], "angles_trig": [ - 24.338, - 122.16 + 24.84, + 120.86 ], "ne1d": 160, "ne2d": 4738, - "ne3d": 21525, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 5, 18, 81, 218, 519, 1076, 2125, 3325, 4344, 4757, 3832, 1225]", - "total_badness": 26324.805946 + "ne3d": 21358, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 20, 69, 206, 492, 1110, 2071, 3275, 4433, 4701, 3671, 1308]", + "total_badness": 26097.176833 } ], "cube.geo": [ @@ -471,9 +471,9 @@ ], "ne1d": 262, "ne2d": 652, - "ne3d": 1857, - "quality_histogram": "[0, 1, 4, 20, 45, 81, 89, 111, 82, 55, 58, 77, 131, 188, 215, 214, 193, 152, 113, 28]", - "total_badness": 3392.4559528 + "ne3d": 1850, + "quality_histogram": "[0, 2, 4, 19, 46, 79, 87, 113, 85, 41, 56, 75, 136, 174, 213, 238, 192, 160, 101, 29]", + "total_badness": 3376.5621892 }, { "angles_tet": [ @@ -482,13 +482,13 @@ ], "angles_trig": [ 22.715, - 110.68 + 115.73 ], "ne1d": 134, "ne2d": 142, - "ne3d": 193, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 0, 1, 0, 4, 7, 17, 25, 31, 25, 27, 34, 15, 3, 3]", - "total_badness": 276.85560019 + "ne3d": 187, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 0, 1, 0, 4, 8, 17, 23, 31, 18, 28, 31, 16, 7, 2]", + "total_badness": 269.564478 }, { "angles_tet": [ @@ -496,14 +496,14 @@ 159.84 ], "angles_trig": [ - 19.918, + 19.613, 131.52 ], "ne1d": 190, "ne2d": 242, - "ne3d": 443, - "quality_histogram": "[0, 0, 0, 0, 2, 0, 1, 5, 4, 14, 36, 48, 31, 68, 64, 71, 51, 35, 13, 0]", - "total_badness": 663.69097487 + "ne3d": 438, + "quality_histogram": "[0, 0, 0, 0, 2, 0, 0, 4, 3, 15, 37, 52, 36, 66, 71, 58, 42, 38, 11, 3]", + "total_badness": 658.29595492 }, { "angles_tet": [ @@ -516,39 +516,39 @@ ], "ne1d": 262, "ne2d": 652, - "ne3d": 1655, - "quality_histogram": "[0, 0, 2, 14, 36, 66, 75, 92, 86, 32, 37, 52, 90, 161, 184, 225, 197, 178, 102, 26]", - "total_badness": 2904.871737 + "ne3d": 1653, + "quality_histogram": "[0, 0, 2, 15, 35, 67, 71, 93, 82, 34, 41, 56, 104, 138, 185, 235, 222, 147, 101, 25]", + "total_badness": 2904.5831463 }, { "angles_tet": [ - 23.105, - 140.16 + 19.908, + 142.77 ], "angles_trig": [ - 23.955, - 117.93 + 21.306, + 123.5 ], "ne1d": 378, "ne2d": 1360, - "ne3d": 6128, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 11, 40, 115, 224, 441, 772, 962, 1226, 1196, 871, 268]", - "total_badness": 7688.465096 + "ne3d": 6102, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 9, 23, 54, 104, 215, 426, 700, 994, 1167, 1210, 918, 281]", + "total_badness": 7655.9055733 }, { "angles_tet": [ - 22.414, - 142.28 + 22.179, + 143.43 ], "angles_trig": [ - 26.19, - 120.57 + 24.189, + 120.95 ], "ne1d": 624, "ne2d": 3860, - "ne3d": 29435, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 20, 35, 140, 425, 1108, 2328, 4157, 6139, 7141, 5940, 2000]", - "total_badness": 35320.500741 + "ne3d": 29147, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 11, 37, 154, 453, 1172, 2338, 4202, 6083, 6991, 5792, 1911]", + "total_badness": 35056.080141 } ], "cubeandspheres.geo": [ @@ -640,191 +640,191 @@ "ne2d": 906, "ne3d": 1041, "quality_histogram": "[0, 0, 0, 0, 0, 0, 4, 24, 50, 35, 98, 106, 102, 105, 178, 167, 69, 59, 26, 18]", - "total_badness": 1617.9736123 + "total_badness": 1617.9736122 } ], "cubemcyl.geo": [ { "angles_tet": [ - 18.498, - 149.4 + 16.556, + 148.15 ], "angles_trig": [ - 20.98, - 128.43 - ], - "ne1d": 142, - "ne2d": 2400, - "ne3d": 17784, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 15, 72, 177, 380, 754, 1416, 2074, 2648, 3013, 3039, 2408, 1406, 381]", - "total_badness": 23838.771502 - }, - { - "angles_tet": [ - 14.839, - 163.36 - ], - "angles_trig": [ - 13.852, - 128.88 - ], - "ne1d": 64, - "ne2d": 556, - "ne3d": 2527, - "quality_histogram": "[0, 0, 0, 1, 3, 3, 13, 21, 45, 87, 131, 201, 271, 361, 392, 379, 330, 192, 82, 15]", - "total_badness": 3732.8031568 - }, - { - "angles_tet": [ - 22.204, - 144.2 - ], - "angles_trig": [ - 20.457, - 131.4 - ], - "ne1d": 102, - "ne2d": 1280, - "ne3d": 6627, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 4, 14, 45, 131, 360, 598, 900, 1106, 1173, 1015, 768, 406, 107]", - "total_badness": 8993.1807463 - }, - { - "angles_tet": [ - 21.141, - 148.31 - ], - "angles_trig": [ - 21.611, + 18.399, 126.55 ], "ne1d": 142, "ne2d": 2400, - "ne3d": 15309, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 3, 23, 55, 140, 359, 805, 1463, 2161, 2694, 2954, 2634, 1558, 459]", - "total_badness": 19727.869608 + "ne3d": 17834, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 3, 14, 68, 173, 414, 797, 1367, 2161, 2671, 3007, 2954, 2394, 1433, 378]", + "total_badness": 23946.045345 }, { "angles_tet": [ - 22.581, - 143.99 + 13.826, + 163.36 ], "angles_trig": [ - 24.014, - 127.71 + 13.852, + 130.91 + ], + "ne1d": 64, + "ne2d": 556, + "ne3d": 2511, + "quality_histogram": "[0, 0, 0, 1, 3, 4, 13, 24, 40, 78, 129, 210, 285, 374, 396, 382, 275, 177, 99, 21]", + "total_badness": 3719.5197616 + }, + { + "angles_tet": [ + 21.647, + 145.79 + ], + "angles_trig": [ + 20.886, + 124.66 + ], + "ne1d": 102, + "ne2d": 1280, + "ne3d": 6520, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 7, 9, 78, 150, 366, 638, 856, 1115, 1187, 936, 683, 399, 96]", + "total_badness": 8923.733234 + }, + { + "angles_tet": [ + 21.141, + 143.5 + ], + "angles_trig": [ + 21.506, + 128.13 + ], + "ne1d": 142, + "ne2d": 2400, + "ne3d": 15256, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 2, 23, 47, 126, 348, 812, 1473, 2161, 2716, 2937, 2488, 1665, 457]", + "total_badness": 19641.595824 + }, + { + "angles_tet": [ + 24.461, + 140.07 + ], + "angles_trig": [ + 24.784, + 121.83 ], "ne1d": 210, "ne2d": 5460, - "ne3d": 67072, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 6, 48, 124, 432, 1291, 3132, 6334, 10320, 14235, 15595, 11771, 3784]", - "total_badness": 81524.550953 + "ne3d": 66203, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 39, 143, 429, 1353, 3166, 6206, 10234, 14000, 15463, 11581, 3586]", + "total_badness": 80546.827457 }, { "angles_tet": [ - 22.466, - 144.76 + 24.097, + 146.01 ], "angles_trig": [ - 23.709, - 124.43 + 23.902, + 124.4 ], "ne1d": 362, "ne2d": 15082, - "ne3d": 393202, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 4, 45, 232, 948, 3557, 10813, 25511, 50218, 80582, 101638, 89274, 30380]", - "total_badness": 465262.05237 + "ne3d": 386834, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 5, 41, 188, 908, 3408, 10433, 25534, 49310, 79289, 100324, 87513, 29881]", + "total_badness": 457691.39756 } ], "cubemsphere.geo": [ { "angles_tet": [ - 21.066, - 146.42 + 22.162, + 142.52 ], "angles_trig": [ - 20.446, - 128.42 + 20.547, + 128.1 ], "ne1d": 90, "ne2d": 570, - "ne3d": 3971, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 7, 30, 66, 153, 277, 462, 599, 716, 677, 565, 340, 77]", - "total_badness": 5266.0349233 + "ne3d": 3995, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 5, 29, 70, 153, 269, 429, 644, 736, 713, 553, 301, 92]", + "total_badness": 5295.1664299 }, { "angles_tet": [ - 11.451, - 157.71 + 10.212, + 162.36 ], "angles_trig": [ - 10.838, - 143.17 + 9.0545, + 133.12 ], "ne1d": 44, "ne2d": 142, - "ne3d": 300, - "quality_histogram": "[0, 0, 4, 4, 13, 22, 27, 41, 31, 33, 27, 29, 25, 14, 10, 7, 6, 4, 3, 0]", - "total_badness": 723.41477982 + "ne3d": 358, + "quality_histogram": "[0, 0, 1, 3, 8, 9, 27, 25, 43, 45, 41, 38, 32, 29, 23, 19, 7, 5, 3, 0]", + "total_badness": 752.80521692 }, { "angles_tet": [ - 13.391, - 145.87 + 21.441, + 137.91 ], "angles_trig": [ - 15.737, - 131.46 + 15.758, + 131.36 ], "ne1d": 68, "ne2d": 272, - "ne3d": 1130, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 0, 5, 7, 9, 33, 67, 128, 166, 218, 193, 128, 105, 55, 15]", - "total_badness": 1583.5041417 + "ne3d": 1132, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 3, 6, 12, 37, 66, 114, 174, 197, 195, 150, 113, 52, 12]", + "total_badness": 1578.3627501 }, { "angles_tet": [ - 23.123, - 136.08 + 23.799, + 135.59 ], "angles_trig": [ - 20.649, + 25.09, 118.46 ], "ne1d": 90, "ne2d": 570, - "ne3d": 3400, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 24, 47, 150, 279, 472, 624, 685, 620, 397, 92]", - "total_badness": 4320.4213106 + "ne3d": 3360, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 16, 48, 146, 270, 503, 620, 661, 596, 397, 96]", + "total_badness": 4265.8200532 }, { "angles_tet": [ - 24.981, - 137.27 + 28.171, + 133.52 ], "angles_trig": [ - 26.224, - 119.24 + 26.253, + 118.16 ], "ne1d": 146, "ne2d": 1366, - "ne3d": 13329, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 20, 66, 259, 611, 1300, 2171, 2929, 3096, 2207, 667]", - "total_badness": 16228.04137 + "ne3d": 13140, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 87, 221, 636, 1253, 2150, 2862, 3060, 2218, 641]", + "total_badness": 15990.17626 }, { "angles_tet": [ - 26.716, - 136.56 + 26.132, + 136.98 ], "angles_trig": [ - 27.377, - 122.43 + 25.57, + 116.53 ], "ne1d": 248, "ne2d": 4248, - "ne3d": 85698, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 36, 211, 883, 2564, 6070, 11308, 17750, 22003, 18718, 6151]", - "total_badness": 101798.71852 + "ne3d": 84535, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 38, 239, 826, 2592, 5812, 11280, 17631, 21604, 18465, 6041]", + "total_badness": 100414.60403 } ], "cylinder.geo": [ @@ -849,29 +849,29 @@ 151.98 ], "angles_trig": [ - 24.892, + 25.237, 118.13 ], "ne1d": 24, "ne2d": 66, - "ne3d": 71, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 2, 5, 6, 5, 7, 1, 4, 3, 3, 12, 21, 1, 0]", - "total_badness": 109.34437941 + "ne3d": 69, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 3, 5, 0, 4, 2, 2, 9, 26, 3, 7]", + "total_badness": 95.643757297 }, { "angles_tet": [ - 13.555, - 156.87 + 16.406, + 156.92 ], "angles_trig": [ - 17.963, - 137.34 + 19.37, + 130.41 ], "ne1d": 36, "ne2d": 152, - "ne3d": 385, - "quality_histogram": "[0, 0, 0, 0, 2, 16, 21, 48, 51, 36, 29, 25, 32, 21, 30, 11, 36, 9, 16, 2]", - "total_badness": 763.74730648 + "ne3d": 471, + "quality_histogram": "[0, 0, 0, 0, 0, 5, 9, 22, 43, 37, 39, 53, 46, 32, 40, 41, 49, 27, 21, 7]", + "total_badness": 798.57500814 }, { "angles_tet": [ @@ -890,33 +890,33 @@ }, { "angles_tet": [ - 22.162, - 138.1 + 23.602, + 139.69 ], "angles_trig": [ - 23.553, - 118.77 + 23.844, + 118.54 ], "ne1d": 76, "ne2d": 636, - "ne3d": 1072, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 17, 33, 85, 107, 117, 148, 182, 157, 124, 81, 19]", - "total_badness": 1472.990756 + "ne3d": 1056, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 16, 35, 78, 108, 109, 163, 185, 154, 105, 81, 20]", + "total_badness": 1453.0463737 }, { "angles_tet": [ - 25.257, - 138.11 + 24.173, + 139.41 ], "angles_trig": [ - 28.297, - 122.06 + 26.472, + 120.11 ], "ne1d": 124, "ne2d": 1666, - "ne3d": 6485, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 21, 51, 115, 285, 583, 949, 1247, 1534, 1287, 407]", - "total_badness": 7848.0881684 + "ne3d": 6448, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 6, 17, 44, 136, 282, 586, 944, 1320, 1470, 1240, 401]", + "total_badness": 7815.6380623 } ], "cylsphere.geo": [ @@ -941,91 +941,91 @@ 163.27 ], "angles_trig": [ - 14.531, + 14.484, 148.23 ], "ne1d": 48, "ne2d": 100, "ne3d": 103, - "quality_histogram": "[0, 0, 0, 1, 0, 6, 13, 14, 10, 11, 11, 5, 5, 3, 6, 10, 8, 0, 0, 0]", - "total_badness": 223.46243761 + "quality_histogram": "[0, 0, 0, 2, 1, 4, 13, 15, 10, 11, 10, 5, 5, 3, 6, 10, 8, 0, 0, 0]", + "total_badness": 227.02057451 }, { "angles_tet": [ - 16.871, + 16.827, 140.82 ], "angles_trig": [ - 17.529, - 119.51 + 17.531, + 116.44 ], "ne1d": 104, "ne2d": 494, - "ne3d": 700, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 4, 5, 15, 36, 54, 88, 118, 95, 98, 60, 58, 48, 19, 1]", - "total_badness": 1084.4485162 + "ne3d": 685, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 4, 6, 24, 49, 71, 105, 100, 90, 79, 50, 49, 41, 13, 3]", + "total_badness": 1099.947193 }, { "angles_tet": [ - 21.113, - 140.01 + 23.775, + 139.74 ], "angles_trig": [ - 20.438, - 119.42 + 22.07, + 119.33 ], "ne1d": 152, "ne2d": 1082, - "ne3d": 2388, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 4, 24, 52, 106, 136, 234, 288, 370, 427, 392, 277, 77]", - "total_badness": 3125.4084069 + "ne3d": 2428, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 5, 12, 47, 98, 156, 241, 314, 341, 430, 415, 289, 80]", + "total_badness": 3165.0550273 }, { "angles_tet": [ - 26.125, - 138.82 + 25.953, + 137.57 ], "angles_trig": [ - 25.689, - 119.61 + 27.924, + 118.72 ], "ne1d": 248, "ne2d": 2810, - "ne3d": 14046, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 25, 94, 242, 545, 1189, 2024, 2901, 3398, 2742, 877]", - "total_badness": 16934.768104 + "ne3d": 13898, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 28, 80, 235, 563, 1170, 2020, 2879, 3303, 2681, 930]", + "total_badness": 16757.815083 } ], "ellipsoid.geo": [ { "angles_tet": [ - 16.259, - 146.82 + 19.068, + 144.8 ], "angles_trig": [ - 16.161, - 118.74 + 18.52, + 120.49 ], "ne1d": 0, "ne2d": 694, - "ne3d": 1189, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 4, 19, 32, 67, 117, 138, 145, 137, 152, 129, 97, 87, 53, 11]", - "total_badness": 1841.4900213 + "ne3d": 1213, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 17, 36, 66, 102, 149, 134, 147, 166, 129, 104, 106, 35, 20]", + "total_badness": 1859.2508656 }, { "angles_tet": [ - 3.8936, - 169.13 + 4.1029, + 170.7 ], "angles_trig": [ - 8.0156, - 154.68 + 6.1932, + 162.02 ], "ne1d": 0, "ne2d": 156, - "ne3d": 719, - "quality_histogram": "[0, 10, 50, 96, 128, 86, 61, 61, 43, 35, 36, 29, 25, 23, 15, 10, 5, 4, 2, 0]", - "total_badness": 2694.7787325 + "ne3d": 617, + "quality_histogram": "[0, 6, 38, 56, 76, 81, 63, 54, 37, 40, 32, 31, 21, 29, 21, 18, 10, 1, 2, 1]", + "total_badness": 2089.5884695 }, { "angles_tet": [ @@ -1044,55 +1044,55 @@ }, { "angles_tet": [ - 15.553, - 147.24 + 18.382, + 141.28 ], "angles_trig": [ - 17.934, - 118.38 + 19.357, + 122.31 ], "ne1d": 0, "ne2d": 694, - "ne3d": 1173, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 2, 13, 34, 63, 78, 153, 141, 171, 132, 121, 110, 83, 58, 13]", - "total_badness": 1791.4868143 + "ne3d": 1160, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 10, 44, 55, 103, 135, 147, 161, 140, 132, 85, 87, 43, 17]", + "total_badness": 1782.4621003 }, { "angles_tet": [ - 22.395, - 139.69 + 22.541, + 137.85 ], "angles_trig": [ - 23.33, - 120.75 + 23.173, + 122.67 ], "ne1d": 0, "ne2d": 1578, - "ne3d": 4496, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 22, 76, 196, 287, 392, 571, 680, 742, 745, 610, 174]", - "total_badness": 5824.6143444 + "ne3d": 4459, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 22, 69, 199, 288, 416, 572, 641, 762, 738, 569, 181]", + "total_badness": 5785.6787619 }, { "angles_tet": [ - 26.843, - 137.54 + 26.132, + 137.27 ], "angles_trig": [ - 24.967, - 122.02 + 24.331, + 124.82 ], "ne1d": 0, "ne2d": 4212, - "ne3d": 29009, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 40, 143, 381, 1051, 2234, 4090, 5936, 7062, 6060, 2007]", - "total_badness": 34725.637925 + "ne3d": 28541, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 32, 150, 441, 1024, 2212, 3959, 5845, 7012, 5816, 2045]", + "total_badness": 34195.305763 } ], "ellipticcone.geo": [ { "angles_tet": [ - 20.015, - 145.85 + 21.191, + 143.04 ], "angles_trig": [ 22.188, @@ -1100,101 +1100,101 @@ ], "ne1d": 174, "ne2d": 1492, - "ne3d": 4528, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 4, 9, 31, 86, 156, 314, 433, 684, 804, 789, 677, 393, 148]", - "total_badness": 5961.7142634 + "ne3d": 4458, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 12, 33, 80, 170, 285, 484, 684, 741, 769, 654, 399, 145]", + "total_badness": 5878.2970409 }, { "angles_tet": [ - 18.684, + 18.758, 150.89 ], "angles_trig": [ - 20.004, + 20.597, 124.89 ], "ne1d": 86, "ne2d": 336, - "ne3d": 451, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 3, 3, 7, 25, 29, 40, 55, 63, 60, 58, 50, 39, 14, 5]", - "total_badness": 676.0478602 + "ne3d": 459, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 2, 10, 21, 41, 41, 53, 60, 65, 58, 48, 41, 11, 6]", + "total_badness": 690.5842012 }, { "angles_tet": [ - 16.488, - 153.66 + 16.986, + 153.27 ], "angles_trig": [ - 17.329, + 18.22, 134.96 ], "ne1d": 130, "ne2d": 794, - "ne3d": 1394, - "quality_histogram": "[0, 0, 0, 0, 2, 3, 18, 28, 67, 51, 60, 93, 149, 162, 160, 198, 154, 141, 87, 21]", - "total_badness": 2106.8764105 + "ne3d": 1383, + "quality_histogram": "[0, 0, 0, 0, 1, 1, 12, 28, 56, 58, 69, 92, 155, 145, 190, 170, 169, 125, 94, 18]", + "total_badness": 2076.8283951 }, { "angles_tet": [ - 22.169, - 142.23 + 22.207, + 144.22 ], "angles_trig": [ - 22.159, + 20.311, 124.34 ], "ne1d": 174, "ne2d": 1492, - "ne3d": 4113, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 36, 79, 174, 349, 532, 800, 782, 720, 469, 162]", - "total_badness": 5232.7862847 + "ne3d": 4049, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 1, 10, 30, 77, 193, 316, 526, 717, 820, 721, 488, 148]", + "total_badness": 5141.2657775 }, { "angles_tet": [ - 20.439, - 140.14 + 19.813, + 147.03 ], "angles_trig": [ - 20.798, - 125.5 + 21.794, + 126.99 ], "ne1d": 258, "ne2d": 3318, - "ne3d": 11161, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 10, 34, 154, 294, 480, 811, 1301, 1746, 2060, 2144, 1629, 496]", - "total_badness": 14135.519943 + "ne3d": 11071, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 20, 45, 147, 286, 495, 839, 1243, 1701, 2054, 2172, 1580, 487]", + "total_badness": 14040.574161 }, { "angles_tet": [ - 19.604, - 144.73 + 19.674, + 144.72 ], "angles_trig": [ 22.947, - 128.99 + 126.66 ], "ne1d": 432, "ne2d": 9184, - "ne3d": 55066, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 9, 25, 68, 229, 521, 1211, 2463, 4649, 7581, 11114, 12676, 10825, 3693]", - "total_badness": 66783.744886 + "ne3d": 54158, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 8, 18, 54, 221, 535, 1196, 2522, 4466, 7523, 10751, 12523, 10799, 3540]", + "total_badness": 65682.333844 } ], "ellipticcyl.geo": [ { "angles_tet": [ - 21.138, - 141.47 + 17.353, + 144.66 ], "angles_trig": [ - 21.241, - 127.69 + 20.926, + 125.85 ], "ne1d": 156, "ne2d": 942, - "ne3d": 2025, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 11, 29, 56, 111, 157, 234, 289, 339, 324, 265, 167, 41]", - "total_badness": 2743.4404901 + "ne3d": 2034, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 6, 15, 34, 73, 113, 164, 233, 336, 291, 329, 251, 148, 40]", + "total_badness": 2793.4385428 }, { "angles_tet": [ @@ -1209,67 +1209,67 @@ "ne2d": 200, "ne3d": 242, "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 3, 14, 22, 16, 31, 31, 36, 30, 32, 15, 6, 4, 0]", - "total_badness": 390.9724027 + "total_badness": 390.97240271 }, { "angles_tet": [ - 21.771, - 135.32 + 23.926, + 135.29 ], "angles_trig": [ - 24.077, - 116.68 + 24.282, + 116.66 ], "ne1d": 116, "ne2d": 542, - "ne3d": 956, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 2, 6, 27, 48, 87, 100, 162, 185, 145, 107, 69, 17]", - "total_badness": 1295.4197367 + "ne3d": 942, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 6, 23, 40, 94, 107, 146, 178, 156, 103, 76, 11]", + "total_badness": 1270.1928118 }, { "angles_tet": [ 21.053, - 138.41 + 142.98 ], "angles_trig": [ - 22.47, - 115.82 + 22.458, + 117.6 ], "ne1d": 156, "ne2d": 942, - "ne3d": 1938, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 4, 27, 45, 75, 140, 215, 270, 360, 326, 267, 162, 45]", - "total_badness": 2588.7538195 + "ne3d": 1931, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 7, 27, 55, 78, 130, 184, 281, 367, 319, 266, 179, 37]", + "total_badness": 2579.9354136 }, { "angles_tet": [ - 23.707, - 138.8 + 23.667, + 138.58 ], "angles_trig": [ - 22.931, - 122.72 + 25.236, + 120.17 ], "ne1d": 232, "ne2d": 2102, - "ne3d": 6670, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 3, 18, 54, 120, 269, 480, 787, 1108, 1307, 1294, 949, 280]", - "total_badness": 8387.7773397 + "ne3d": 6638, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 45, 118, 262, 475, 812, 1073, 1336, 1300, 923, 285]", + "total_badness": 8335.0561403 }, { "angles_tet": [ - 24.652, - 142.74 + 22.292, + 144.61 ], "angles_trig": [ - 26.03, - 122.42 + 24.768, + 126.3 ], "ne1d": 388, "ne2d": 5914, - "ne3d": 42620, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 6, 10, 41, 148, 478, 1315, 3033, 5861, 8629, 11050, 9006, 3043]", - "total_badness": 50758.45986 + "ne3d": 41917, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 5, 9, 35, 152, 474, 1287, 3020, 5596, 8738, 10547, 9050, 3003]", + "total_badness": 49914.609895 } ], "extrusion.geo": [ @@ -1335,18 +1335,18 @@ }, { "angles_tet": [ - 19.454, - 139.54 + 20.077, + 139.4 ], "angles_trig": [ - 17.955, + 18.634, 118.98 ], "ne1d": 276, "ne2d": 544, - "ne3d": 592, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 5, 10, 26, 51, 55, 48, 69, 62, 77, 64, 66, 44, 12, 3]", - "total_badness": 934.42745493 + "ne3d": 603, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 8, 26, 43, 52, 60, 73, 62, 74, 62, 77, 43, 15, 7]", + "total_badness": 934.85096826 } ], "fichera.geo": [ @@ -1363,7 +1363,7 @@ "ne2d": 36, "ne3d": 32, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 2, 8, 8, 5, 0, 0, 0, 0]", - "total_badness": 48.255149002 + "total_badness": 48.255148991 }, { "angles_tet": [ @@ -1408,12 +1408,12 @@ "ne2d": 36, "ne3d": 32, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 2, 8, 8, 5, 0, 0, 0, 0]", - "total_badness": 48.255149002 + "total_badness": 48.255148991 }, { "angles_tet": [ 28.158, - 134.7 + 136.35 ], "angles_trig": [ 28.353, @@ -1421,30 +1421,30 @@ ], "ne1d": 96, "ne2d": 108, - "ne3d": 182, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 8, 14, 17, 17, 33, 35, 31, 19, 6]", - "total_badness": 236.36384433 + "ne3d": 177, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 7, 15, 16, 11, 33, 36, 32, 20, 5]", + "total_badness": 228.70758215 }, { "angles_tet": [ 27.898, - 128.74 + 129.67 ], "angles_trig": [ - 27.032, + 26.954, 105.69 ], "ne1d": 144, "ne2d": 264, - "ne3d": 460, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 13, 22, 40, 61, 97, 92, 63, 57, 14]", - "total_badness": 587.30107216 + "ne3d": 455, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 24, 39, 63, 97, 91, 63, 48, 17]", + "total_badness": 582.04207662 } ], "hinge.stl": [ { "angles_tet": [ - 15.51, + 15.509, 152.56 ], "angles_trig": [ @@ -1453,9 +1453,9 @@ ], "ne1d": 456, "ne2d": 1066, - "ne3d": 1640, - "quality_histogram": "[0, 0, 0, 0, 0, 2, 4, 13, 25, 33, 76, 92, 138, 201, 259, 270, 219, 179, 106, 23]", - "total_badness": 2318.6977642 + "ne3d": 1622, + "quality_histogram": "[0, 0, 0, 0, 0, 2, 4, 13, 26, 35, 66, 106, 137, 214, 232, 260, 226, 173, 103, 25]", + "total_badness": 2297.0354205 }, { "angles_tet": [ @@ -1468,9 +1468,9 @@ ], "ne1d": 298, "ne2d": 502, - "ne3d": 604, - "quality_histogram": "[0, 0, 4, 5, 10, 16, 28, 40, 45, 41, 57, 62, 61, 50, 46, 59, 37, 24, 14, 5]", - "total_badness": 1166.4155254 + "ne3d": 598, + "quality_histogram": "[0, 0, 3, 5, 10, 16, 29, 40, 43, 39, 54, 62, 60, 51, 45, 59, 38, 25, 14, 5]", + "total_badness": 1148.0390643 }, { "angles_tet": [ @@ -1489,8 +1489,8 @@ }, { "angles_tet": [ - 17.101, - 147.54 + 17.038, + 147.66 ], "angles_trig": [ 18.124, @@ -1498,9 +1498,9 @@ ], "ne1d": 516, "ne2d": 1454, - "ne3d": 2261, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 2, 14, 25, 41, 74, 124, 217, 266, 350, 312, 325, 305, 161, 44]", - "total_badness": 3135.9282664 + "ne3d": 2242, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 2, 14, 24, 45, 74, 121, 218, 278, 348, 301, 321, 297, 156, 42]", + "total_badness": 3117.2593361 }, { "angles_tet": [ @@ -1513,24 +1513,24 @@ ], "ne1d": 722, "ne2d": 2768, - "ne3d": 5864, - "quality_histogram": "[0, 0, 0, 0, 1, 0, 0, 2, 11, 29, 52, 133, 309, 591, 807, 914, 970, 977, 820, 248]", - "total_badness": 7521.3448919 + "ne3d": 5826, + "quality_histogram": "[0, 0, 0, 0, 1, 0, 0, 2, 15, 30, 56, 149, 329, 578, 796, 904, 973, 983, 757, 253]", + "total_badness": 7499.63097 }, { "angles_tet": [ - 20.122, - 141.52 + 18.283, + 142.44 ], "angles_trig": [ - 22.174, - 131.41 + 21.873, + 123.52 ], "ne1d": 1862, "ne2d": 18540, - "ne3d": 98702, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 14, 70, 229, 721, 1862, 4505, 8530, 14453, 20299, 23204, 18602, 6211]", - "total_badness": 119526.37454 + "ne3d": 97376, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 18, 74, 251, 659, 1770, 4375, 8501, 14080, 20129, 22819, 18498, 6200]", + "total_badness": 117815.89866 } ], "lense.in2d": [ @@ -1704,64 +1704,64 @@ { "angles_tet": [ 25.594, - 129.87 + 131.82 ], "angles_trig": [ 24.835, - 109.77 + 108.97 ], "ne1d": 122, "ne2d": 192, - "ne3d": 297, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 10, 11, 37, 45, 39, 44, 64, 33, 10]", - "total_badness": 382.68128655 + "ne3d": 291, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 10, 18, 35, 39, 40, 54, 58, 24, 9]", + "total_badness": 378.51475956 } ], "manyholes.geo": [ { "angles_tet": [ - 16.576, - 148.83 + 17.695, + 153.3 ], "angles_trig": [ - 18.114, - 139.37 + 17.033, + 139.33 ], "ne1d": 5886, - "ne2d": 45968, - "ne3d": 155393, - "quality_histogram": "[0, 0, 0, 0, 0, 4, 12, 72, 296, 756, 2181, 5888, 10154, 16863, 23433, 25524, 26388, 23378, 16376, 4068]", - "total_badness": 203913.71319 + "ne2d": 45882, + "ne3d": 154702, + "quality_histogram": "[0, 0, 0, 0, 0, 1, 8, 66, 222, 737, 2094, 5786, 10315, 16832, 23407, 25576, 26164, 23123, 16303, 4068]", + "total_badness": 202905.19298 }, { "angles_tet": [ - 14.027, - 148.8 + 11.57, + 153.55 ], "angles_trig": [ - 13.388, - 135.25 + 14.377, + 134.8 ], "ne1d": 2746, - "ne2d": 10430, - "ne3d": 22408, - "quality_histogram": "[0, 0, 0, 0, 5, 4, 39, 139, 329, 643, 1287, 2030, 2636, 2981, 2830, 2754, 2611, 2224, 1513, 383]", - "total_badness": 32453.511775 + "ne2d": 10428, + "ne3d": 22186, + "quality_histogram": "[0, 0, 0, 1, 2, 10, 36, 143, 315, 668, 1305, 2125, 2629, 3075, 2870, 2714, 2456, 2053, 1436, 348]", + "total_badness": 32307.652049 }, { "angles_tet": [ 13.279, - 150.54 + 151.1 ], "angles_trig": [ 12.439, - 139.33 + 137.16 ], "ne1d": 4106, - "ne2d": 23286, - "ne3d": 57573, - "quality_histogram": "[0, 0, 0, 0, 32, 67, 185, 316, 648, 1283, 2258, 3684, 5611, 7608, 8411, 8563, 7999, 6293, 3645, 970]", - "total_badness": 81418.094713 + "ne2d": 23238, + "ne3d": 56933, + "quality_histogram": "[0, 0, 0, 0, 31, 64, 210, 334, 666, 1194, 2196, 3631, 5728, 7499, 8338, 8581, 7869, 6084, 3580, 928]", + "total_badness": 80610.044111 } ], "manyholes2.geo": [ @@ -1771,14 +1771,14 @@ 151.97 ], "angles_trig": [ - 14.987, - 136.1 + 16.373, + 136.58 ], "ne1d": 10202, - "ne2d": 40838, - "ne3d": 97503, - "quality_histogram": "[0, 0, 0, 0, 3, 17, 82, 272, 640, 1651, 3507, 6538, 9622, 11789, 13182, 13731, 13803, 12181, 8310, 2175]", - "total_badness": 134656.05974 + "ne2d": 41054, + "ne3d": 96973, + "quality_histogram": "[0, 0, 0, 0, 3, 14, 77, 228, 649, 1728, 3712, 6466, 9529, 12137, 13060, 13497, 13477, 12189, 8049, 2158]", + "total_badness": 134173.65203 } ], "matrix.geo": [ @@ -1793,9 +1793,9 @@ ], "ne1d": 174, "ne2d": 1070, - "ne3d": 4235, - "quality_histogram": "[0, 0, 10, 93, 172, 70, 19, 68, 134, 172, 258, 362, 405, 477, 504, 485, 432, 332, 191, 51]", - "total_badness": 7498.1647914 + "ne3d": 4238, + "quality_histogram": "[0, 0, 10, 93, 172, 69, 17, 64, 120, 159, 270, 354, 421, 464, 502, 490, 450, 338, 202, 43]", + "total_badness": 7468.5968987 }, { "angles_tet": [ @@ -1803,14 +1803,14 @@ 166.83 ], "angles_trig": [ - 8.2716, - 155.6 + 8.2262, + 162.29 ], "ne1d": 106, "ne2d": 314, - "ne3d": 870, - "quality_histogram": "[0, 0, 4, 30, 45, 52, 74, 67, 102, 94, 85, 79, 71, 50, 43, 32, 22, 18, 2, 0]", - "total_badness": 2071.1392811 + "ne3d": 869, + "quality_histogram": "[0, 0, 5, 33, 47, 52, 74, 69, 102, 93, 83, 80, 65, 49, 43, 32, 22, 18, 2, 0]", + "total_badness": 2092.2409402 }, { "angles_tet": [ @@ -1825,7 +1825,7 @@ "ne2d": 588, "ne3d": 1733, "quality_histogram": "[0, 0, 2, 14, 30, 79, 151, 126, 80, 114, 115, 148, 155, 191, 164, 139, 98, 75, 43, 9]", - "total_badness": 3419.5577951 + "total_badness": 3419.5579224 }, { "angles_tet": [ @@ -1838,14 +1838,14 @@ ], "ne1d": 174, "ne2d": 1070, - "ne3d": 4033, - "quality_histogram": "[0, 0, 10, 93, 172, 65, 19, 59, 122, 145, 235, 314, 397, 430, 496, 463, 425, 325, 203, 60]", - "total_badness": 7130.4305505 + "ne3d": 4026, + "quality_histogram": "[0, 0, 10, 93, 172, 65, 16, 58, 113, 142, 247, 319, 399, 438, 476, 449, 435, 315, 219, 60]", + "total_badness": 7109.2735591 }, { "angles_tet": [ 13.107, - 146.8 + 146.96 ], "angles_trig": [ 15.013, @@ -1853,9 +1853,9 @@ ], "ne1d": 248, "ne2d": 2256, - "ne3d": 13330, - "quality_histogram": "[0, 0, 0, 0, 0, 7, 24, 59, 111, 200, 334, 577, 923, 1244, 1693, 1968, 2226, 2106, 1450, 408]", - "total_badness": 17854.021232 + "ne3d": 13057, + "quality_histogram": "[0, 0, 0, 0, 0, 7, 21, 59, 107, 184, 339, 556, 907, 1254, 1664, 1962, 2127, 2012, 1415, 443]", + "total_badness": 17482.312294 }, { "angles_tet": [ @@ -1864,13 +1864,13 @@ ], "angles_trig": [ 17.821, - 127.38 + 128.91 ], "ne1d": 418, "ne2d": 5914, - "ne3d": 77980, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 4, 10, 42, 95, 272, 677, 1671, 3677, 6953, 11122, 15643, 18219, 14772, 4823]", - "total_badness": 94762.484886 + "ne3d": 76880, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 5, 9, 44, 92, 254, 708, 1634, 3644, 6877, 10969, 15598, 17976, 14366, 4704]", + "total_badness": 93472.477243 } ], "ortho.geo": [ @@ -1936,18 +1936,18 @@ }, { "angles_tet": [ - 33.047, - 131.72 + 27.314, + 136.31 ], "angles_trig": [ - 27.996, - 104.14 + 32.951, + 102.55 ], "ne1d": 48, "ne2d": 36, - "ne3d": 38, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 8, 4, 2, 13, 1, 2, 4, 0]", - "total_badness": 53.235534633 + "ne3d": 57, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 2, 9, 11, 10, 12, 4, 1, 2, 0]", + "total_badness": 83.838443301 }, { "angles_tet": [ @@ -1968,18 +1968,18 @@ "part1.stl": [ { "angles_tet": [ - 25.648, - 134.92 + 25.638, + 135.18 ], "angles_trig": [ 21.656, - 123.23 + 124.67 ], "ne1d": 170, "ne2d": 400, - "ne3d": 935, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 31, 50, 72, 95, 153, 154, 144, 130, 85, 15]", - "total_badness": 1253.3564966 + "ne3d": 928, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 31, 48, 72, 93, 157, 155, 145, 124, 83, 13]", + "total_badness": 1245.5581222 }, { "angles_tet": [ @@ -1992,9 +1992,9 @@ ], "ne1d": 134, "ne2d": 254, - "ne3d": 403, - "quality_histogram": "[0, 0, 0, 3, 2, 5, 11, 9, 11, 14, 34, 54, 47, 42, 47, 42, 38, 29, 13, 2]", - "total_badness": 667.71392521 + "ne3d": 413, + "quality_histogram": "[0, 0, 0, 3, 3, 5, 11, 7, 15, 24, 31, 33, 54, 43, 65, 44, 36, 19, 17, 3]", + "total_badness": 687.15227784 }, { "angles_tet": [ @@ -2002,61 +2002,61 @@ 149.16 ], "angles_trig": [ - 23.265, - 118.76 + 23.195, + 113.89 ], "ne1d": 194, "ne2d": 554, - "ne3d": 1392, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 3, 2, 14, 58, 98, 142, 225, 231, 282, 193, 112, 31]", - "total_badness": 1831.8327918 + "ne3d": 1389, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 4, 2, 17, 54, 101, 149, 220, 252, 241, 203, 120, 25]", + "total_badness": 1832.7921849 }, { "angles_tet": [ 21.368, - 141.6 + 141.1 ], "angles_trig": [ - 26.845, - 111.5 + 23.927, + 117.02 ], "ne1d": 266, "ne2d": 958, - "ne3d": 3408, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 20, 57, 112, 222, 436, 581, 684, 679, 455, 154]", - "total_badness": 4268.0697316 + "ne3d": 3403, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 5, 9, 18, 52, 114, 269, 399, 601, 676, 646, 459, 155]", + "total_badness": 4278.0682013 }, { "angles_tet": [ - 25.008, - 143.1 + 26.383, + 142.98 ], "angles_trig": [ - 25.338, - 116.0 + 24.47, + 122.53 ], "ne1d": 674, "ne2d": 6330, - "ne3d": 56477, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 71, 242, 741, 2061, 4421, 7889, 11520, 13883, 11827, 3801]", - "total_badness": 67611.072045 + "ne3d": 55920, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 14, 65, 218, 755, 1964, 4266, 7694, 11351, 13972, 11855, 3765]", + "total_badness": 66850.851051 } ], "period.geo": [ { "angles_tet": [ 15.419, - 147.86 + 145.84 ], "angles_trig": [ - 14.285, + 17.555, 130.0 ], "ne1d": 344, "ne2d": 1040, - "ne3d": 2826, - "quality_histogram": "[0, 0, 0, 0, 1, 7, 23, 28, 47, 95, 145, 233, 313, 404, 357, 365, 342, 282, 149, 35]", - "total_badness": 4160.1848769 + "ne3d": 2859, + "quality_histogram": "[0, 0, 0, 0, 0, 5, 20, 25, 47, 80, 148, 264, 299, 418, 368, 359, 360, 281, 151, 34]", + "total_badness": 4186.5926357 }, { "angles_tet": [ @@ -2064,64 +2064,64 @@ 170.6 ], "angles_trig": [ - 11.284, + 11.507, 146.85 ], "ne1d": 160, "ne2d": 234, - "ne3d": 404, - "quality_histogram": "[0, 0, 2, 7, 7, 10, 18, 23, 23, 27, 38, 40, 40, 41, 20, 35, 30, 26, 13, 4]", - "total_badness": 776.63612701 + "ne3d": 401, + "quality_histogram": "[0, 0, 2, 8, 9, 14, 19, 17, 22, 28, 36, 35, 47, 49, 24, 32, 29, 21, 8, 1]", + "total_badness": 786.54568096 }, { "angles_tet": [ - 12.462, + 13.089, 161.3 ], "angles_trig": [ - 15.538, - 141.61 + 13.837, + 144.46 ], "ne1d": 232, "ne2d": 494, - "ne3d": 1200, - "quality_histogram": "[0, 0, 0, 0, 9, 17, 37, 51, 68, 82, 103, 138, 131, 133, 133, 115, 76, 75, 28, 4]", - "total_badness": 2067.8813464 + "ne3d": 1204, + "quality_histogram": "[0, 0, 0, 0, 13, 21, 39, 41, 71, 83, 112, 118, 152, 145, 117, 108, 72, 68, 39, 5]", + "total_badness": 2092.5543831 }, { "angles_tet": [ 16.492, - 144.48 + 144.95 ], "angles_trig": [ - 14.285, + 17.555, 130.0 ], "ne1d": 344, "ne2d": 1040, - "ne3d": 2744, - "quality_histogram": "[0, 0, 0, 0, 0, 6, 21, 26, 42, 87, 142, 223, 290, 367, 364, 339, 335, 314, 150, 38]", - "total_badness": 4004.5532677 + "ne3d": 2771, + "quality_histogram": "[0, 0, 0, 0, 0, 5, 18, 24, 45, 65, 145, 235, 301, 377, 387, 348, 358, 291, 137, 35]", + "total_badness": 4034.1944956 }, { "angles_tet": [ 20.66, - 142.83 + 144.93 ], "angles_trig": [ - 23.275, - 126.57 + 21.848, + 125.82 ], "ne1d": 480, "ne2d": 2200, - "ne3d": 9834, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 8, 34, 86, 214, 499, 795, 1292, 1690, 1874, 1774, 1247, 319]", - "total_badness": 12535.447884 + "ne3d": 9786, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 7, 34, 96, 223, 474, 870, 1287, 1671, 1844, 1743, 1220, 314]", + "total_badness": 12506.441418 }, { "angles_tet": [ - 20.439, - 143.63 + 21.073, + 143.43 ], "angles_trig": [ 20.259, @@ -2129,193 +2129,193 @@ ], "ne1d": 820, "ne2d": 6174, - "ne3d": 53651, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 19, 57, 137, 388, 1037, 2328, 4684, 7756, 10834, 12631, 10267, 3510]", - "total_badness": 64920.508941 + "ne3d": 53126, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 10, 50, 164, 402, 1067, 2405, 4682, 7754, 10857, 12296, 10143, 3294]", + "total_badness": 64419.90251 } ], "plane.stl": [ { "angles_tet": [ - 1.2197, - 163.59 + 1.2182, + 170.22 ], "angles_trig": [ - 1.0761, - 154.41 + 1.8555, + 148.54 ], - "ne1d": 968, - "ne2d": 2398, - "ne3d": 6675, - "quality_histogram": "[4, 7, 20, 37, 52, 41, 50, 58, 98, 139, 214, 322, 525, 815, 962, 1014, 975, 773, 461, 108]", - "total_badness": 10130.244557 + "ne1d": 892, + "ne2d": 2220, + "ne3d": 6353, + "quality_histogram": "[4, 9, 34, 34, 43, 54, 51, 62, 96, 128, 246, 338, 551, 714, 899, 958, 936, 708, 385, 103]", + "total_badness": 9830.4969118 }, { "angles_tet": [ - 1.3517, - 170.75 + 1.3667, + 170.92 ], "angles_trig": [ - 4.564, - 154.31 + 1.7241, + 168.81 ], - "ne1d": 622, - "ne2d": 850, - "ne3d": 1105, - "quality_histogram": "[2, 15, 34, 71, 83, 79, 99, 118, 95, 87, 91, 92, 64, 52, 36, 38, 26, 16, 7, 0]", - "total_badness": 3287.2091868 + "ne1d": 572, + "ne2d": 742, + "ne3d": 959, + "quality_histogram": "[2, 21, 50, 69, 85, 99, 78, 82, 76, 76, 57, 54, 65, 52, 36, 25, 15, 12, 4, 1]", + "total_badness": 3180.1990985 }, { "angles_tet": [ - 1.1106, - 172.54 + 1.1094, + 172.05 ], "angles_trig": [ - 1.5068, - 169.1 + 3.4703, + 156.24 ], - "ne1d": 762, - "ne2d": 1382, - "ne3d": 2264, - "quality_histogram": "[2, 11, 26, 51, 43, 62, 76, 82, 112, 145, 187, 188, 233, 270, 236, 205, 188, 87, 43, 17]", - "total_badness": 4579.5008368 + "ne1d": 724, + "ne2d": 1340, + "ne3d": 2199, + "quality_histogram": "[3, 12, 30, 54, 49, 61, 53, 72, 84, 127, 177, 184, 234, 256, 262, 206, 179, 101, 48, 7]", + "total_badness": 4491.5892664 }, { "angles_tet": [ - 1.1362, - 159.69 + 1.2337, + 165.94 ], "angles_trig": [ - 1.7959, + 3.4703, 149.13 ], - "ne1d": 1032, - "ne2d": 2540, - "ne3d": 6309, - "quality_histogram": "[3, 7, 19, 37, 49, 54, 57, 46, 71, 116, 180, 246, 412, 602, 830, 1058, 999, 892, 488, 143]", - "total_badness": 9404.1925779 + "ne1d": 956, + "ne2d": 2330, + "ne3d": 6152, + "quality_histogram": "[3, 9, 26, 42, 39, 53, 62, 67, 77, 120, 158, 230, 393, 629, 835, 972, 1018, 839, 453, 127]", + "total_badness": 9316.7375577 }, { "angles_tet": [ - 1.1428, - 165.98 + 1.1634, + 165.93 ], "angles_trig": [ - 3.2068, - 143.04 + 4.1049, + 144.93 ], - "ne1d": 1632, - "ne2d": 5956, - "ne3d": 24659, - "quality_histogram": "[2, 6, 10, 10, 18, 46, 53, 62, 89, 129, 244, 459, 933, 1809, 2876, 4088, 4869, 4724, 3261, 971]", - "total_badness": 31845.585286 + "ne1d": 1554, + "ne2d": 5646, + "ne3d": 23496, + "quality_histogram": "[2, 5, 10, 10, 20, 55, 63, 51, 78, 136, 198, 405, 840, 1576, 2705, 3890, 4717, 4583, 3248, 904]", + "total_badness": 30261.471634 }, { "angles_tet": [ - 1.2302, - 164.19 + 1.2319, + 163.57 ], "angles_trig": [ - 0.77944, - 144.06 + 1.2732, + 154.91 ], - "ne1d": 3250, - "ne2d": 24762, - "ne3d": 221077, - "quality_histogram": "[4, 6, 13, 13, 16, 17, 22, 43, 83, 150, 447, 1259, 3460, 8531, 17761, 31190, 45960, 53819, 43964, 14319]", - "total_badness": 266516.21683 + "ne1d": 2992, + "ne2d": 22730, + "ne3d": 206422, + "quality_histogram": "[4, 6, 13, 10, 14, 19, 26, 63, 87, 165, 481, 1163, 3333, 7807, 16722, 29390, 42845, 50235, 40650, 13389]", + "total_badness": 249062.5796 } ], "revolution.geo": [ { "angles_tet": [ - 15.312, - 149.05 + 15.496, + 150.31 ], "angles_trig": [ - 17.425, - 131.61 + 17.613, + 132.44 ], "ne1d": 320, "ne2d": 2790, - "ne3d": 7098, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 10, 59, 137, 244, 430, 608, 739, 858, 884, 988, 887, 698, 465, 91]", - "total_badness": 10312.576827 + "ne3d": 7109, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 5, 44, 120, 242, 448, 598, 736, 862, 895, 957, 916, 720, 473, 93]", + "total_badness": 10273.473799 }, { "angles_tet": [ - 17.49, - 137.78 + 17.504, + 138.44 ], "angles_trig": [ - 16.251, - 128.55 + 16.273, + 128.52 ], "ne1d": 160, "ne2d": 658, - "ne3d": 958, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 10, 42, 64, 108, 121, 152, 113, 121, 84, 45, 41, 33, 20, 4]", - "total_badness": 1663.3751748 + "ne3d": 969, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 11, 38, 67, 99, 115, 151, 138, 110, 85, 50, 39, 36, 24, 6]", + "total_badness": 1667.032894 }, { "angles_tet": [ - 20.28, - 142.22 + 17.869, + 147.84 ], "angles_trig": [ - 20.442, - 126.55 + 17.577, + 134.89 ], "ne1d": 240, "ne2d": 1584, - "ne3d": 3266, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 12, 39, 98, 204, 357, 454, 494, 440, 396, 306, 237, 180, 49]", - "total_badness": 4799.8542284 + "ne3d": 3411, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 11, 53, 110, 240, 368, 463, 499, 461, 406, 324, 266, 163, 45]", + "total_badness": 5043.717387 }, { "angles_tet": [ - 18.211, - 143.27 + 17.675, + 149.89 ], "angles_trig": [ - 18.435, - 134.15 + 17.528, + 134.16 ], "ne1d": 320, "ne2d": 2790, - "ne3d": 6652, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 32, 94, 175, 350, 562, 668, 763, 864, 885, 906, 777, 476, 98]", - "total_badness": 9455.157368 + "ne3d": 6651, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 28, 97, 207, 395, 531, 662, 765, 862, 919, 864, 740, 472, 108]", + "total_badness": 9492.8483553 }, { "angles_tet": [ - 21.015, - 144.61 + 22.077, + 144.94 ], "angles_trig": [ - 21.826, - 129.36 + 19.919, + 132.01 ], "ne1d": 480, "ne2d": 6314, - "ne3d": 25177, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 3, 14, 81, 233, 674, 1207, 1892, 2928, 4081, 4659, 4811, 3580, 1014]", - "total_badness": 31907.54831 + "ne3d": 24987, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 18, 75, 233, 687, 1234, 1928, 2962, 3929, 4665, 4833, 3480, 941]", + "total_badness": 31722.463309 }, { "angles_tet": [ - 23.38, - 143.42 + 23.899, + 141.25 ], "angles_trig": [ - 24.17, - 122.83 + 25.135, + 121.44 ], "ne1d": 800, "ne2d": 16950, - "ne3d": 152833, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 5, 38, 200, 745, 2342, 5684, 12089, 21053, 31272, 37454, 31439, 10512]", - "total_badness": 183225.05641 + "ne3d": 150394, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 5, 35, 221, 760, 2295, 5639, 11946, 20906, 30456, 36938, 30789, 10404]", + "total_badness": 180339.45752 } ], "sculpture.geo": [ @@ -2390,41 +2390,41 @@ ], "ne1d": 288, "ne2d": 912, - "ne3d": 1233, - "quality_histogram": "[0, 0, 0, 0, 2, 2, 8, 22, 34, 71, 98, 125, 108, 125, 129, 127, 148, 139, 80, 15]", - "total_badness": 1870.536903 + "ne3d": 1226, + "quality_histogram": "[0, 0, 0, 0, 2, 2, 8, 22, 36, 70, 100, 124, 113, 128, 123, 129, 149, 132, 72, 16]", + "total_badness": 1867.9891765 }, { "angles_tet": [ 16.0, - 151.02 + 149.43 ], "angles_trig": [ 17.232, - 118.94 + 119.57 ], "ne1d": 480, "ne2d": 2314, - "ne3d": 5632, - "quality_histogram": "[0, 0, 0, 0, 2, 4, 12, 12, 10, 28, 51, 90, 168, 362, 625, 886, 1152, 1079, 865, 286]", - "total_badness": 7095.2341945 + "ne3d": 5481, + "quality_histogram": "[0, 0, 0, 0, 2, 4, 10, 12, 11, 27, 49, 109, 187, 336, 632, 879, 1085, 1055, 797, 286]", + "total_badness": 6926.9394256 } ], "shaft.geo": [ { "angles_tet": [ - 0.89578, - 177.45 + 11.54, + 166.59 ], "angles_trig": [ - 2.4127, - 168.18 + 12.767, + 152.23 ], "ne1d": 708, "ne2d": 1656, - "ne3d": 2582, - "quality_histogram": "[11, 13, 11, 21, 32, 34, 40, 54, 62, 136, 244, 353, 302, 231, 238, 265, 252, 168, 93, 22]", - "total_badness": 5045.5018779 + "ne3d": 2609, + "quality_histogram": "[0, 0, 0, 9, 27, 37, 48, 57, 80, 156, 230, 362, 300, 233, 232, 285, 255, 174, 101, 23]", + "total_badness": 4340.100648 }, { "angles_tet": [ @@ -2437,69 +2437,69 @@ ], "ne1d": 410, "ne2d": 542, - "ne3d": 693, - "quality_histogram": "[0, 0, 0, 1, 1, 6, 4, 7, 18, 30, 36, 55, 57, 76, 69, 85, 51, 73, 89, 35]", - "total_badness": 1018.6548699 + "ne3d": 667, + "quality_histogram": "[0, 0, 0, 1, 1, 6, 4, 8, 18, 31, 32, 49, 57, 72, 72, 72, 40, 84, 60, 60]", + "total_badness": 979.60058088 }, { "angles_tet": [ - 6.7545, - 168.94 + 13.369, + 156.78 ], "angles_trig": [ - 9.6804, - 149.02 + 14.807, + 149.61 ], "ne1d": 510, "ne2d": 912, - "ne3d": 1849, - "quality_histogram": "[0, 0, 6, 17, 40, 79, 74, 123, 124, 105, 136, 149, 175, 161, 189, 176, 144, 77, 50, 24]", - "total_badness": 3540.3025687 + "ne3d": 1773, + "quality_histogram": "[0, 0, 0, 0, 2, 21, 34, 63, 77, 90, 135, 161, 195, 192, 222, 216, 175, 108, 64, 18]", + "total_badness": 2865.6214541 }, { "angles_tet": [ - 8.8864, - 166.45 + 11.54, + 166.59 ], "angles_trig": [ - 9.4306, - 152.63 + 13.661, + 152.23 ], "ne1d": 708, "ne2d": 1656, - "ne3d": 2547, - "quality_histogram": "[0, 0, 2, 12, 28, 32, 20, 43, 81, 141, 235, 340, 290, 240, 250, 297, 258, 175, 79, 24]", - "total_badness": 4200.3293929 + "ne3d": 2496, + "quality_histogram": "[0, 0, 0, 1, 9, 3, 11, 39, 78, 158, 211, 341, 291, 258, 242, 300, 255, 187, 90, 22]", + "total_badness": 3916.6882733 }, { "angles_tet": [ - 14.508, - 147.74 + 15.284, + 148.46 ], "angles_trig": [ - 18.623, - 122.73 + 20.071, + 124.88 ], - "ne1d": 1134, - "ne2d": 4082, - "ne3d": 9578, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 2, 33, 87, 162, 317, 526, 787, 1147, 1540, 1717, 1709, 1194, 355]", - "total_badness": 12393.785687 + "ne1d": 1138, + "ne2d": 4104, + "ne3d": 9546, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 2, 28, 76, 174, 335, 494, 811, 1246, 1522, 1737, 1579, 1215, 325]", + "total_badness": 12378.481139 }, { "angles_tet": [ - 22.905, - 145.07 + 25.194, + 141.19 ], "angles_trig": [ - 23.644, - 125.33 + 26.218, + 120.33 ], "ne1d": 1792, - "ne2d": 10504, - "ne3d": 50516, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 4, 24, 103, 310, 989, 2215, 4358, 7483, 10550, 11873, 9522, 3085]", - "total_badness": 61132.694461 + "ne2d": 10502, + "ne3d": 49939, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 4, 32, 102, 299, 875, 2257, 4260, 7493, 10376, 11747, 9497, 2997]", + "total_badness": 60403.701968 } ], "sphere.geo": [ @@ -2565,33 +2565,33 @@ }, { "angles_tet": [ - 21.541, - 133.99 + 21.731, + 133.96 ], "angles_trig": [ - 22.184, - 111.63 + 22.177, + 111.5 ], "ne1d": 0, "ne2d": 256, "ne3d": 363, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 16, 43, 51, 48, 54, 38, 35, 30, 27, 12, 6]", - "total_badness": 551.63000225 + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 3, 16, 42, 53, 45, 56, 40, 34, 30, 27, 11, 6]", + "total_badness": 551.54194668 }, { "angles_tet": [ - 27.27, - 135.23 + 26.252, + 135.65 ], "angles_trig": [ - 27.012, - 116.77 + 25.494, + 116.09 ], "ne1d": 0, "ne2d": 658, - "ne3d": 1875, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 32, 54, 138, 203, 297, 374, 359, 315, 94]", - "total_badness": 2326.6685303 + "ne3d": 1871, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6, 23, 65, 131, 218, 295, 389, 366, 286, 90]", + "total_badness": 2324.6823999 } ], "sphereincube.geo": [ @@ -2636,9 +2636,9 @@ ], "ne1d": 30, "ne2d": 100, - "ne3d": 236, - "quality_histogram": "[0, 0, 5, 19, 15, 43, 46, 15, 18, 10, 18, 7, 13, 5, 5, 3, 5, 7, 1, 1]", - "total_badness": 719.47619178 + "ne3d": 242, + "quality_histogram": "[0, 0, 6, 15, 20, 43, 45, 12, 21, 10, 21, 8, 12, 4, 4, 6, 4, 7, 3, 1]", + "total_badness": 732.39744461 }, { "angles_tet": [ @@ -2658,32 +2658,32 @@ { "angles_tet": [ 14.198, - 139.5 + 139.21 ], "angles_trig": [ 16.856, - 128.1 + 130.65 ], "ne1d": 74, "ne2d": 412, - "ne3d": 1528, - "quality_histogram": "[0, 0, 0, 0, 0, 4, 3, 13, 19, 42, 60, 98, 134, 187, 217, 221, 223, 168, 102, 37]", - "total_badness": 2162.2296255 + "ne3d": 1469, + "quality_histogram": "[0, 0, 0, 0, 0, 4, 4, 14, 19, 35, 47, 97, 138, 175, 212, 219, 185, 176, 116, 28]", + "total_badness": 2074.3086016 }, { "angles_tet": [ - 25.166, - 141.75 + 27.095, + 137.84 ], "angles_trig": [ - 25.169, - 121.79 + 24.237, + 119.8 ], "ne1d": 122, "ne2d": 1066, - "ne3d": 10781, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 36, 102, 284, 653, 1130, 1662, 2237, 2320, 1773, 574]", - "total_badness": 13258.625001 + "ne3d": 10660, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43, 130, 314, 601, 1086, 1736, 2144, 2330, 1732, 538]", + "total_badness": 13133.278179 } ], "square.in2d": [ @@ -2965,93 +2965,93 @@ "torus.geo": [ { "angles_tet": [ - 17.338, - 149.86 + 16.222, + 149.63 ], "angles_trig": [ - 16.308, - 134.73 + 16.3, + 128.3 ], "ne1d": 0, "ne2d": 2526, - "ne3d": 5237, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 7, 22, 75, 210, 359, 522, 662, 731, 681, 655, 545, 424, 271, 73]", - "total_badness": 7726.4646332 + "ne3d": 5259, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 8, 21, 96, 235, 434, 542, 643, 705, 671, 631, 542, 406, 252, 73]", + "total_badness": 7849.7741851 }, { "angles_tet": [ - 1.4555, - 176.75 + 2.7715, + 172.56 ], "angles_trig": [ - 4.9052, - 165.77 + 5.1767, + 165.44 ], "ne1d": 0, "ne2d": 648, - "ne3d": 3414, - "quality_histogram": "[22, 222, 485, 571, 446, 416, 284, 221, 159, 158, 112, 78, 63, 50, 38, 36, 22, 15, 13, 3]", - "total_badness": 16930.551213 + "ne3d": 3591, + "quality_histogram": "[7, 99, 277, 463, 516, 456, 339, 316, 239, 207, 166, 114, 108, 81, 65, 60, 40, 22, 16, 0]", + "total_badness": 14148.85468 }, { "angles_tet": [ - 20.366, - 140.42 + 19.703, + 139.32 ], "angles_trig": [ - 20.852, - 122.03 + 20.821, + 122.02 ], "ne1d": 0, "ne2d": 1430, - "ne3d": 2549, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 2, 17, 63, 133, 253, 331, 392, 388, 337, 248, 190, 143, 52]", - "total_badness": 3677.6528084 + "ne3d": 2519, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 4, 16, 62, 155, 260, 318, 383, 374, 317, 258, 186, 137, 49]", + "total_badness": 3649.6105593 }, { "angles_tet": [ - 21.625, - 147.22 + 16.948, + 148.0 ], "angles_trig": [ - 17.098, - 124.24 + 17.058, + 126.19 ], "ne1d": 0, "ne2d": 2526, - "ne3d": 5029, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 5, 35, 155, 298, 449, 597, 701, 718, 654, 559, 475, 312, 70]", - "total_badness": 7228.135752 + "ne3d": 4966, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 4, 12, 46, 172, 335, 478, 615, 629, 669, 610, 546, 485, 296, 69]", + "total_badness": 7211.0429386 }, { "angles_tet": [ - 20.858, - 141.38 + 24.543, + 140.91 ], "angles_trig": [ - 24.104, - 121.3 + 24.07, + 122.58 ], "ne1d": 0, "ne2d": 5824, - "ne3d": 20540, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 5, 43, 142, 445, 927, 1457, 2377, 3214, 3845, 4066, 3130, 888]", - "total_badness": 25815.071924 + "ne3d": 20486, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 2, 42, 154, 470, 959, 1582, 2370, 3177, 3804, 3967, 3038, 921]", + "total_badness": 25818.784377 }, { "angles_tet": [ - 23.724, - 142.9 + 23.266, + 139.23 ], "angles_trig": [ - 25.04, - 120.67 + 25.162, + 124.18 ], "ne1d": 0, "ne2d": 16198, - "ne3d": 134720, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 4, 25, 176, 613, 1823, 4698, 10061, 18130, 27392, 33341, 28867, 9590]", - "total_badness": 160914.50246 + "ne3d": 132598, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 4, 35, 203, 607, 1786, 4546, 9911, 18029, 26777, 32913, 28265, 9522]", + "total_badness": 158396.27588 } ], "trafo.geo": [ @@ -3066,9 +3066,9 @@ ], "ne1d": 690, "ne2d": 1662, - "ne3d": 5010, - "quality_histogram": "[0, 0, 1, 0, 2, 12, 24, 42, 106, 207, 269, 365, 437, 563, 648, 692, 575, 512, 433, 122]", - "total_badness": 7271.8276032 + "ne3d": 4993, + "quality_histogram": "[0, 0, 1, 0, 1, 12, 24, 42, 104, 208, 261, 358, 446, 538, 653, 688, 584, 516, 431, 126]", + "total_badness": 7234.6713061 }, { "angles_tet": [ @@ -3082,8 +3082,8 @@ "ne1d": 390, "ne2d": 516, "ne3d": 1332, - "quality_histogram": "[0, 1, 5, 13, 16, 44, 80, 117, 124, 148, 155, 138, 122, 109, 88, 79, 52, 27, 11, 3]", - "total_badness": 2751.8122025 + "quality_histogram": "[0, 1, 5, 13, 16, 44, 80, 117, 127, 149, 156, 138, 121, 106, 86, 80, 52, 27, 11, 3]", + "total_badness": 2755.5110729 }, { "angles_tet": [ @@ -3097,8 +3097,8 @@ "ne1d": 512, "ne2d": 864, "ne3d": 2356, - "quality_histogram": "[0, 0, 0, 3, 9, 11, 44, 63, 119, 147, 191, 204, 314, 386, 342, 235, 133, 87, 44, 24]", - "total_badness": 3886.5793174 + "quality_histogram": "[0, 0, 0, 3, 9, 13, 43, 64, 120, 145, 190, 205, 312, 384, 344, 235, 134, 88, 43, 24]", + "total_badness": 3889.567942 }, { "angles_tet": [ @@ -3111,9 +3111,9 @@ ], "ne1d": 690, "ne2d": 1662, - "ne3d": 4904, - "quality_histogram": "[0, 0, 1, 0, 1, 7, 20, 39, 107, 201, 255, 345, 419, 519, 636, 699, 558, 526, 444, 127]", - "total_badness": 7068.8896003 + "ne3d": 4895, + "quality_histogram": "[0, 0, 1, 0, 1, 7, 20, 38, 102, 204, 242, 344, 426, 519, 643, 703, 569, 514, 435, 127]", + "total_badness": 7049.258721 }, { "angles_tet": [ @@ -3126,41 +3126,41 @@ ], "ne1d": 1050, "ne2d": 3670, - "ne3d": 15463, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 13, 28, 56, 152, 457, 1304, 1913, 2007, 2196, 2233, 2376, 2104, 622]", - "total_badness": 20158.89476 + "ne3d": 15310, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 2, 13, 27, 60, 163, 450, 1302, 1909, 2002, 2169, 2215, 2318, 2083, 597]", + "total_badness": 19985.425031 }, { "angles_tet": [ 14.338, - 149.5 + 149.48 ], "angles_trig": [ - 20.032, + 19.874, 128.69 ], "ne1d": 1722, "ne2d": 9990, - "ne3d": 69583, - "quality_histogram": "[0, 0, 0, 0, 0, 3, 48, 1403, 715, 357, 613, 960, 1822, 4065, 6566, 10140, 13360, 14575, 11301, 3655]", - "total_badness": 89029.875437 + "ne3d": 69009, + "quality_histogram": "[0, 0, 0, 0, 0, 2, 49, 1398, 718, 359, 607, 997, 1786, 4101, 6360, 9955, 13187, 14433, 11280, 3777]", + "total_badness": 88274.805093 } ], "twobricks.geo": [ { "angles_tet": [ - 29.387, - 127.84 + 29.453, + 134.56 ], "angles_trig": [ - 24.205, - 111.42 + 26.574, + 91.538 ], "ne1d": 72, "ne2d": 50, - "ne3d": 41, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 4, 16, 5, 5, 1, 0, 0, 0]", - "total_badness": 62.968824916 + "ne3d": 36, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 8, 2, 18, 2, 4, 0, 0, 0, 0]", + "total_badness": 55.618194358 }, { "angles_tet": [ @@ -3183,29 +3183,29 @@ 125.92 ], "angles_trig": [ - 29.606, + 29.602, 120.18 ], "ne1d": 56, "ne2d": 34, "ne3d": 22, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 4, 0, 0, 8, 0, 0, 0, 0]", - "total_badness": 35.041320265 + "total_badness": 35.041320435 }, { "angles_tet": [ - 29.387, - 127.84 + 29.453, + 134.56 ], "angles_trig": [ - 24.205, - 111.42 + 26.574, + 91.538 ], "ne1d": 72, "ne2d": 50, - "ne3d": 41, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 4, 16, 5, 5, 1, 0, 0, 0]", - "total_badness": 62.968824736 + "ne3d": 36, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 8, 2, 18, 2, 4, 0, 0, 0, 0]", + "total_badness": 55.618194358 }, { "angles_tet": [ @@ -3241,18 +3241,18 @@ "twocubes.geo": [ { "angles_tet": [ - 29.387, - 127.84 + 29.453, + 134.56 ], "angles_trig": [ - 24.205, - 111.42 + 26.574, + 91.538 ], "ne1d": 72, "ne2d": 50, - "ne3d": 41, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 4, 16, 5, 5, 1, 0, 0, 0]", - "total_badness": 62.968824916 + "ne3d": 36, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 8, 2, 18, 2, 4, 0, 0, 0, 0]", + "total_badness": 55.618194358 }, { "angles_tet": [ @@ -3275,29 +3275,29 @@ 125.92 ], "angles_trig": [ - 29.606, + 29.602, 120.18 ], "ne1d": 56, "ne2d": 34, "ne3d": 22, "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 4, 0, 0, 8, 0, 0, 0, 0]", - "total_badness": 35.041320265 + "total_badness": 35.041320435 }, { "angles_tet": [ - 29.387, - 127.84 + 29.453, + 134.56 ], "angles_trig": [ - 24.205, - 111.42 + 26.574, + 91.538 ], "ne1d": 72, "ne2d": 50, - "ne3d": 41, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 4, 16, 5, 5, 1, 0, 0, 0]", - "total_badness": 62.968824736 + "ne3d": 36, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 8, 2, 18, 2, 4, 0, 0, 0, 0]", + "total_badness": 55.618194358 }, { "angles_tet": [ @@ -3333,18 +3333,18 @@ "twocyl.geo": [ { "angles_tet": [ - 15.875, - 154.45 + 18.71, + 143.19 ], "angles_trig": [ - 18.029, - 132.57 + 21.37, + 119.53 ], "ne1d": 144, "ne2d": 408, - "ne3d": 555, - "quality_histogram": "[0, 0, 0, 0, 0, 2, 13, 22, 15, 25, 40, 61, 62, 75, 90, 57, 53, 34, 3, 3]", - "total_badness": 891.41800481 + "ne3d": 568, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 4, 7, 23, 29, 54, 63, 93, 104, 78, 63, 33, 16, 0]", + "total_badness": 840.05938749 }, { "angles_tet": [ @@ -3363,63 +3363,63 @@ }, { "angles_tet": [ - 12.182, - 163.59 + 12.305, + 161.08 ], "angles_trig": [ 13.77, - 141.93 + 138.15 ], "ne1d": 102, "ne2d": 234, - "ne3d": 445, - "quality_histogram": "[0, 0, 0, 4, 8, 19, 29, 45, 57, 32, 21, 29, 26, 33, 26, 30, 47, 20, 15, 4]", - "total_badness": 892.47855902 + "ne3d": 431, + "quality_histogram": "[0, 0, 0, 0, 5, 11, 17, 27, 44, 29, 15, 24, 36, 41, 37, 38, 61, 32, 12, 2]", + "total_badness": 764.91980689 }, { "angles_tet": [ - 19.827, - 141.68 + 20.964, + 136.15 ], "angles_trig": [ - 18.029, - 127.96 + 21.946, + 111.07 ], "ne1d": 144, "ne2d": 408, - "ne3d": 536, - "quality_histogram": "[0, 0, 0, 0, 0, 1, 11, 21, 15, 17, 42, 59, 52, 75, 79, 67, 54, 31, 10, 2]", - "total_badness": 846.80867342 + "ne3d": 565, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 4, 11, 31, 40, 67, 86, 118, 92, 59, 48, 8, 0]", + "total_badness": 814.48177255 }, { "angles_tet": [ - 17.878, - 145.86 + 19.587, + 141.43 ], "angles_trig": [ - 20.624, - 129.54 + 20.612, + 120.68 ], "ne1d": 214, "ne2d": 904, - "ne3d": 1685, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 1, 1, 5, 15, 24, 84, 112, 164, 272, 308, 261, 240, 163, 35]", - "total_badness": 2237.4434395 + "ne3d": 1687, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 1, 4, 17, 23, 82, 133, 171, 267, 295, 262, 238, 160, 34]", + "total_badness": 2245.8031773 }, { "angles_tet": [ - 24.457, - 138.81 + 24.217, + 137.42 ], "angles_trig": [ - 27.627, - 116.01 + 23.842, + 128.3 ], "ne1d": 350, "ne2d": 2358, - "ne3d": 10887, - "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 17, 76, 186, 444, 871, 1513, 2300, 2629, 2170, 676]", - "total_badness": 13109.548598 + "ne3d": 10723, + "quality_histogram": "[0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 17, 64, 177, 444, 931, 1609, 2183, 2523, 2108, 661]", + "total_badness": 12938.174838 } ] } \ No newline at end of file diff --git a/tests/pytest/test_nonnative_master b/tests/pytest/test_nonnative_master new file mode 100644 index 00000000..711623bb --- /dev/null +++ b/tests/pytest/test_nonnative_master @@ -0,0 +1,93 @@ +tstart (must be vertically): (0, 1.82574) +tend (must be vertically): (0, -1.82574) +sin (must not be 0) = 0.447214sin (must not be 0) = 0.447214tstart (must be vertically): (0, 1.82574) +tend (must be vertically): (0, -1.82574) +sin (must not be 0) = 0.447214sin (must not be 0) = 0.447214tstart (must be vertically): (0, 1.82574) +tend (must be vertically): (0, -1.82574) +sin (must not be 0) = 0.447214sin (must not be 0) = 0.447214tstart (must be vertically): (0, 1.82574) +tend (must be vertically): (0, -1.82574) +sin (must not be 0) = 0.447214sin (must not be 0) = 0.447214tstart (must be vertically): (0, 1.82574) +tend (must be vertically): (0, -1.82574) +sin (must not be 0) = 0.447214sin (must not be 0) = 0.447214tstart (must be vertically): (0, 1.82574) +tend (must be vertically): (0, -1.82574) +generate boundarycondition.geo +needed 0.12342000007629395 seconds +generate boxcyl.geo +needed 0.801245927810669 seconds +generate circle_on_cube.geo +needed 0.48620080947875977 seconds +generate cone.geo +needed 1.186929702758789 seconds +generate cube.geo +needed 0.09043073654174805 seconds +generate cubeandring.geo +needed 2.1420021057128906 seconds +generate cubeandspheres.geo +needed 0.26427721977233887 seconds +generate cubemcyl.geo +needed 18.373886108398438 seconds +generate cubemsphere.geo +needed 3.6954052448272705 seconds +generate cylinder.geo +needed 0.44164204597473145 seconds +generate cylsphere.geo +needed 0.8774328231811523 seconds +generate ellipsoid.geo +needed 1.4510962963104248 seconds +generate ellipticcone.geo +needed 3.0906074047088623 seconds +generate ellipticcyl.geo +needed 2.0780415534973145 seconds +generate extrusion.geo +needed 0.40680599212646484 seconds +generate fichera.geo +needed 0.1265270709991455 seconds +generate hinge.stl +needed 5.519087553024292 seconds +generate lense.in2d +needed 0.05641365051269531 seconds +generate lshape3d.geo +needed 0.09937620162963867 seconds +generate manyholes.geo +needed 9.43863034248352 seconds +generate manyholes2.geo +needed 7.40019965171814 seconds +generate matrix.geo +needed 3.734792709350586 seconds +generate ortho.geo +needed 0.09516167640686035 seconds +generate part1.stl +needed 2.6940107345581055 seconds +generate period.geo +needed 2.709449291229248 seconds +generate revolution.geo +needed 7.7064368724823 seconds +generate sculpture.geo +needed 0.6283819675445557 seconds +generate shaft.geo +needed 2.921243190765381 seconds +generate shell.geo +generate sphere.geo +needed 0.18424725532531738 seconds +generate sphereincube.geo +needed 0.6060984134674072 seconds +generate square.in2d +needed 0.021883487701416016 seconds +generate squarecircle.in2d +needed 0.04081606864929199 seconds +generate squarehole.in2d +needed 0.03681302070617676 seconds +generate torus.geo +needed 6.590093612670898 seconds +generate trafo.geo +needed 3.2712368965148926 seconds +generate twobricks.geo +needed 0.13849091529846191 seconds +generate twocubes.geo +needed 0.13361692428588867 seconds +generate twocyl.geo +needed 0.8036918640136719 seconds +generate plane.stl +needed 15.712460041046143 seconds +done +sin (must not be 0) = 0.447214sin (must not be 0) = 0.447214 \ No newline at end of file From 76c224c36654e2427bb7078302831d9f8b235468 Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Wed, 28 Feb 2024 09:55:58 +0100 Subject: [PATCH 7/8] gitignore --- .gitignore | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitignore b/.gitignore index a616be07..6eb7a9e4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,11 @@ *.whl dist build +*.vol.gz +*.vol +*.ini +__pycache__ +*.json +*.zip +.cache +*.patch From 231b7af795bf42ec2b423b91e31d7dec8614a565 Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Wed, 28 Feb 2024 16:03:00 +0100 Subject: [PATCH 8/8] skip very fine cylinder.geo test (inconsistent results) --- tests/pytest/test_tutorials.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/pytest/test_tutorials.py b/tests/pytest/test_tutorials.py index e7c4d81a..f6e3c6df 100644 --- a/tests/pytest/test_tutorials.py +++ b/tests/pytest/test_tutorials.py @@ -72,6 +72,8 @@ def getMeshingparameters(filename): return standard[:-1] if filename == "screw.step": return standard[3:] # coarser meshes don't work here + if filename == "cylinder.geo": + return standard[0:-1] # very fine gives inconsistent reults if filename == "cylsphere.geo": return standard[0:2] + standard[3:] # coarse gives inconsistent reults (other mesh on MacOS) if filename == "part1.stl":