mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-09-08 21:33:55 +00:00
Remove unneeded template parameters from Gradient.
This commit is contained in:
parent
35276434bd
commit
d3512879d1
@ -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]);
|
||||
|
Loading…
Reference in New Issue
Block a user