Go to the documentation of this file.
18 #ifndef viskores_worklet_WorkletCellNeighborhood_h
19 #define viskores_worklet_WorkletCellNeighborhood_h
36 template <
typename WorkletType>
37 class DispatcherCellNeighborhood;
47 template <
typename Worklet>
53 #ifdef VISKORES_DOXYGEN_ONLY
82 struct WholeArrayIn : viskores::worklet::internal::WorkletBase::WholeArrayIn
87 struct WholeArrayOut : viskores::worklet::internal::WorkletBase::WholeArrayOut
92 struct WholeArrayInOut : viskores::worklet::internal::WorkletBase::WholeArrayInOut
102 template <
typename VisitTopology = Cell,
typename Inc
identTopology = Po
int>
104 : viskores::worklet::internal::WorkletBase::WholeCellSetIn<VisitTopology, IncidentTopology>
109 struct ExecObject : viskores::worklet::internal::WorkletBase::ExecObject
112 #endif // VISKORES_DOXYGEN_ONLY
118 #ifdef VISKORES_DOXYGEN_ONLY
122 struct _1 : viskores::worklet::internal::WorkletBase::_1
157 struct Device : viskores::worklet::internal::WorkletBase::Device
160 #endif // VISKORES_DOXYGEN_ONLY
166 template <
typename OutToInArrayType,
167 typename VisitArrayType,
168 typename ThreadToOutArrayType,
172 const OutToInArrayType& outToIn,
173 const VisitArrayType& visit,
174 const ThreadToOutArrayType& threadToOut,
177 Dimension>& inputDomain
180 const viskores::Id outIndex = threadToOut.Get(threadIndex);
182 threadIndex, outToIn.Get(outIndex), visit.Get(outIndex), outIndex, inputDomain);
194 std::is_same<ScatterType, viskores::worklet::ScatterIdentity>::value;
195 static constexpr
bool IsMaskNone = std::is_same<MaskType, viskores::worklet::MaskNone>::value;
198 template <
bool Cond,
typename ReturnType>
202 template <
typename OutToInArrayType,
203 typename VisitArrayType,
204 typename ThreadToOutArrayType,
205 typename InputDomainType,
214 const InputDomainType& connectivity)
const
217 threadIndex3D, threadIndex1D, connectivity);
221 template <
typename OutToInArrayType,
222 typename VisitArrayType,
223 typename ThreadToOutArrayType,
224 typename InputDomainType,
230 const OutToInArrayType& outToIn,
231 const VisitArrayType& visit,
232 const ThreadToOutArrayType& threadToOut,
233 const InputDomainType& connectivity)
const
235 const viskores::Id outIndex = threadToOut.Get(threadIndex1D);
238 outToIn.Get(outIndex),
A control signature tag for input-output (in-place) fields.
Definition: WorkletNeighborhood.h:122
A control signature tag for output fields.
Definition: WorkletNeighborhood.h:106
ExecutionSignature tag for getting the device adapter tag.
Definition: WorkletCellNeighborhood.h:157
A control signature tag for input fields.
Definition: WorkletNeighborhood.h:91
Definition: WorkletNeighborhood.h:50
Base class for worklets that map over the cells in a structured grid with neighborhood information.
Definition: WorkletCellNeighborhood.h:44
ControlSignature tag for whole input topology.
Definition: WorkletCellNeighborhood.h:103
A tag used to identify the cell elements in a topology.
Definition: TopologyElementTag.h:32
The ExecutionSignature tag to query if the current iteration is inside the boundary.
Definition: WorkletCellNeighborhood.h:127
The ExecutionSignature tag to use to get the thread indices.
Definition: ThreadIndices.h:52
ControlSignature tag for whole output arrays.
Definition: WorkletCellNeighborhood.h:87
#define viskoresNotUsed(parameter_name)
Simple macro to identify a parameter as unused.
Definition: ExportMacros.h:136
#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
viskores::Int32 IdComponent
Base type to use to index small lists.
Definition: Types.h:202
ControlSignature tag for whole input arrays.
Definition: WorkletCellNeighborhood.h:82
A tag used to identify the point elements in a topology.
Definition: TopologyElementTag.h:42
The ExecutionSignature tag to use to get the output index.
Definition: WorkletCellNeighborhood.h:147
EnableFnWhen<!(S &&M), viskores::exec::arg::ThreadIndicesCellNeighborhood > GetThreadIndices(viskores::Id threadIndex1D, const viskores::Id3 &threadIndex3D, const OutToInArrayType &outToIn, const VisitArrayType &visit, const ThreadToOutArrayType &threadToOut, const InputDomainType &connectivity) const
Definition: WorkletCellNeighborhood.h:228
The ExecutionSignature tag to use to get the visit index.
Definition: VisitIndex.h:54
typename std::enable_if< Cond, ReturnType >::type EnableFnWhen
Definition: WorkletCellNeighborhood.h:199
static constexpr bool IsScatterIdentity
In the remaining methods and constexpr we determine at compilation time which method definition will ...
Definition: WorkletCellNeighborhood.h:193
viskores::Int64 Id
Base type to use to index arrays.
Definition: Types.h:235
static constexpr bool IsMaskNone
Definition: WorkletCellNeighborhood.h:195
A control signature tag for input-output (in-place) fields.
Definition: WorkletCellNeighborhood.h:77
Argument placeholders for an ExecutionSignature.
Definition: WorkletCellNeighborhood.h:122
Groups connected points that have the same field value.
Definition: Atomic.h:27
The ExecutionSignature tag to use to get the output index.
Definition: OutputIndex.h:52
Dispatcher for worklets that inherit from WorkletCellNeighborhood.
Definition: DispatcherCellNeighborhood.h:35
A control signature tag for output fields.
Definition: WorkletCellNeighborhood.h:72
A control signature tag for input connectivity.
Definition: WorkletCellNeighborhood.h:57
The ExecutionSignature tag to use to get the visit index.
Definition: WorkletCellNeighborhood.h:137
ControlSignature tag for whole input/output arrays.
Definition: WorkletCellNeighborhood.h:97
ControlSignature tag for execution object inputs.
Definition: WorkletCellNeighborhood.h:109
A control signature tag for neighborhood input values.
Definition: WorkletNeighborhood.h:165
EnableFnWhen< S &&M, viskores::exec::arg::ThreadIndicesCellNeighborhood > GetThreadIndices(viskores::Id threadIndex1D, const viskores::Id3 &threadIndex3D, const OutToInArrayType &, const VisitArrayType &, const ThreadToOutArrayType &, const InputDomainType &connectivity) const
Definition: WorkletCellNeighborhood.h:209
The ExecutionSignature tag to use to get the thread indices.
Definition: WorkletCellNeighborhood.h:152
A control signature tag for neighborhood input values.
Definition: WorkletCellNeighborhood.h:67
A control signature tag for input fields.
Definition: WorkletCellNeighborhood.h:62
ControlSignature tag for whole input/output arrays.
Definition: WorkletCellNeighborhood.h:92
The ExecutionSignature tag to use to get the work index.
Definition: WorkletCellNeighborhood.h:132
Container for thread information in a WorkletCellNeighborhood.
Definition: ThreadIndicesCellNeighborhood.h:38
viskores::exec::arg::ThreadIndicesCellNeighborhood 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: WorkletCellNeighborhood.h:170
A control signature tag for input connectivity.
Definition: WorkletNeighborhood.h:137
A class holding information about topology connections.
Definition: ConnectivityStructured.h:38
#define VISKORES_EXEC
Definition: ExportMacros.h:59
The ExecutionSignature tag to use to get the work index.
Definition: WorkIndex.h:47