Go to the documentation of this file.
10 #ifndef vtk_m_worklet_WorkletPointNeighborhood_h
11 #define vtk_m_worklet_WorkletPointNeighborhood_h
35 template <
typename Worklet>
41 #ifdef VTKM_DOXYGEN_ONLY
70 struct WholeArrayIn : vtkm::worklet::internal::WorkletBase::WholeArrayIn
75 struct WholeArrayOut : vtkm::worklet::internal::WorkletBase::WholeArrayOut
90 template <
typename VisitTopology = Cell,
typename Inc
identTopology = Po
int>
92 : vtkm::worklet::internal::WorkletBase::WholeCellSetIn<VisitTopology, IncidentTopology>
97 struct ExecObject : vtkm::worklet::internal::WorkletBase::ExecObject
100 #endif // VTKM_DOXYGEN_ONLY
106 #ifdef VTKM_DOXYGEN_ONLY
110 struct _1 : vtkm::worklet::internal::WorkletBase::_1
145 struct Device : vtkm::worklet::internal::WorkletBase::Device
148 #endif // VTKM_DOXYGEN_ONLY
154 template <
typename OutToInArrayType,
155 typename VisitArrayType,
156 typename ThreadToOutArrayType,
160 const OutToInArrayType& outToIn,
161 const VisitArrayType& visit,
162 const ThreadToOutArrayType& threadToOut,
165 Dimension>& inputDomain
168 const vtkm::Id outIndex = threadToOut.Get(threadIndex);
170 threadIndex, outToIn.Get(outIndex), visit.Get(outIndex), outIndex, inputDomain);
182 std::is_same<ScatterType, vtkm::worklet::ScatterIdentity>::value;
183 static constexpr
bool IsMaskNone = std::is_same<MaskType, vtkm::worklet::MaskNone>::value;
186 template <
bool Cond,
typename ReturnType>
190 template <
typename OutToInArrayType,
191 typename VisitArrayType,
192 typename ThreadToOutArrayType,
193 typename InputDomainType,
201 const ThreadToOutArrayType&
vtkmNotUsed(threadToOut),
202 const InputDomainType& connectivity)
const
205 threadIndex3D, threadIndex1D, connectivity);
209 template <
typename OutToInArrayType,
210 typename VisitArrayType,
211 typename ThreadToOutArrayType,
212 typename InputDomainType,
218 const OutToInArrayType& outToIn,
219 const VisitArrayType& visit,
220 const ThreadToOutArrayType& threadToOut,
221 const InputDomainType& connectivity)
const
223 const vtkm::Id outIndex = threadToOut.Get(threadIndex1D);
226 outToIn.Get(outIndex),
A tag used to identify the point elements in a topology.
Definition: TopologyElementTag.h:34
#define VTKM_EXEC
Definition: ExportMacros.h:51
Groups connected points that have the same field value.
Definition: Atomic.h:19
ControlSignature tag for whole input topology.
Definition: WorkletPointNeighborhood.h:91
A control signature tag for input fields.
Definition: WorkletPointNeighborhood.h:50
The ExecutionSignature tag to use to get the visit index.
Definition: WorkletPointNeighborhood.h:125
vtkm::Int32 IdComponent
Base type to use to index small lists.
Definition: Types.h:194
A control signature tag for input connectivity.
Definition: WorkletNeighborhood.h:129
A control signature tag for output fields.
Definition: WorkletNeighborhood.h:98
The ExecutionSignature tag to use to get the output index.
Definition: OutputIndex.h:44
Container for thread information in a WorkletPointNeighborhood.
Definition: ThreadIndicesPointNeighborhood.h:24
The ExecutionSignature tag to use to get the thread indices.
Definition: WorkletPointNeighborhood.h:140
The ExecutionSignature tag to query if the current iteration is inside the boundary.
Definition: WorkletPointNeighborhood.h:115
typename std::enable_if< Cond, ReturnType >::type EnableFnWhen
Definition: WorkletPointNeighborhood.h:187
EnableFnWhen< S &&M, vtkm::exec::arg::ThreadIndicesPointNeighborhood > GetThreadIndices(vtkm::Id threadIndex1D, const vtkm::Id3 &threadIndex3D, const OutToInArrayType &, const VisitArrayType &, const ThreadToOutArrayType &, const InputDomainType &connectivity) const
Definition: WorkletPointNeighborhood.h:196
A control signature tag for input-output (in-place) fields.
Definition: WorkletNeighborhood.h:114
EnableFnWhen<!(S &&M), vtkm::exec::arg::ThreadIndicesPointNeighborhood > GetThreadIndices(vtkm::Id threadIndex1D, const vtkm::Id3 &threadIndex3D, const OutToInArrayType &outToIn, const VisitArrayType &visit, const ThreadToOutArrayType &threadToOut, const InputDomainType &connectivity) const
Definition: WorkletPointNeighborhood.h:216
ControlSignature tag for whole input/output arrays.
Definition: WorkletPointNeighborhood.h:80
ExecutionSignature tag for getting the device adapter tag.
Definition: WorkletPointNeighborhood.h:145
vtkm::exec::arg::ThreadIndicesPointNeighborhood 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: WorkletPointNeighborhood.h:158
A control signature tag for input fields.
Definition: WorkletNeighborhood.h:83
The ExecutionSignature tag to use to get the thread indices.
Definition: ThreadIndices.h:44
vtkm::Int64 Id
Base type to use to index arrays.
Definition: Types.h:227
The ExecutionSignature tag to use to get the work index.
Definition: WorkletPointNeighborhood.h:120
A control signature tag for input connectivity.
Definition: WorkletPointNeighborhood.h:45
#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: WorkletPointNeighborhood.h:181
The ExecutionSignature tag to use to get the output index.
Definition: WorkletPointNeighborhood.h:135
static constexpr bool IsMaskNone
Definition: WorkletPointNeighborhood.h:183
A control signature tag for input-output (in-place) fields.
Definition: WorkletPointNeighborhood.h:65
ControlSignature tag for execution object inputs.
Definition: WorkletPointNeighborhood.h:97
A class holding information about topology connections.
Definition: ConnectivityStructured.h:30
The ExecutionSignature tag to query if the current iteration is inside the boundary.
Definition: WorkletNeighborhood.h:54
Dispatcher for worklets that inherit from WorkletPointNeighborhood.
Definition: DispatcherPointNeighborhood.h:26
A control signature tag for neighborhood input values.
Definition: WorkletPointNeighborhood.h:55
A tag used to identify the cell elements in a topology.
Definition: TopologyElementTag.h:24
ControlSignature tag for whole input arrays.
Definition: WorkletPointNeighborhood.h:70
A control signature tag for neighborhood input values.
Definition: WorkletNeighborhood.h:156
Argument placeholders for an ExecutionSignature.
Definition: WorkletPointNeighborhood.h:110
The ExecutionSignature tag to use to get the visit index.
Definition: VisitIndex.h:46
Base class for worklets that map over the points in a structured grid with neighborhood information.
Definition: WorkletPointNeighborhood.h:32
A control signature tag for output fields.
Definition: WorkletPointNeighborhood.h:60
#define VTKM_SUPPRESS_EXEC_WARNINGS
Definition: ExportMacros.h:53
ControlSignature tag for whole input/output arrays.
Definition: WorkletPointNeighborhood.h:85
ControlSignature tag for whole output arrays.
Definition: WorkletPointNeighborhood.h:75
Definition: WorkletNeighborhood.h:42
The ExecutionSignature tag to use to get the work index.
Definition: WorkIndex.h:39