diff --git a/vtkm/filter/vector_analysis/worklet/gradient/StructuredPointGradient.h b/vtkm/filter/vector_analysis/worklet/gradient/StructuredPointGradient.h index 8d0c118f6..33e1cb747 100644 --- a/vtkm/filter/vector_analysis/worklet/gradient/StructuredPointGradient.h +++ b/vtkm/filter/vector_analysis/worklet/gradient/StructuredPointGradient.h @@ -89,34 +89,34 @@ struct StructuredPointGradient : public vtkm::worklet::WorkletPointNeighborhood if (boundary.IsRadiusInXBoundary(1)) { auto dx = inputField.GetUnchecked(1, 0, 0) - inputField.GetUnchecked(-1, 0, 0); - outputGradient[0] = static_cast(dx * (r[0] * 0.5f)); + outputGradient[0] = static_cast((dx * 0.5f) / r[0]); } else { auto dx = inputField.Get(1, 0, 0) - inputField.Get(-1, 0, 0); - outputGradient[0] = static_cast(dx * r[0]); + outputGradient[0] = static_cast(dx / r[0]); } if (boundary.IsRadiusInYBoundary(1)) { auto dy = inputField.GetUnchecked(0, 1, 0) - inputField.GetUnchecked(0, -1, 0); - outputGradient[1] = static_cast(dy * r[1] * 0.5f); + outputGradient[1] = static_cast((dy * 0.5f) / r[1]); } else { auto dy = inputField.Get(0, 1, 0) - inputField.Get(0, -1, 0); - outputGradient[1] = static_cast(dy * (r[1])); + outputGradient[1] = static_cast(dy / (r[1])); } if (boundary.IsRadiusInZBoundary(1)) { auto dz = inputField.GetUnchecked(0, 0, 1) - inputField.GetUnchecked(0, 0, -1); - outputGradient[2] = static_cast(dz * r[2] * 0.5f); + outputGradient[2] = static_cast((dz * 0.5f) / r[2]); } else { auto dz = inputField.Get(0, 0, 1) - inputField.Get(0, 0, -1); - outputGradient[2] = static_cast(dz * (r[2])); + outputGradient[2] = static_cast(dz / (r[2])); } #if (defined(VTKM_CUDA) && defined(VTKM_GCC)) #pragma GCC diagnostic pop