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;
39 template <
typename Worklet>
45 #ifdef VTKM_DOXYGEN_ONLY
74 struct WholeArrayIn : vtkm::worklet::internal::WorkletBase::WholeArrayIn
79 struct WholeArrayOut : vtkm::worklet::internal::WorkletBase::WholeArrayOut
94 template <
typename VisitTopology = Cell,
typename Inc
identTopology = Po
int>
96 : vtkm::worklet::internal::WorkletBase::WholeCellSetIn<VisitTopology, IncidentTopology>
101 struct ExecObject : vtkm::worklet::internal::WorkletBase::ExecObject
104 #endif // VTKM_DOXYGEN_ONLY
110 #ifdef VTKM_DOXYGEN_ONLY
114 struct _1 : vtkm::worklet::internal::WorkletBase::_1
149 struct Device : vtkm::worklet::internal::WorkletBase::Device
152 #endif // VTKM_DOXYGEN_ONLY
158 template <
typename OutToInArrayType,
159 typename VisitArrayType,
160 typename ThreadToOutArrayType,
164 const OutToInArrayType& outToIn,
165 const VisitArrayType& visit,
166 const ThreadToOutArrayType& threadToOut,
169 Dimension>& inputDomain
172 const vtkm::Id outIndex = threadToOut.Get(threadIndex);
174 threadIndex, outToIn.Get(outIndex), visit.Get(outIndex), outIndex, inputDomain);
186 std::is_same<ScatterType, vtkm::worklet::ScatterIdentity>::value;
187 static constexpr
bool IsMaskNone = std::is_same<MaskType, vtkm::worklet::MaskNone>::value;
190 template <
bool Cond,
typename ReturnType>
194 template <
typename OutToInArrayType,
195 typename VisitArrayType,
196 typename ThreadToOutArrayType,
197 typename InputDomainType,
205 const ThreadToOutArrayType&
vtkmNotUsed(threadToOut),
206 const InputDomainType& connectivity)
const
209 threadIndex3D, threadIndex1D, connectivity);
213 template <
typename OutToInArrayType,
214 typename VisitArrayType,
215 typename ThreadToOutArrayType,
216 typename InputDomainType,
222 const OutToInArrayType& outToIn,
223 const VisitArrayType& visit,
224 const ThreadToOutArrayType& threadToOut,
225 const InputDomainType& connectivity)
const
227 const vtkm::Id outIndex = threadToOut.Get(threadIndex1D);
230 outToIn.Get(outIndex),
A tag used to identify the point elements in a topology.
Definition: TopologyElementTag.h:34
ControlSignature tag for whole input arrays.
Definition: WorkletCellNeighborhood.h:74
static constexpr bool IsMaskNone
Definition: WorkletCellNeighborhood.h:187
#define VTKM_EXEC
Definition: ExportMacros.h:51
ControlSignature tag for whole input/output arrays.
Definition: WorkletCellNeighborhood.h:84
Groups connected points that have the same field value.
Definition: Atomic.h:19
A control signature tag for input fields.
Definition: WorkletCellNeighborhood.h:54
vtkm::Int32 IdComponent
Base type to use to index small lists.
Definition: Types.h:194
ControlSignature tag for whole input topology.
Definition: WorkletCellNeighborhood.h:95
A control signature tag for input connectivity.
Definition: WorkletNeighborhood.h:129
ExecutionSignature tag for getting the device adapter tag.
Definition: WorkletCellNeighborhood.h:149
A control signature tag for output fields.
Definition: WorkletNeighborhood.h:98
The ExecutionSignature tag to use to get the work index.
Definition: WorkletCellNeighborhood.h:124
Dispatcher for worklets that inherit from WorkletCellNeighborhood.
Definition: DispatcherCellNeighborhood.h:27
The ExecutionSignature tag to use to get the output index.
Definition: WorkletCellNeighborhood.h:139
The ExecutionSignature tag to use to get the output index.
Definition: OutputIndex.h:44
ControlSignature tag for whole output arrays.
Definition: WorkletCellNeighborhood.h:79
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:162
A control signature tag for input connectivity.
Definition: WorkletCellNeighborhood.h:49
A control signature tag for input-output (in-place) fields.
Definition: WorkletNeighborhood.h:114
The ExecutionSignature tag to query if the current iteration is inside the boundary.
Definition: WorkletCellNeighborhood.h:119
The ExecutionSignature tag to use to get the visit index.
Definition: WorkletCellNeighborhood.h:129
Base class for worklets that map over the cells in a structured grid with neighborhood information.
Definition: WorkletCellNeighborhood.h:36
typename std::enable_if< Cond, ReturnType >::type EnableFnWhen
Definition: WorkletCellNeighborhood.h:191
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
A control signature tag for output fields.
Definition: WorkletCellNeighborhood.h:64
#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:185
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
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:220
A tag used to identify the cell elements in a topology.
Definition: TopologyElementTag.h:24
ControlSignature tag for whole input/output arrays.
Definition: WorkletCellNeighborhood.h:89
A control signature tag for neighborhood input values.
Definition: WorkletNeighborhood.h:156
The ExecutionSignature tag to use to get the visit index.
Definition: VisitIndex.h:46
Container for thread information in a WorkletCellNeighborhood.
Definition: ThreadIndicesCellNeighborhood.h:30
#define VTKM_SUPPRESS_EXEC_WARNINGS
Definition: ExportMacros.h:53
A control signature tag for neighborhood input values.
Definition: WorkletCellNeighborhood.h:59
Argument placeholders for an ExecutionSignature.
Definition: WorkletCellNeighborhood.h:114
ControlSignature tag for execution object inputs.
Definition: WorkletCellNeighborhood.h:101
Definition: WorkletNeighborhood.h:42
EnableFnWhen< S &&M, vtkm::exec::arg::ThreadIndicesCellNeighborhood > GetThreadIndices(vtkm::Id threadIndex1D, const vtkm::Id3 &threadIndex3D, const OutToInArrayType &, const VisitArrayType &, const ThreadToOutArrayType &, const InputDomainType &connectivity) const
Definition: WorkletCellNeighborhood.h:200
The ExecutionSignature tag to use to get the work index.
Definition: WorkIndex.h:39
The ExecutionSignature tag to use to get the thread indices.
Definition: WorkletCellNeighborhood.h:144
A control signature tag for input-output (in-place) fields.
Definition: WorkletCellNeighborhood.h:69