Go to the documentation of this file.
10 #ifndef vtk_m_worklet_WorkletCellNeighborhood_h
11 #define vtk_m_worklet_WorkletCellNeighborhood_h
28 template <
typename WorkletType>
29 class DispatcherCellNeighborhood;
34 template <
typename Worklet>
40 template <
typename OutToInArrayType,
41 typename VisitArrayType,
42 typename ThreadToOutArrayType,
46 const OutToInArrayType& outToIn,
47 const VisitArrayType& visit,
48 const ThreadToOutArrayType& threadToOut,
51 Dimension>& inputDomain
54 const vtkm::Id outIndex = threadToOut.Get(threadIndex);
56 threadIndex, outToIn.Get(outIndex), visit.Get(outIndex), outIndex, inputDomain);
68 std::is_same<ScatterType, vtkm::worklet::ScatterIdentity>::value;
69 static constexpr
bool IsMaskNone = std::is_same<MaskType, vtkm::worklet::MaskNone>::value;
72 template <
bool Cond,
typename ReturnType>
73 using EnableFnWhen =
typename std::enable_if<Cond, ReturnType>::type;
76 template <
typename OutToInArrayType,
77 typename VisitArrayType,
78 typename ThreadToOutArrayType,
79 typename InputDomainType,
87 const ThreadToOutArrayType&
vtkmNotUsed(threadToOut),
88 const InputDomainType& connectivity)
const
91 threadIndex3D, threadIndex1D, connectivity);
95 template <
typename OutToInArrayType,
96 typename VisitArrayType,
97 typename ThreadToOutArrayType,
98 typename InputDomainType,
104 const OutToInArrayType& outToIn,
105 const VisitArrayType& visit,
106 const ThreadToOutArrayType& threadToOut,
107 const InputDomainType& connectivity)
const
109 const vtkm::Id outIndex = threadToOut.Get(threadIndex1D);
112 outToIn.Get(outIndex),
A tag used to identify the point elements in a topology.
Definition: TopologyElementTag.h:34
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC vtkm::exec::arg::ThreadIndicesCellNeighborhood GetThreadIndices(vtkm::Id threadIndex, const OutToInArrayType &outToIn, const VisitArrayType &visit, const ThreadToOutArrayType &threadToOut, const vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell, Dimension > &inputDomain) const
Point neighborhood worklets use the related thread indices class.
Definition: WorkletCellNeighborhood.h:44
static constexpr bool IsMaskNone
Definition: WorkletCellNeighborhood.h:69
#define VTKM_EXEC
Definition: ExportMacros.h:51
Groups connected points that have the same field value.
Definition: Atomic.h:19
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC EnableFnWhen<!(S &&M), vtkm::exec::arg::ThreadIndicesCellNeighborhood > GetThreadIndices(vtkm::Id threadIndex1D, const vtkm::Id3 &threadIndex3D, const OutToInArrayType &outToIn, const VisitArrayType &visit, const ThreadToOutArrayType &threadToOut, const InputDomainType &connectivity) const
Definition: WorkletCellNeighborhood.h:102
vtkm::Int32 IdComponent
Represents a component ID (index of component in a vector).
Definition: Types.h:168
Dispatcher for worklets that inherit from WorkletCellNeighborhood.
Definition: DispatcherCellNeighborhood.h:27
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
Definition: WorkletCellNeighborhood.h:31
typename std::enable_if< Cond, ReturnType >::type EnableFnWhen
Definition: WorkletCellNeighborhood.h:73
#define vtkmNotUsed(parameter_name)
Simple macro to identify a parameter as unused.
Definition: ExportMacros.h:128
static constexpr bool IsScatterIdentity
In the remaining methods and constexpr we determine at compilation time which method definition will ...
Definition: WorkletCellNeighborhood.h:67
Definition: ConnectivityStructured.h:24
A tag used to identify the cell elements in a topology.
Definition: TopologyElementTag.h:24
Container for thread information in a WorkletCellNeighborhood.
Definition: ThreadIndicesCellNeighborhood.h:30
#define VTKM_SUPPRESS_EXEC_WARNINGS
Definition: ExportMacros.h:53
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC EnableFnWhen< S &&M, vtkm::exec::arg::ThreadIndicesCellNeighborhood > GetThreadIndices(vtkm::Id threadIndex1D, const vtkm::Id3 &threadIndex3D, const OutToInArrayType &vtkmNotUsed(outToIn), const VisitArrayType &vtkmNotUsed(visit), const ThreadToOutArrayType &vtkmNotUsed(threadToOut), const InputDomainType &connectivity) const
Definition: WorkletCellNeighborhood.h:82
Definition: WorkletNeighborhood.h:42