diff --git a/vtkm/filter/testing/UnitTestMeshQualityFilter.cxx b/vtkm/filter/testing/UnitTestMeshQualityFilter.cxx index 16bf995b7..755cda5dd 100644 --- a/vtkm/filter/testing/UnitTestMeshQualityFilter.cxx +++ b/vtkm/filter/testing/UnitTestMeshQualityFilter.cxx @@ -271,13 +271,14 @@ int TestMeshQuality() metrics.push_back(vtkm::filter::CellMetric::DIMENSION); metricName.push_back("dimension"); - FloatVec relSizeExpectedValues = { (float)0.329561, (float)0.185378, 1, -1, -1, 1 }; + FloatVec relSizeExpectedValues = { (float)0.151235, (float)0.085069, (float)0.337149, -1, -1, + (float)0.185378 }; expectedValues.push_back(relSizeExpectedValues); metrics.push_back(vtkm::filter::CellMetric::RELATIVE_SIZE_SQUARED); metricName.push_back("relativeSizeSquared"); - FloatVec shapeAndSizeExpectedValues = { (float)0.944755, (float)0.444444, (float)0.756394, -1, -1, - (float)0.68723 }; + FloatVec shapeAndSizeExpectedValues = { (float)0.142880, (float)0.037809, (float)0.255017, -1, -1, + (float)0.127397 }; expectedValues.push_back(shapeAndSizeExpectedValues); metrics.push_back(vtkm::filter::CellMetric::SHAPE_AND_SIZE); metricName.push_back("shapeAndSize"); diff --git a/vtkm/worklet/cellmetrics/CellRelativeSizeSquaredMetric.h b/vtkm/worklet/cellmetrics/CellRelativeSizeSquaredMetric.h index 1aa40dd50..db3295c92 100644 --- a/vtkm/worklet/cellmetrics/CellRelativeSizeSquaredMetric.h +++ b/vtkm/worklet/cellmetrics/CellRelativeSizeSquaredMetric.h @@ -153,40 +153,35 @@ VTKM_EXEC OutType CellRelativeSizeSquaredMetric(const vtkm::IdComponent& numPts, worklet.RaiseError("Edge ratio metric(hexahedral) requires 8 points."); return OutType(-1.); } - printf("In hex RSS, spot 0\n"); - OutType X1x = (pts[0][1] - pts[0][0]) + (pts[0][2] - pts[0][3]) + (pts[0][5] - pts[0][4]) + - (pts[0][6] - pts[0][7]); - printf("In hex RSS, spot 1\n"); - OutType X1y = (pts[1][1] - pts[1][0]) + (pts[1][2] - pts[1][3]) + (pts[1][5] - pts[1][4]) + - (pts[1][6] - pts[1][7]); - OutType X1z = (pts[2][1] - pts[2][0]) + (pts[2][2] - pts[2][3]) + (pts[2][5] - pts[2][4]) + - (pts[2][6] - pts[2][7]); + OutType X1x = (pts[1][0] - pts[0][0]) + (pts[2][0] - pts[3][0]) + (pts[5][0] - pts[4][0]) + + (pts[6][0] - pts[7][0]); + OutType X1y = (pts[1][1] - pts[0][1]) + (pts[2][1] - pts[3][1]) + (pts[5][1] - pts[4][1]) + + (pts[6][1] - pts[7][1]); + OutType X1z = (pts[1][2] - pts[0][2]) + (pts[2][2] - pts[3][2]) + (pts[5][2] - pts[4][2]) + + (pts[6][2] - pts[7][2]); - OutType X2x = (pts[0][3] - pts[0][0]) + (pts[0][2] - pts[0][1]) + (pts[0][7] - pts[0][4]) + - (pts[0][6] - pts[0][5]); - OutType X2y = (pts[1][3] - pts[1][0]) + (pts[1][2] - pts[1][1]) + (pts[1][7] - pts[1][4]) + - (pts[1][6] - pts[1][5]); - OutType X2z = (pts[2][3] - pts[2][0]) + (pts[2][2] - pts[2][1]) + (pts[2][7] - pts[2][4]) + - (pts[2][6] - pts[2][5]); + OutType X2x = (pts[2][0] - pts[0][0]) + (pts[2][0] - pts[1][0]) + (pts[7][0] - pts[4][0]) + + (pts[6][0] - pts[5][0]); + OutType X2y = (pts[2][1] - pts[0][1]) + (pts[2][1] - pts[1][1]) + (pts[7][1] - pts[4][1]) + + (pts[6][1] - pts[5][1]); + OutType X2z = (pts[2][2] - pts[0][2]) + (pts[2][2] - pts[1][2]) + (pts[7][2] - pts[4][2]) + + (pts[6][2] - pts[5][2]); - OutType X3x = (pts[0][4] - pts[0][0]) + (pts[0][5] - pts[0][1]) + (pts[0][6] - pts[0][2]) + - (pts[0][7] - pts[0][3]); - OutType X3y = (pts[1][4] - pts[1][0]) + (pts[1][5] - pts[1][1]) + (pts[1][6] - pts[1][2]) + - (pts[1][7] - pts[1][3]); - OutType X3z = (pts[2][4] - pts[2][0]) + (pts[2][5] - pts[2][1]) + (pts[2][6] - pts[2][2]) + - (pts[2][7] - pts[2][3]); - printf("spot 1\n"); + OutType X3x = (pts[4][0] - pts[0][0]) + (pts[5][0] - pts[1][0]) + (pts[6][0] - pts[2][0]) + + (pts[7][0] - pts[3][0]); + OutType X3y = (pts[4][1] - pts[0][1]) + (pts[5][1] - pts[1][1]) + (pts[6][1] - pts[2][1]) + + (pts[7][1] - pts[3][1]); + OutType X3z = (pts[4][2] - pts[0][2]) + (pts[5][2] - pts[1][2]) + (pts[6][2] - pts[2][2]) + + (pts[7][2] - pts[3][2]); vtkm::Matrix A8; vtkm::MatrixSetRow(A8, 0, vtkm::Vec(X1x, X1y, X1z)); vtkm::MatrixSetRow(A8, 1, vtkm::Vec(X2x, X2y, X2z)); vtkm::MatrixSetRow(A8, 2, vtkm::Vec(X3x, X3y, X3z)); - printf("spot 2\n"); OutType D = vtkm::MatrixDeterminant(A8); D = D / (OutType(64.) * avgVolume); if (D == OutType(0.)) return OutType(0.); OutType q = vtkm::Pow(vtkm::Min(D, OutType(1.) / D), OutType(2.)); - printf("Done with hex RSS\n"); return OutType(q); }