VTK-m  2.2
WorkletMapTopology.h
Go to the documentation of this file.
1 //============================================================================
2 // Copyright (c) Kitware, Inc.
3 // All rights reserved.
4 // See LICENSE.txt for details.
5 //
6 // This software is distributed WITHOUT ANY WARRANTY; without even
7 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
8 // PURPOSE. See the above copyright notice for more information.
9 //============================================================================
10 #ifndef vtk_m_worklet_WorkletMapTopology_h
11 #define vtk_m_worklet_WorkletMapTopology_h
12 
14 
16 
26 
36 
38 
39 namespace vtkm
40 {
41 namespace worklet
42 {
43 
44 template <typename WorkletType>
45 class DispatcherMapTopology;
46 
47 namespace detail
48 {
49 
50 struct WorkletMapTopologyBase : vtkm::worklet::internal::WorkletBase
51 {
52  template <typename Worklet>
54 };
55 
56 } // namespace detail
57 
70 template <typename VisitTopology, typename IncidentTopology>
71 class WorkletMapTopology : public detail::WorkletMapTopologyBase
72 {
73 public:
74  using VisitTopologyType = VisitTopology;
75  using IncidentTopologyType = IncidentTopology;
76 
81  {
85  };
86 
91  {
95  };
96 
100  {
104  };
105 
110  {
114  };
115 
123  {
125  using TransportTag =
128  };
129 
134  {
135  };
136 
147  {
148  };
149 
160  {
161  };
162 
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
177  {
178  const vtkm::Id outIndex = threadToOut.Get(threadIndex);
179  return vtkm::exec::arg::ThreadIndicesTopologyMap<InputDomainType,
181  threadIndex, outToIn.Get(outIndex), visit.Get(outIndex), outIndex, connectivity);
182  }
183 
190 private:
191  static constexpr bool IsScatterIdentity =
192  std::is_same<ScatterType, vtkm::worklet::ScatterIdentity>::value;
193  static constexpr bool IsMaskNone = std::is_same<MaskType, vtkm::worklet::MaskNone>::value;
194 
195  template <bool Cond, typename ReturnType>
196  using EnableFnWhen = typename std::enable_if<Cond, ReturnType>::type;
197 
198 public:
201  template <typename OutToInArrayType,
202  typename VisitArrayType,
203  typename ThreadToOutArrayType,
204  typename InputDomainType,
205  bool S = IsScatterIdentity,
206  bool M = IsMaskNone>
208  S && M,
211  GetThreadIndices(vtkm::Id threadIndex1D,
212  const vtkm::Id3& threadIndex3D,
213  const OutToInArrayType& vtkmNotUsed(outToIn),
214  const VisitArrayType& vtkmNotUsed(visit),
215  const ThreadToOutArrayType& vtkmNotUsed(threadToOut),
216  const InputDomainType& connectivity) const
217  {
218  return vtkm::exec::arg::ThreadIndicesTopologyMap<InputDomainType,
220  threadIndex3D, threadIndex1D, connectivity);
221  }
222 
225  template <typename OutToInArrayType,
226  typename VisitArrayType,
227  typename ThreadToOutArrayType,
228  typename InputDomainType,
229  bool S = IsScatterIdentity,
230  bool M = IsMaskNone>
231  VTKM_EXEC
232  EnableFnWhen<!(S && M),
235  GetThreadIndices(vtkm::Id threadIndex1D,
236  const vtkm::Id3& threadIndex3D,
237  const OutToInArrayType& outToIn,
238  const VisitArrayType& visit,
239  const ThreadToOutArrayType& threadToOut,
240  const InputDomainType& connectivity) const
241  {
242  const vtkm::Id outIndex = threadToOut.Get(threadIndex1D);
243  return vtkm::exec::arg::ThreadIndicesTopologyMap<InputDomainType,
245  threadIndex3D,
246  threadIndex1D,
247  outToIn.Get(outIndex),
248  visit.Get(outIndex),
249  outIndex,
250  connectivity);
251  }
252 };
253 
257  : public WorkletMapTopology<vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint>
258 {
259 public:
260 #ifndef VTKM_DOXYGEN_ONLY
262 
263  using FieldInCell = FieldInVisit;
264 
265  using FieldOutCell = FieldOut;
266 
267  using FieldInOutCell = FieldInOut;
268 
269  using PointCount = IncidentElementCount;
270 
271  using PointIndices = IncidentElementIndices;
272 #else // VTKM_DOXYGEN_ONLY
273  // These redeclarations of superclass features are for documentation purposes only.
274 
278 
280  struct CellSetIn
281  : vtkm::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::CellSetIn
282  {
283  };
284 
291  {
292  };
293 
300  {
301  };
302 
307  : vtkm::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::FieldInVisit
308  {
309  };
310 
315  : vtkm::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::FieldInIncident
316  {
317  };
318 
325  {
326  };
327 
329  struct FieldOut
330  : vtkm::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::FieldOut
331  {
332  };
333 
340  {
341  };
342 
344  struct FieldInOut
345  : vtkm::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::FieldInOut
346  {
347  };
348 
350  struct WholeArrayIn : vtkm::worklet::internal::WorkletBase::WholeArrayIn
351  {
352  };
353 
355  struct WholeArrayOut : vtkm::worklet::internal::WorkletBase::WholeArrayOut
356  {
357  };
358 
360  struct WholeArrayInOut : vtkm::worklet::internal::WorkletBase::WholeArrayInOut
361  {
362  };
363 
365  struct AtomicArrayInOut : vtkm::worklet::internal::WorkletBase::AtomicArrayInOut
366  {
367  };
368 
370  template <typename VisitTopology = Cell, typename IncidentTopology = Point>
372  : vtkm::worklet::internal::WorkletBase::WholeCellSetIn<VisitTopology, IncidentTopology>
373  {
374  };
375 
377  struct ExecObject : vtkm::worklet::internal::WorkletBase::ExecObject
378  {
379  };
380 
382 
386 
388  struct _1 : vtkm::worklet::internal::WorkletBase::_1
389  {
390  };
391 
396  struct CellShape
397  : vtkm::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::CellShape
398  {
399  };
400 
406  struct PointCount
407  : vtkm::worklet::WorkletMapTopology<VisitTopologyType,
408  IncidentTopologyType>::IncidentElementCount
409  {
410  };
411 
417  : vtkm::worklet::WorkletMapTopology<VisitTopologyType,
418  IncidentTopologyType>::IncidentElementIndices
419  {
420  };
421 
424  {
425  };
426 
429  {
430  };
431 
434  {
435  };
436 
439  {
440  };
441 
444  {
445  };
446 
448  struct Device : vtkm::worklet::internal::WorkletBase::Device
449  {
450  };
451 
453 #endif // VTKM_DOXYGEN_ONLY
454 };
455 
459  : public WorkletMapTopology<vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell>
460 {
461 public:
462 #ifndef VTKM_DOXYGEN_ONLY
464 
465  using FieldInPoint = FieldInVisit;
466 
467  using FieldOutPoint = FieldOut;
468 
469  using FieldInOutPoint = FieldInOut;
470 
471  using CellCount = IncidentElementCount;
472 
473  using CellIndices = IncidentElementIndices;
474 #else // VTKM_DOXYGEN_ONLY
475  // These redeclarations of superclass features are for documentation purposes only.
476 
480 
482  struct CellSetIn
483  : vtkm::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::CellSetIn
484  {
485  };
486 
493  {
494  };
495 
502  {
503  };
504 
509  : vtkm::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::FieldInVisit
510  {
511  };
512 
517  : vtkm::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::FieldInIncident
518  {
519  };
520 
527  {
528  };
529 
531  struct FieldOut
532  : vtkm::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::FieldOut
533  {
534  };
535 
542  {
543  };
544 
546  struct FieldInOut
547  : vtkm::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::FieldInOut
548  {
549  };
550 
552  struct WholeArrayIn : vtkm::worklet::internal::WorkletBase::WholeArrayIn
553  {
554  };
555 
557  struct WholeArrayOut : vtkm::worklet::internal::WorkletBase::WholeArrayOut
558  {
559  };
560 
562  struct WholeArrayInOut : vtkm::worklet::internal::WorkletBase::WholeArrayInOut
563  {
564  };
565 
567  struct AtomicArrayInOut : vtkm::worklet::internal::WorkletBase::AtomicArrayInOut
568  {
569  };
570 
572  template <typename VisitTopology = Cell, typename IncidentTopology = Point>
574  : vtkm::worklet::internal::WorkletBase::WholeCellSetIn<VisitTopology, IncidentTopology>
575  {
576  };
577 
579  struct ExecObject : vtkm::worklet::internal::WorkletBase::ExecObject
580  {
581  };
582 
584 
588 
590  struct _1 : vtkm::worklet::internal::WorkletBase::_1
591  {
592  };
593 
599  struct CellCount
600  : vtkm::worklet::WorkletMapTopology<VisitTopologyType,
601  IncidentTopologyType>::IncidentElementCount
602  {
603  };
604 
609  struct CellIndices
610  : vtkm::worklet::WorkletMapTopology<VisitTopologyType,
611  IncidentTopologyType>::IncidentElementIndices
612  {
613  };
614 
617  {
618  };
619 
622  {
623  };
624 
627  {
628  };
629 
632  {
633  };
634 
637  {
638  };
639 
641  struct Device : vtkm::worklet::internal::WorkletBase::Device
642  {
643  };
644 
646 #endif // VTKM_DOXYGEN_ONLY
647 };
648 
649 }
650 } // namespace vtkm::worklet
651 
652 #endif //vtk_m_worklet_WorkletMapTopology_h
vtkm::worklet::WorkletMapTopology::FieldOut
A control signature tag for output fields.
Definition: WorkletMapTopology.h:99
vtkm::TopologyElementTagPoint
A tag used to identify the point elements in a topology.
Definition: TopologyElementTag.h:34
vtkm::worklet::WorkletVisitPointsWithCells::WholeCellSetIn
ControlSignature tag for whole input topology.
Definition: WorkletMapTopology.h:573
vtkm::worklet::WorkletVisitPointsWithCells::WholeArrayIn
ControlSignature tag for whole input arrays.
Definition: WorkletMapTopology.h:552
vtkm::worklet::WorkletVisitCellsWithPoints::CellShape
An execution signature tag to get the shape of the visited cell.
Definition: WorkletMapTopology.h:396
vtkm::worklet::WorkletMapTopology::CellSetIn
A control signature tag for input connectivity.
Definition: WorkletMapTopology.h:122
vtkm::worklet::WorkletVisitPointsWithCells::FieldOut
A control signature tag for output fields.
Definition: WorkletMapTopology.h:531
vtkm::worklet::WorkletVisitCellsWithPoints::WholeArrayOut
ControlSignature tag for whole output arrays.
Definition: WorkletMapTopology.h:355
VTKM_EXEC
#define VTKM_EXEC
Definition: ExportMacros.h:51
vtkm
Groups connected points that have the same field value.
Definition: Atomic.h:19
vtkm::worklet::WorkletMapTopology::IsScatterIdentity
static constexpr bool IsScatterIdentity
In the remaining methods and constexpr we determine at compilation time which method definition will ...
Definition: WorkletMapTopology.h:191
vtkm::worklet::WorkletVisitCellsWithPoints::WholeCellSetIn
ControlSignature tag for whole input topology.
Definition: WorkletMapTopology.h:371
TransportTagCellSetIn.h
vtkm::worklet::WorkletVisitCellsWithPoints::FieldInOut
A control signature tag for input-output (in-place) fields.
Definition: WorkletMapTopology.h:344
IncidentElementIndices.h
vtkm::worklet::WorkletVisitPointsWithCells::_1
Argument placeholders for an ExecutionSignature.
Definition: WorkletMapTopology.h:590
TypeCheckTagArrayOut.h
vtkm::worklet::WorkletMapTopology::FieldInIncident
A control signature tag for input fields from the incident topology.
Definition: WorkletMapTopology.h:90
vtkm::worklet::WorkletVisitCellsWithPoints::ExecObject
ControlSignature tag for execution object inputs.
Definition: WorkletMapTopology.h:377
vtkm::worklet::WorkletVisitCellsWithPoints::AtomicArrayInOut
ControlSignature tag for whole input/output arrays.
Definition: WorkletMapTopology.h:365
vtkm::worklet::WorkletVisitCellsWithPoints::OutputIndex
The ExecutionSignature tag to use to get the output index.
Definition: WorkletMapTopology.h:438
ControlSignatureTagBase.h
vtkm::exec::arg::FetchTagArrayTopologyMapIn
Fetch tag for getting array values determined by topology connections.
Definition: FetchTagArrayTopologyMapIn.h:40
vtkm::exec::arg::FetchTagCellSetIn
Fetch tag for getting topology information.
Definition: FetchTagCellSetIn.h:29
vtkm::exec::arg::FetchTagArrayDirectOut
Fetch tag for setting array values with direct indexing.
Definition: FetchTagArrayDirectOut.h:31
vtkm::cont::arg::TransportTagTopologyFieldIn
Transport tag for input arrays in topology maps.
Definition: TransportTagTopologyFieldIn.h:36
TransportTagArrayOut.h
CellShape.h
vtkm::worklet::WorkletVisitPointsWithCells::FieldInVisit
A control signature tag for input fields from the visited topology.
Definition: WorkletMapTopology.h:508
ThreadIndicesTopologyMap.h
vtkm::cont::arg::TypeCheckTagArrayOut
The Array type check passes for any object that behaves like an ArrayHandle class and can be passed t...
Definition: TypeCheckTagArrayOut.h:31
vtkm::cont::arg::TransportTagArrayInOut
Transport tag for in-place arrays.
Definition: TransportTagArrayInOut.h:33
vtkm::worklet::WorkletVisitPointsWithCells::VisitIndex
The ExecutionSignature tag to use to get the visit index.
Definition: WorkletMapTopology.h:621
vtkm::worklet::WorkletVisitCellsWithPoints::FieldInPoint
A control signature tag for input fields on the points of the topology.
Definition: WorkletMapTopology.h:299
vtkm::worklet::WorkletVisitCellsWithPoints::CellSetIn
A control signature tag for input connectivity.
Definition: WorkletMapTopology.h:280
vtkm::exec::arg::OutputIndex
The ExecutionSignature tag to use to get the output index.
Definition: OutputIndex.h:44
vtkm::worklet::WorkletVisitCellsWithPoints::VisitIndex
The ExecutionSignature tag to use to get the visit index.
Definition: WorkletMapTopology.h:428
vtkm::cont::arg::TransportTagArrayOut
Transport tag for output arrays.
Definition: TransportTagArrayOut.h:32
vtkm::cont::arg::TransportTagCellSetIn
Transport tag for input arrays.
Definition: TransportTagCellSetIn.h:32
vtkm::worklet::WorkletMapTopology::FieldInVisit
A control signature tag for input fields from the visited topology.
Definition: WorkletMapTopology.h:80
vtkm::worklet::WorkletMapTopology::CellShape
An execution signature tag for getting the cell shape.
Definition: WorkletMapTopology.h:133
vtkm::worklet::WorkletMapTopology::IncidentElementIndices
An execution signature tag to get the indices of from elements.
Definition: WorkletMapTopology.h:159
vtkm::cont::arg::TypeCheckTagArrayInOut
The Array type check passes for any object that behaves like an ArrayHandle class and can be passed t...
Definition: TypeCheckTagArrayInOut.h:31
vtkm::worklet::WorkletVisitCellsWithPoints::FieldInIncident
A control signature tag for input fields from the incident topology.
Definition: WorkletMapTopology.h:314
vtkm::worklet::WorkletVisitPointsWithCells::FieldInIncident
A control signature tag for input fields from the incident topology.
Definition: WorkletMapTopology.h:516
TypeCheckTagArrayInOut.h
vtkm::exec::arg::IncidentElementCount
The ExecutionSignature tag to get the number of incident elements.
Definition: IncidentElementCount.h:40
vtkm::worklet::WorkletVisitCellsWithPoints::FieldInCell
A control signature tag for input fields on the cells of the topology.
Definition: WorkletMapTopology.h:290
vtkm::worklet::WorkletVisitPointsWithCells::ExecObject
ControlSignature tag for execution object inputs.
Definition: WorkletMapTopology.h:579
TransportTagArrayInOut.h
vtkm::cont::arg::TypeCheckTagArrayIn
The Array type check passes for any object that behaves like an ArrayHandle class and can be passed t...
Definition: TypeCheckTagArrayIn.h:31
vtkm::worklet::WorkletMapTopology::FieldInOut
A control signature tag for input-output (in-place) fields from the visited topology.
Definition: WorkletMapTopology.h:109
vtkm::worklet::WorkletMapTopology::IncidentElementCount
An execution signature tag to get the number of incident elements.
Definition: WorkletMapTopology.h:146
vtkm::worklet::WorkletVisitPointsWithCells::ThreadIndices
The ExecutionSignature tag to use to get the thread indices.
Definition: WorkletMapTopology.h:636
vtkm::worklet::WorkletVisitCellsWithPoints::WorkIndex
The ExecutionSignature tag to use to get the work index.
Definition: WorkletMapTopology.h:423
vtkm::worklet::WorkletVisitPointsWithCells
Base class for worklets that map from Cells to Points.
Definition: WorkletMapTopology.h:458
vtkm::worklet::WorkletVisitCellsWithPoints::FieldInOutCell
A control signature tag for input-output (in-place) fields.
Definition: WorkletMapTopology.h:339
vtkm::exec::arg::FetchTagArrayDirectIn
Fetch tag for getting array values with direct indexing.
Definition: FetchTagArrayDirectIn.h:29
vtkm::worklet::WorkletMapTopology::IsMaskNone
static constexpr bool IsMaskNone
Definition: WorkletMapTopology.h:193
vtkm::worklet::DispatcherMapTopology
Dispatcher for worklets that inherit from WorkletMapTopology.
Definition: DispatcherMapTopology.h:31
vtkm::worklet::WorkletVisitCellsWithPoints::InputIndex
The ExecutionSignature tag to use to get the input index.
Definition: WorkletMapTopology.h:433
TypeCheckTagArrayIn.h
WorkletBase.h
vtkm::worklet::WorkletVisitCellsWithPoints
Base class for worklets that map from Points to Cells.
Definition: WorkletMapTopology.h:256
vtkm::worklet::WorkletVisitPointsWithCells::FieldInCell
A control signature tag for input fields on the cells of the topology.
Definition: WorkletMapTopology.h:501
vtkm::worklet::WorkletVisitPointsWithCells::InputIndex
The ExecutionSignature tag to use to get the input index.
Definition: WorkletMapTopology.h:626
vtkm::worklet::WorkletVisitCellsWithPoints::FieldOut
A control signature tag for output fields.
Definition: WorkletMapTopology.h:329
vtkm::worklet::WorkletVisitCellsWithPoints::FieldInVisit
A control signature tag for input fields from the visited topology.
Definition: WorkletMapTopology.h:306
vtkm::worklet::WorkletVisitPointsWithCells::WholeArrayOut
ControlSignature tag for whole output arrays.
Definition: WorkletMapTopology.h:557
vtkm::exec::arg::ThreadIndices
The ExecutionSignature tag to use to get the thread indices.
Definition: ThreadIndices.h:44
vtkm::exec::arg::IncidentElementIndices
The ExecutionSignature tag to get the indices of visited elements.
Definition: IncidentElementIndices.h:33
vtkm::Id
vtkm::Int64 Id
Base type to use to index arrays.
Definition: Types.h:227
vtkm::worklet::WorkletMapTopology< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint >::EnableFnWhen
typename std::enable_if< Cond, ReturnType >::type EnableFnWhen
Definition: WorkletMapTopology.h:196
vtkm::worklet::WorkletVisitCellsWithPoints::WholeArrayIn
ControlSignature tag for whole input arrays.
Definition: WorkletMapTopology.h:350
FetchTagCellSetIn.h
vtkm::worklet::WorkletVisitCellsWithPoints::FieldOutCell
A control signature tag for output fields.
Definition: WorkletMapTopology.h:324
vtkm::worklet::WorkletVisitPointsWithCells::CellIndices
An execution signature tag to get the indices of the incident cells.
Definition: WorkletMapTopology.h:609
IncidentElementCount.h
vtkm::worklet::WorkletVisitPointsWithCells::CellCount
An execution signature tag to get the number of incident cells.
Definition: WorkletMapTopology.h:599
vtkm::worklet::WorkletVisitPointsWithCells::WholeArrayInOut
ControlSignature tag for whole input/output arrays.
Definition: WorkletMapTopology.h:562
vtkmNotUsed
#define vtkmNotUsed(parameter_name)
Simple macro to identify a parameter as unused.
Definition: ExportMacros.h:128
TransportTagTopologyFieldIn.h
vtkm::worklet::WorkletVisitCellsWithPoints::Device
ExecutionSignature tag for getting the device adapter tag.
Definition: WorkletMapTopology.h:448
FetchTagArrayTopologyMapIn.h
vtkm::worklet::WorkletVisitPointsWithCells::WorkIndex
The ExecutionSignature tag to use to get the work index.
Definition: WorkletMapTopology.h:616
FetchTagArrayDirectIn.h
vtkm::worklet::WorkletMapTopology::GetThreadIndices
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
vtkm::worklet::WorkletVisitPointsWithCells::FieldInOutPoint
A control signature tag for input-output (in-place) fields.
Definition: WorkletMapTopology.h:541
vtkm::cont::arg::ControlSignatureTagBase
The base class for all tags used in a ControlSignature.
Definition: ControlSignatureTagBase.h:36
vtkm::Vec< vtkm::Id, 3 >
vtkm::exec::arg::CustomScatterOrMaskTag
Used for when not using MaskNone and ScatterIdentity.
Definition: ThreadIndicesTopologyMap.h:80
vtkm::exec::arg::CellShape
The ExecutionSignature tag to use to get the cell shape.
Definition: exec/arg/CellShape.h:34
vtkm::worklet::WorkletVisitPointsWithCells::FieldInPoint
A control signature tag for input fields on the points of the topology.
Definition: WorkletMapTopology.h:492
vtkm::worklet::WorkletVisitCellsWithPoints::WholeArrayInOut
ControlSignature tag for whole input/output arrays.
Definition: WorkletMapTopology.h:360
vtkm::worklet::WorkletVisitPointsWithCells::AtomicArrayInOut
ControlSignature tag for whole input/output arrays.
Definition: WorkletMapTopology.h:567
FetchTagArrayDirectInOut.h
FetchTagArrayDirectOut.h
vtkm::worklet::WorkletVisitPointsWithCells::FieldInOut
A control signature tag for input-output (in-place) fields.
Definition: WorkletMapTopology.h:546
vtkm::worklet::WorkletVisitCellsWithPoints::PointCount
An execution signature tag to get the number of incident points.
Definition: WorkletMapTopology.h:406
vtkm::worklet::WorkletVisitPointsWithCells::FieldOutPoint
A control signature tag for output fields.
Definition: WorkletMapTopology.h:526
vtkm::TopologyElementTagCell
A tag used to identify the cell elements in a topology.
Definition: TopologyElementTag.h:24
TypeCheckTagCellSet.h
vtkm::worklet::WorkletVisitCellsWithPoints::_1
Argument placeholders for an ExecutionSignature.
Definition: WorkletMapTopology.h:388
vtkm::exec::arg::FetchTagArrayDirectInOut
Fetch tag for in-place modifying array values with direct indexing.
Definition: FetchTagArrayDirectInOut.h:39
vtkm::worklet::WorkletVisitCellsWithPoints::ThreadIndices
The ExecutionSignature tag to use to get the thread indices.
Definition: WorkletMapTopology.h:443
vtkm::exec::arg::VisitIndex
The ExecutionSignature tag to use to get the visit index.
Definition: VisitIndex.h:46
vtkm::worklet::WorkletMapTopology::GetThreadIndices
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
DispatcherMapTopology.h
vtkm::worklet::WorkletMapTopology::GetThreadIndices
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
vtkm::exec::arg::InputIndex
The ExecutionSignature tag to use to get the input index.
Definition: InputIndex.h:43
VTKM_SUPPRESS_EXEC_WARNINGS
#define VTKM_SUPPRESS_EXEC_WARNINGS
Definition: ExportMacros.h:53
vtkm::exec::arg::ThreadIndicesTopologyMap
Container for thread indices in a topology map.
Definition: ThreadIndicesTopologyMap.h:95
vtkm::worklet::WorkletVisitPointsWithCells::Device
ExecutionSignature tag for getting the device adapter tag.
Definition: WorkletMapTopology.h:641
vtkm::exec::arg::DefaultScatterAndMaskTag
Uses spaces optimizations when using MaskNone and ScatterIdentity.
Definition: ThreadIndicesTopologyMap.h:74
vtkm::cont::arg::TypeCheckTagCellSet
Check for a CellSet-like object.
Definition: TypeCheckTagCellSet.h:26
vtkm::worklet::WorkletVisitPointsWithCells::CellSetIn
A control signature tag for input connectivity.
Definition: WorkletMapTopology.h:482
vtkm::worklet::WorkletVisitPointsWithCells::OutputIndex
The ExecutionSignature tag to use to get the output index.
Definition: WorkletMapTopology.h:631
vtkm::exec::arg::WorkIndex
The ExecutionSignature tag to use to get the work index.
Definition: WorkIndex.h:39
TopologyElementTag.h
vtkm::worklet::WorkletVisitCellsWithPoints::PointIndices
An execution signature tag to get the indices of the incident points.
Definition: WorkletMapTopology.h:416
vtkm::worklet::WorkletMapTopology
Base class for worklets that map topology elements onto each other.
Definition: WorkletMapTopology.h:71