Go to the documentation of this file.
10 #ifndef vtk_m_worklet_WorkletMapTopology_h
11 #define vtk_m_worklet_WorkletMapTopology_h
44 template <
typename WorkletType>
45 class DispatcherMapTopology;
50 struct WorkletMapTopologyBase : vtkm::worklet::internal::WorkletBase
52 template <
typename Worklet>
70 template <
typename VisitTopology,
typename Inc
identTopology>
166 template <
typename OutToInArrayType,
167 typename VisitArrayType,
168 typename ThreadToOutArrayType,
169 typename InputDomainType>
173 const OutToInArrayType& outToIn,
174 const VisitArrayType& visit,
175 const ThreadToOutArrayType& threadToOut,
176 const InputDomainType& connectivity)
const
178 const vtkm::Id outIndex = threadToOut.Get(threadIndex);
181 threadIndex, outToIn.Get(outIndex), visit.Get(outIndex), outIndex, connectivity);
192 std::is_same<ScatterType, vtkm::worklet::ScatterIdentity>::value;
193 static constexpr
bool IsMaskNone = std::is_same<MaskType, vtkm::worklet::MaskNone>::value;
195 template <
bool Cond,
typename ReturnType>
201 template <
typename OutToInArrayType,
202 typename VisitArrayType,
203 typename ThreadToOutArrayType,
204 typename InputDomainType,
215 const ThreadToOutArrayType&
vtkmNotUsed(threadToOut),
216 const InputDomainType& connectivity)
const
220 threadIndex3D, threadIndex1D, connectivity);
225 template <
typename OutToInArrayType,
226 typename VisitArrayType,
227 typename ThreadToOutArrayType,
228 typename InputDomainType,
237 const OutToInArrayType& outToIn,
238 const VisitArrayType& visit,
239 const ThreadToOutArrayType& threadToOut,
240 const InputDomainType& connectivity)
const
242 const vtkm::Id outIndex = threadToOut.Get(threadIndex1D);
247 outToIn.Get(outIndex),
257 :
public WorkletMapTopology<vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint>
260 #ifndef VTKM_DOXYGEN_ONLY
272 #else // VTKM_DOXYGEN_ONLY
350 struct WholeArrayIn : vtkm::worklet::internal::WorkletBase::WholeArrayIn
370 template <
typename VisitTopology = Cell,
typename Inc
identTopology = Po
int>
372 : vtkm::worklet::internal::WorkletBase::WholeCellSetIn<VisitTopology, IncidentTopology>
377 struct ExecObject : vtkm::worklet::internal::WorkletBase::ExecObject
388 struct _1 : vtkm::worklet::internal::WorkletBase::_1
408 IncidentTopologyType>::IncidentElementCount
418 IncidentTopologyType>::IncidentElementIndices
448 struct Device : vtkm::worklet::internal::WorkletBase::Device
453 #endif // VTKM_DOXYGEN_ONLY
459 :
public WorkletMapTopology<vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell>
462 #ifndef VTKM_DOXYGEN_ONLY
474 #else // VTKM_DOXYGEN_ONLY
552 struct WholeArrayIn : vtkm::worklet::internal::WorkletBase::WholeArrayIn
572 template <
typename VisitTopology = Cell,
typename Inc
identTopology = Po
int>
574 : vtkm::worklet::internal::WorkletBase::WholeCellSetIn<VisitTopology, IncidentTopology>
579 struct ExecObject : vtkm::worklet::internal::WorkletBase::ExecObject
590 struct _1 : vtkm::worklet::internal::WorkletBase::_1
601 IncidentTopologyType>::IncidentElementCount
611 IncidentTopologyType>::IncidentElementIndices
641 struct Device : vtkm::worklet::internal::WorkletBase::Device
646 #endif // VTKM_DOXYGEN_ONLY
652 #endif //vtk_m_worklet_WorkletMapTopology_h
A control signature tag for output fields.
Definition: WorkletMapTopology.h:99
A tag used to identify the point elements in a topology.
Definition: TopologyElementTag.h:34
ControlSignature tag for whole input topology.
Definition: WorkletMapTopology.h:573
ControlSignature tag for whole input arrays.
Definition: WorkletMapTopology.h:552
An execution signature tag to get the shape of the visited cell.
Definition: WorkletMapTopology.h:396
A control signature tag for input connectivity.
Definition: WorkletMapTopology.h:122
A control signature tag for output fields.
Definition: WorkletMapTopology.h:531
ControlSignature tag for whole output arrays.
Definition: WorkletMapTopology.h:355
#define VTKM_EXEC
Definition: ExportMacros.h:51
Groups connected points that have the same field value.
Definition: Atomic.h:19
static constexpr bool IsScatterIdentity
In the remaining methods and constexpr we determine at compilation time which method definition will ...
Definition: WorkletMapTopology.h:191
ControlSignature tag for whole input topology.
Definition: WorkletMapTopology.h:371
A control signature tag for input-output (in-place) fields.
Definition: WorkletMapTopology.h:344
Argument placeholders for an ExecutionSignature.
Definition: WorkletMapTopology.h:590
A control signature tag for input fields from the incident topology.
Definition: WorkletMapTopology.h:90
ControlSignature tag for execution object inputs.
Definition: WorkletMapTopology.h:377
ControlSignature tag for whole input/output arrays.
Definition: WorkletMapTopology.h:365
The ExecutionSignature tag to use to get the output index.
Definition: WorkletMapTopology.h:438
Fetch tag for getting array values determined by topology connections.
Definition: FetchTagArrayTopologyMapIn.h:40
Fetch tag for getting topology information.
Definition: FetchTagCellSetIn.h:29
Fetch tag for setting array values with direct indexing.
Definition: FetchTagArrayDirectOut.h:31
Transport tag for input arrays in topology maps.
Definition: TransportTagTopologyFieldIn.h:36
A control signature tag for input fields from the visited topology.
Definition: WorkletMapTopology.h:508
The Array type check passes for any object that behaves like an ArrayHandle class and can be passed t...
Definition: TypeCheckTagArrayOut.h:31
Transport tag for in-place arrays.
Definition: TransportTagArrayInOut.h:33
The ExecutionSignature tag to use to get the visit index.
Definition: WorkletMapTopology.h:621
A control signature tag for input fields on the points of the topology.
Definition: WorkletMapTopology.h:299
A control signature tag for input connectivity.
Definition: WorkletMapTopology.h:280
The ExecutionSignature tag to use to get the output index.
Definition: OutputIndex.h:44
The ExecutionSignature tag to use to get the visit index.
Definition: WorkletMapTopology.h:428
Transport tag for output arrays.
Definition: TransportTagArrayOut.h:32
Transport tag for input arrays.
Definition: TransportTagCellSetIn.h:32
A control signature tag for input fields from the visited topology.
Definition: WorkletMapTopology.h:80
An execution signature tag for getting the cell shape.
Definition: WorkletMapTopology.h:133
An execution signature tag to get the indices of from elements.
Definition: WorkletMapTopology.h:159
The Array type check passes for any object that behaves like an ArrayHandle class and can be passed t...
Definition: TypeCheckTagArrayInOut.h:31
A control signature tag for input fields from the incident topology.
Definition: WorkletMapTopology.h:314
A control signature tag for input fields from the incident topology.
Definition: WorkletMapTopology.h:516
The ExecutionSignature tag to get the number of incident elements.
Definition: IncidentElementCount.h:40
A control signature tag for input fields on the cells of the topology.
Definition: WorkletMapTopology.h:290
ControlSignature tag for execution object inputs.
Definition: WorkletMapTopology.h:579
The Array type check passes for any object that behaves like an ArrayHandle class and can be passed t...
Definition: TypeCheckTagArrayIn.h:31
A control signature tag for input-output (in-place) fields from the visited topology.
Definition: WorkletMapTopology.h:109
An execution signature tag to get the number of incident elements.
Definition: WorkletMapTopology.h:146
The ExecutionSignature tag to use to get the thread indices.
Definition: WorkletMapTopology.h:636
The ExecutionSignature tag to use to get the work index.
Definition: WorkletMapTopology.h:423
Base class for worklets that map from Cells to Points.
Definition: WorkletMapTopology.h:458
A control signature tag for input-output (in-place) fields.
Definition: WorkletMapTopology.h:339
Fetch tag for getting array values with direct indexing.
Definition: FetchTagArrayDirectIn.h:29
static constexpr bool IsMaskNone
Definition: WorkletMapTopology.h:193
Dispatcher for worklets that inherit from WorkletMapTopology.
Definition: DispatcherMapTopology.h:31
Base class for worklets that map from Points to Cells.
Definition: WorkletMapTopology.h:256
A control signature tag for input fields on the cells of the topology.
Definition: WorkletMapTopology.h:501
A control signature tag for output fields.
Definition: WorkletMapTopology.h:329
A control signature tag for input fields from the visited topology.
Definition: WorkletMapTopology.h:306
ControlSignature tag for whole output arrays.
Definition: WorkletMapTopology.h:557
The ExecutionSignature tag to use to get the thread indices.
Definition: ThreadIndices.h:44
The ExecutionSignature tag to get the indices of visited elements.
Definition: IncidentElementIndices.h:33
vtkm::Int64 Id
Base type to use to index arrays.
Definition: Types.h:227
typename std::enable_if< Cond, ReturnType >::type EnableFnWhen
Definition: WorkletMapTopology.h:196
ControlSignature tag for whole input arrays.
Definition: WorkletMapTopology.h:350
A control signature tag for output fields.
Definition: WorkletMapTopology.h:324
An execution signature tag to get the indices of the incident cells.
Definition: WorkletMapTopology.h:609
An execution signature tag to get the number of incident cells.
Definition: WorkletMapTopology.h:599
ControlSignature tag for whole input/output arrays.
Definition: WorkletMapTopology.h:562
#define vtkmNotUsed(parameter_name)
Simple macro to identify a parameter as unused.
Definition: ExportMacros.h:128
ExecutionSignature tag for getting the device adapter tag.
Definition: WorkletMapTopology.h:448
The ExecutionSignature tag to use to get the work index.
Definition: WorkletMapTopology.h:616
EnableFnWhen<!(S &&M), vtkm::exec::arg::ThreadIndicesTopologyMap< InputDomainType, vtkm::exec::arg::CustomScatterOrMaskTag > > GetThreadIndices(vtkm::Id threadIndex1D, const vtkm::Id3 &threadIndex3D, const OutToInArrayType &outToIn, const VisitArrayType &visit, const ThreadToOutArrayType &threadToOut, const InputDomainType &connectivity) const
Default version.
Definition: WorkletMapTopology.h:235
A control signature tag for input-output (in-place) fields.
Definition: WorkletMapTopology.h:541
The base class for all tags used in a ControlSignature.
Definition: ControlSignatureTagBase.h:36
Used for when not using MaskNone and ScatterIdentity.
Definition: ThreadIndicesTopologyMap.h:80
The ExecutionSignature tag to use to get the cell shape.
Definition: exec/arg/CellShape.h:34
A control signature tag for input fields on the points of the topology.
Definition: WorkletMapTopology.h:492
ControlSignature tag for whole input/output arrays.
Definition: WorkletMapTopology.h:360
ControlSignature tag for whole input/output arrays.
Definition: WorkletMapTopology.h:567
A control signature tag for input-output (in-place) fields.
Definition: WorkletMapTopology.h:546
An execution signature tag to get the number of incident points.
Definition: WorkletMapTopology.h:406
A control signature tag for output fields.
Definition: WorkletMapTopology.h:526
A tag used to identify the cell elements in a topology.
Definition: TopologyElementTag.h:24
Argument placeholders for an ExecutionSignature.
Definition: WorkletMapTopology.h:388
Fetch tag for in-place modifying array values with direct indexing.
Definition: FetchTagArrayDirectInOut.h:39
The ExecutionSignature tag to use to get the thread indices.
Definition: WorkletMapTopology.h:443
The ExecutionSignature tag to use to get the visit index.
Definition: VisitIndex.h:46
EnableFnWhen< S &&M, vtkm::exec::arg::ThreadIndicesTopologyMap< InputDomainType, vtkm::exec::arg::DefaultScatterAndMaskTag > > GetThreadIndices(vtkm::Id threadIndex1D, const vtkm::Id3 &threadIndex3D, const OutToInArrayType &, const VisitArrayType &, const ThreadToOutArrayType &, const InputDomainType &connectivity) const
Optimized for ScatterIdentity and MaskNone.
Definition: WorkletMapTopology.h:211
vtkm::exec::arg::ThreadIndicesTopologyMap< InputDomainType, vtkm::exec::arg::CustomScatterOrMaskTag > GetThreadIndices(vtkm::Id threadIndex, const OutToInArrayType &outToIn, const VisitArrayType &visit, const ThreadToOutArrayType &threadToOut, const InputDomainType &connectivity) const
Topology map worklets use topology map indices.
Definition: WorkletMapTopology.h:172
#define VTKM_SUPPRESS_EXEC_WARNINGS
Definition: ExportMacros.h:53
Container for thread indices in a topology map.
Definition: ThreadIndicesTopologyMap.h:95
ExecutionSignature tag for getting the device adapter tag.
Definition: WorkletMapTopology.h:641
Uses spaces optimizations when using MaskNone and ScatterIdentity.
Definition: ThreadIndicesTopologyMap.h:74
Check for a CellSet-like object.
Definition: TypeCheckTagCellSet.h:26
A control signature tag for input connectivity.
Definition: WorkletMapTopology.h:482
The ExecutionSignature tag to use to get the output index.
Definition: WorkletMapTopology.h:631
The ExecutionSignature tag to use to get the work index.
Definition: WorkIndex.h:39
An execution signature tag to get the indices of the incident points.
Definition: WorkletMapTopology.h:416
Base class for worklets that map topology elements onto each other.
Definition: WorkletMapTopology.h:71