Go to the documentation of this file.
18 #ifndef viskores_worklet_WorkletPointNeighborhood_h
19 #define viskores_worklet_WorkletPointNeighborhood_h
43 template <
typename Worklet>
49 #ifdef VISKORES_DOXYGEN_ONLY
78 struct WholeArrayIn : viskores::worklet::internal::WorkletBase::WholeArrayIn
83 struct WholeArrayOut : viskores::worklet::internal::WorkletBase::WholeArrayOut
88 struct WholeArrayInOut : viskores::worklet::internal::WorkletBase::WholeArrayInOut
98 template <
typename VisitTopology = Cell,
typename Inc
identTopology = Po
int>
100 : viskores::worklet::internal::WorkletBase::WholeCellSetIn<VisitTopology, IncidentTopology>
105 struct ExecObject : viskores::worklet::internal::WorkletBase::ExecObject
108 #endif // VISKORES_DOXYGEN_ONLY
114 #ifdef VISKORES_DOXYGEN_ONLY
118 struct _1 : viskores::worklet::internal::WorkletBase::_1
153 struct Device : viskores::worklet::internal::WorkletBase::Device
156 #endif // VISKORES_DOXYGEN_ONLY
162 template <
typename OutToInArrayType,
163 typename VisitArrayType,
164 typename ThreadToOutArrayType,
168 const OutToInArrayType& outToIn,
169 const VisitArrayType& visit,
170 const ThreadToOutArrayType& threadToOut,
173 Dimension>& inputDomain
176 const viskores::Id outIndex = threadToOut.Get(threadIndex);
178 threadIndex, outToIn.Get(outIndex), visit.Get(outIndex), outIndex, inputDomain);
190 std::is_same<ScatterType, viskores::worklet::ScatterIdentity>::value;
191 static constexpr
bool IsMaskNone = std::is_same<MaskType, viskores::worklet::MaskNone>::value;
194 template <
bool Cond,
typename ReturnType>
198 template <
typename OutToInArrayType,
199 typename VisitArrayType,
200 typename ThreadToOutArrayType,
201 typename InputDomainType,
210 const InputDomainType& connectivity)
const
213 threadIndex3D, threadIndex1D, connectivity);
217 template <
typename OutToInArrayType,
218 typename VisitArrayType,
219 typename ThreadToOutArrayType,
220 typename InputDomainType,
226 const OutToInArrayType& outToIn,
227 const VisitArrayType& visit,
228 const ThreadToOutArrayType& threadToOut,
229 const InputDomainType& connectivity)
const
231 const viskores::Id outIndex = threadToOut.Get(threadIndex1D);
234 outToIn.Get(outIndex),
ControlSignature tag for execution object inputs.
Definition: WorkletPointNeighborhood.h:105
static constexpr bool IsScatterIdentity
In the remaining methods and constexpr we determine at compilation time which method definition will ...
Definition: WorkletPointNeighborhood.h:189
A control signature tag for input-output (in-place) fields.
Definition: WorkletNeighborhood.h:122
Dispatcher for worklets that inherit from WorkletPointNeighborhood.
Definition: DispatcherPointNeighborhood.h:34
A control signature tag for output fields.
Definition: WorkletNeighborhood.h:106
ControlSignature tag for whole output arrays.
Definition: WorkletPointNeighborhood.h:83
A control signature tag for input fields.
Definition: WorkletNeighborhood.h:91
Definition: WorkletNeighborhood.h:50
A control signature tag for input fields.
Definition: WorkletPointNeighborhood.h:58
Base class for worklets that map over the points in a structured grid with neighborhood information.
Definition: WorkletPointNeighborhood.h:40
A tag used to identify the cell elements in a topology.
Definition: TopologyElementTag.h:32
The ExecutionSignature tag to use to get the thread indices.
Definition: ThreadIndices.h:52
#define viskoresNotUsed(parameter_name)
Simple macro to identify a parameter as unused.
Definition: ExportMacros.h:136
typename std::enable_if< Cond, ReturnType >::type EnableFnWhen
Definition: WorkletPointNeighborhood.h:195
EnableFnWhen<!(S &&M), viskores::exec::arg::ThreadIndicesPointNeighborhood > GetThreadIndices(viskores::Id threadIndex1D, const viskores::Id3 &threadIndex3D, const OutToInArrayType &outToIn, const VisitArrayType &visit, const ThreadToOutArrayType &threadToOut, const InputDomainType &connectivity) const
Definition: WorkletPointNeighborhood.h:224
#define VISKORES_SUPPRESS_EXEC_WARNINGS
Definition: ExportMacros.h:61
The ExecutionSignature tag to query if the current iteration is inside the boundary.
Definition: WorkletNeighborhood.h:62
The ExecutionSignature tag to use to get the work index.
Definition: WorkletPointNeighborhood.h:128
viskores::Int32 IdComponent
Base type to use to index small lists.
Definition: Types.h:202
A control signature tag for input-output (in-place) fields.
Definition: WorkletPointNeighborhood.h:73
EnableFnWhen< S &&M, viskores::exec::arg::ThreadIndicesPointNeighborhood > GetThreadIndices(viskores::Id threadIndex1D, const viskores::Id3 &threadIndex3D, const OutToInArrayType &, const VisitArrayType &, const ThreadToOutArrayType &, const InputDomainType &connectivity) const
Definition: WorkletPointNeighborhood.h:205
A tag used to identify the point elements in a topology.
Definition: TopologyElementTag.h:42
ControlSignature tag for whole input topology.
Definition: WorkletPointNeighborhood.h:99
The ExecutionSignature tag to use to get the visit index.
Definition: VisitIndex.h:54
A control signature tag for output fields.
Definition: WorkletPointNeighborhood.h:68
viskores::Int64 Id
Base type to use to index arrays.
Definition: Types.h:235
The ExecutionSignature tag to query if the current iteration is inside the boundary.
Definition: WorkletPointNeighborhood.h:123
The ExecutionSignature tag to use to get the visit index.
Definition: WorkletPointNeighborhood.h:133
Groups connected points that have the same field value.
Definition: Atomic.h:27
The ExecutionSignature tag to use to get the output index.
Definition: WorkletPointNeighborhood.h:143
The ExecutionSignature tag to use to get the output index.
Definition: OutputIndex.h:52
ControlSignature tag for whole input/output arrays.
Definition: WorkletPointNeighborhood.h:93
The ExecutionSignature tag to use to get the thread indices.
Definition: WorkletPointNeighborhood.h:148
A control signature tag for input connectivity.
Definition: WorkletPointNeighborhood.h:53
Argument placeholders for an ExecutionSignature.
Definition: WorkletPointNeighborhood.h:118
static constexpr bool IsMaskNone
Definition: WorkletPointNeighborhood.h:191
A control signature tag for neighborhood input values.
Definition: WorkletNeighborhood.h:165
ExecutionSignature tag for getting the device adapter tag.
Definition: WorkletPointNeighborhood.h:153
ControlSignature tag for whole input arrays.
Definition: WorkletPointNeighborhood.h:78
Container for thread information in a WorkletPointNeighborhood.
Definition: ThreadIndicesPointNeighborhood.h:32
viskores::exec::arg::ThreadIndicesPointNeighborhood GetThreadIndices(viskores::Id threadIndex, const OutToInArrayType &outToIn, const VisitArrayType &visit, const ThreadToOutArrayType &threadToOut, const viskores::exec::ConnectivityStructured< viskores::TopologyElementTagPoint, viskores::TopologyElementTagCell, Dimension > &inputDomain) const
Point neighborhood worklets use the related thread indices class.
Definition: WorkletPointNeighborhood.h:166
A control signature tag for input connectivity.
Definition: WorkletNeighborhood.h:137
ControlSignature tag for whole input/output arrays.
Definition: WorkletPointNeighborhood.h:88
A class holding information about topology connections.
Definition: ConnectivityStructured.h:38
A control signature tag for neighborhood input values.
Definition: WorkletPointNeighborhood.h:63
#define VISKORES_EXEC
Definition: ExportMacros.h:59
The ExecutionSignature tag to use to get the work index.
Definition: WorkIndex.h:47