Remove unneeded template parameters from Gradient.

This commit is contained in:
Robert Maynard 2020-03-19 08:32:43 -04:00
parent 35276434bd
commit d3512879d1
5 changed files with 16 additions and 38 deletions

@ -50,7 +50,7 @@ struct DeducedPointGrad
template <typename CellSetType>
void operator()(const CellSetType& cellset) const
{
vtkm::worklet::DispatcherMapTopology<PointGradient<T>> dispatcher;
vtkm::worklet::DispatcherMapTopology<PointGradient> dispatcher;
dispatcher.Invoke(cellset, //topology to iterate on a per point basis
cellset, //whole cellset in
*this->Points,
@ -60,7 +60,7 @@ struct DeducedPointGrad
void operator()(const vtkm::cont::CellSetStructured<3>& cellset) const
{
vtkm::worklet::DispatcherPointNeighborhood<StructuredPointGradient<T>> dispatcher;
vtkm::worklet::DispatcherPointNeighborhood<StructuredPointGradient> dispatcher;
dispatcher.Invoke(cellset, //topology to iterate on a per point basis
*this->Points,
*this->Field,
@ -71,7 +71,7 @@ struct DeducedPointGrad
void operator()(const vtkm::cont::CellSetPermutation<vtkm::cont::CellSetStructured<3>,
PermIterType>& cellset) const
{
vtkm::worklet::DispatcherPointNeighborhood<StructuredPointGradient<T>> dispatcher;
vtkm::worklet::DispatcherPointNeighborhood<StructuredPointGradient> dispatcher;
dispatcher.Invoke(cellset, //topology to iterate on a per point basis
*this->Points,
*this->Field,
@ -80,7 +80,7 @@ struct DeducedPointGrad
void operator()(const vtkm::cont::CellSetStructured<2>& cellset) const
{
vtkm::worklet::DispatcherPointNeighborhood<StructuredPointGradient<T>> dispatcher;
vtkm::worklet::DispatcherPointNeighborhood<StructuredPointGradient> dispatcher;
dispatcher.Invoke(cellset, //topology to iterate on a per point basis
*this->Points,
*this->Field,
@ -91,7 +91,7 @@ struct DeducedPointGrad
void operator()(const vtkm::cont::CellSetPermutation<vtkm::cont::CellSetStructured<2>,
PermIterType>& cellset) const
{
vtkm::worklet::DispatcherPointNeighborhood<StructuredPointGradient<T>> dispatcher;
vtkm::worklet::DispatcherPointNeighborhood<StructuredPointGradient> dispatcher;
dispatcher.Invoke(cellset, //topology to iterate on a per point basis
*this->Points,
*this->Field,
@ -241,12 +241,7 @@ public:
const vtkm::cont::ArrayHandle<T, S>& field,
GradientOutputFields<T>& extraOutput)
{
using DispatcherType =
vtkm::worklet::DispatcherMapTopology<vtkm::worklet::gradient::CellGradient<T>>;
vtkm::worklet::gradient::CellGradient<T> worklet;
DispatcherType dispatcher(worklet);
vtkm::worklet::DispatcherMapTopology<vtkm::worklet::gradient::CellGradient> dispatcher;
dispatcher.Invoke(cells, coords, field, extraOutput);
return extraOutput.Gradient;
}

@ -429,8 +429,7 @@ public:
const WholeFieldIn& inputField,
NormalType& normal) const
{
using T = typename WholeFieldIn::ValueType;
vtkm::worklet::gradient::PointGradient<T> gradient;
vtkm::worklet::gradient::PointGradient gradient;
gradient(numCells, cellIds, pointId, geometry, pointCoordinates, inputField, normal);
}
@ -446,8 +445,6 @@ public:
const WholeFieldIn& inputField,
NormalType& normal) const
{
using T = typename WholeFieldIn::ValueType;
//Optimization for structured cellsets so we can call StructuredPointGradient
//and have way faster gradients
vtkm::exec::ConnectivityStructured<Point, Cell, 3> pointGeom(geometry);
@ -459,7 +456,7 @@ public:
vtkm::exec::FieldNeighborhood<decltype(pointPortal)> points(pointPortal, boundary);
vtkm::exec::FieldNeighborhood<decltype(fieldPortal)> field(fieldPortal, boundary);
vtkm::worklet::gradient::StructuredPointGradient<T> gradient;
vtkm::worklet::gradient::StructuredPointGradient gradient;
gradient(boundary, points, field, normal);
}
};
@ -506,8 +503,7 @@ public:
const WholeWeightsIn& weights,
NormalType& normal) const
{
using T = typename WholeFieldIn::ValueType;
vtkm::worklet::gradient::PointGradient<T> gradient;
vtkm::worklet::gradient::PointGradient gradient;
NormalType grad1;
gradient(numCells, cellIds, pointId, geometry, pointCoordinates, inputField, grad1);
@ -531,7 +527,6 @@ public:
const WholeWeightsIn& weights,
NormalType& normal) const
{
using T = typename WholeFieldIn::ValueType;
//Optimization for structured cellsets so we can call StructuredPointGradient
//and have way faster gradients
vtkm::exec::ConnectivityStructured<Point, Cell, 3> pointGeom(geometry);
@ -543,7 +538,7 @@ public:
vtkm::exec::FieldNeighborhood<decltype(pointPortal)> points(pointPortal, boundary);
vtkm::exec::FieldNeighborhood<decltype(fieldPortal)> field(fieldPortal, boundary);
vtkm::worklet::gradient::StructuredPointGradient<T> gradient;
vtkm::worklet::gradient::StructuredPointGradient gradient;
NormalType grad1;
gradient(boundary, points, field, grad1);

@ -24,10 +24,6 @@ namespace worklet
namespace gradient
{
template <typename T>
using CellGradientInType = vtkm::List<T>;
template <typename T>
struct CellGradient : vtkm::worklet::WorkletVisitCellsWithPoints
{
using ControlSignature = void(CellSetIn,

@ -25,10 +25,6 @@ namespace worklet
namespace gradient
{
template <typename T>
using PointGradientInType = vtkm::List<T>;
template <typename T>
struct PointGradient : public vtkm::worklet::WorkletVisitPointsWithCells
{
using ControlSignature = void(CellSetIn,

@ -22,10 +22,6 @@ namespace worklet
namespace gradient
{
template <typename T>
using StructuredPointGradientInType = vtkm::List<T>;
template <typename T>
struct StructuredPointGradient : public vtkm::worklet::WorkletPointNeighborhood
{
@ -51,9 +47,9 @@ struct StructuredPointGradient : public vtkm::worklet::WorkletPointNeighborhood
vtkm::Vec<CT, 3> xi, eta, zeta;
this->Jacobian(inputPoints, boundary, xi, eta, zeta); //store the metrics in xi,eta,zeta
T dxi = inputField.Get(1, 0, 0) - inputField.Get(-1, 0, 0);
T deta = inputField.Get(0, 1, 0) - inputField.Get(0, -1, 0);
T dzeta = inputField.Get(0, 0, 1) - inputField.Get(0, 0, -1);
auto dxi = inputField.Get(1, 0, 0) - inputField.Get(-1, 0, 0);
auto deta = inputField.Get(0, 1, 0) - inputField.Get(0, -1, 0);
auto dzeta = inputField.Get(0, 0, 1) - inputField.Get(0, 0, -1);
dxi = (boundary.IsRadiusInXBoundary(1) ? dxi * 0.5f : dxi);
deta = (boundary.IsRadiusInYBoundary(1) ? deta * 0.5f : deta);
@ -86,9 +82,9 @@ struct StructuredPointGradient : public vtkm::worklet::WorkletPointNeighborhood
r[1] = (boundary.IsRadiusInYBoundary(1) ? r[1] * 0.5f : r[1]);
r[2] = (boundary.IsRadiusInZBoundary(1) ? r[2] * 0.5f : r[2]);
const T dx = inputField.Get(1, 0, 0) - inputField.Get(-1, 0, 0);
const T dy = inputField.Get(0, 1, 0) - inputField.Get(0, -1, 0);
const T dz = inputField.Get(0, 0, 1) - inputField.Get(0, 0, -1);
auto dx = inputField.Get(1, 0, 0) - inputField.Get(-1, 0, 0);
auto dy = inputField.Get(0, 1, 0) - inputField.Get(0, -1, 0);
auto dz = inputField.Get(0, 0, 1) - inputField.Get(0, 0, -1);
outputGradient[0] = static_cast<OT>(dx * r[0]);
outputGradient[1] = static_cast<OT>(dy * r[1]);