Viskores  1.0
WorkletMapTopology.h
Go to the documentation of this file.
1 //============================================================================
2 // The contents of this file are covered by the Viskores license. See
3 // LICENSE.txt for details.
4 //
5 // By contributing to this file, all contributors agree to the Developer
6 // Certificate of Origin Version 1.1 (DCO 1.1) as stated in DCO.txt.
7 //============================================================================
8 
9 //============================================================================
10 // Copyright (c) Kitware, Inc.
11 // All rights reserved.
12 // See LICENSE.txt for details.
13 //
14 // This software is distributed WITHOUT ANY WARRANTY; without even
15 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16 // PURPOSE. See the above copyright notice for more information.
17 //============================================================================
18 #ifndef viskores_worklet_WorkletMapTopology_h
19 #define viskores_worklet_WorkletMapTopology_h
20 
22 
24 
34 
44 
46 
47 namespace viskores
48 {
49 namespace worklet
50 {
51 
52 template <typename WorkletType>
53 class DispatcherMapTopology;
54 
55 namespace detail
56 {
57 
58 struct WorkletMapTopologyBase : viskores::worklet::internal::WorkletBase
59 {
60  template <typename Worklet>
62 };
63 
64 } // namespace detail
65 
78 template <typename VisitTopology, typename IncidentTopology>
79 class WorkletMapTopology : public detail::WorkletMapTopologyBase
80 {
81 public:
82  using VisitTopologyType = VisitTopology;
83  using IncidentTopologyType = IncidentTopology;
84 
89  {
93  };
94 
99  {
103  };
104 
108  {
112  };
113 
118  {
122  };
123 
131  {
133  using TransportTag =
136  };
137 
142  {
143  };
144 
155  {
156  };
157 
168  {
169  };
170 
174  template <typename OutToInArrayType,
175  typename VisitArrayType,
176  typename ThreadToOutArrayType,
177  typename InputDomainType>
182  const OutToInArrayType& outToIn,
183  const VisitArrayType& visit,
184  const ThreadToOutArrayType& threadToOut,
185  const InputDomainType& connectivity) const
186  {
187  const viskores::Id outIndex = threadToOut.Get(threadIndex);
188  return viskores::exec::arg::
189  ThreadIndicesTopologyMap<InputDomainType, viskores::exec::arg::CustomScatterOrMaskTag>(
190  threadIndex, outToIn.Get(outIndex), visit.Get(outIndex), outIndex, connectivity);
191  }
192 
199 private:
200  static constexpr bool IsScatterIdentity =
201  std::is_same<ScatterType, viskores::worklet::ScatterIdentity>::value;
202  static constexpr bool IsMaskNone = std::is_same<MaskType, viskores::worklet::MaskNone>::value;
203 
204  template <bool Cond, typename ReturnType>
205  using EnableFnWhen = typename std::enable_if<Cond, ReturnType>::type;
206 
207 public:
210  template <typename OutToInArrayType,
211  typename VisitArrayType,
212  typename ThreadToOutArrayType,
213  typename InputDomainType,
214  bool S = IsScatterIdentity,
215  bool M = IsMaskNone>
217  S && M,
221  const viskores::Id3& threadIndex3D,
222  const OutToInArrayType& viskoresNotUsed(outToIn),
223  const VisitArrayType& viskoresNotUsed(visit),
224  const ThreadToOutArrayType& viskoresNotUsed(threadToOut),
225  const InputDomainType& connectivity) const
226  {
227  return viskores::exec::arg::
228  ThreadIndicesTopologyMap<InputDomainType, viskores::exec::arg::DefaultScatterAndMaskTag>(
229  threadIndex3D, threadIndex1D, connectivity);
230  }
231 
234  template <typename OutToInArrayType,
235  typename VisitArrayType,
236  typename ThreadToOutArrayType,
237  typename InputDomainType,
238  bool S = IsScatterIdentity,
239  bool M = IsMaskNone>
241  !(S && M),
245  const viskores::Id3& threadIndex3D,
246  const OutToInArrayType& outToIn,
247  const VisitArrayType& visit,
248  const ThreadToOutArrayType& threadToOut,
249  const InputDomainType& connectivity) const
250  {
251  const viskores::Id outIndex = threadToOut.Get(threadIndex1D);
252  return viskores::exec::arg::
253  ThreadIndicesTopologyMap<InputDomainType, viskores::exec::arg::CustomScatterOrMaskTag>(
254  threadIndex3D,
255  threadIndex1D,
256  outToIn.Get(outIndex),
257  visit.Get(outIndex),
258  outIndex,
259  connectivity);
260  }
261 };
262 
266  : public WorkletMapTopology<viskores::TopologyElementTagCell, viskores::TopologyElementTagPoint>
267 {
268 public:
269 #ifndef VISKORES_DOXYGEN_ONLY
271 
272  using FieldInCell = FieldInVisit;
273 
274  using FieldOutCell = FieldOut;
275 
276  using FieldInOutCell = FieldInOut;
277 
278  using PointCount = IncidentElementCount;
279 
280  using PointIndices = IncidentElementIndices;
281 #else // VISKORES_DOXYGEN_ONLY
282  // These redeclarations of superclass features are for documentation purposes only.
283 
287 
289  struct CellSetIn
290  : viskores::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::CellSetIn
291  {
292  };
293 
300  {
301  };
302 
309  {
310  };
311 
316  : viskores::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::FieldInVisit
317  {
318  };
319 
324  : viskores::worklet::WorkletMapTopology<VisitTopologyType,
325  IncidentTopologyType>::FieldInIncident
326  {
327  };
328 
335  {
336  };
337 
339  struct FieldOut
340  : viskores::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::FieldOut
341  {
342  };
343 
350  {
351  };
352 
354  struct FieldInOut
355  : viskores::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::FieldInOut
356  {
357  };
358 
360  struct WholeArrayIn : viskores::worklet::internal::WorkletBase::WholeArrayIn
361  {
362  };
363 
365  struct WholeArrayOut : viskores::worklet::internal::WorkletBase::WholeArrayOut
366  {
367  };
368 
370  struct WholeArrayInOut : viskores::worklet::internal::WorkletBase::WholeArrayInOut
371  {
372  };
373 
375  struct AtomicArrayInOut : viskores::worklet::internal::WorkletBase::AtomicArrayInOut
376  {
377  };
378 
380  template <typename VisitTopology = Cell, typename IncidentTopology = Point>
382  : viskores::worklet::internal::WorkletBase::WholeCellSetIn<VisitTopology, IncidentTopology>
383  {
384  };
385 
387  struct ExecObject : viskores::worklet::internal::WorkletBase::ExecObject
388  {
389  };
390 
392 
396 
398  struct _1 : viskores::worklet::internal::WorkletBase::_1
399  {
400  };
401 
406  struct CellShape
407  : viskores::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::CellShape
408  {
409  };
410 
416  struct PointCount
417  : viskores::worklet::WorkletMapTopology<VisitTopologyType,
418  IncidentTopologyType>::IncidentElementCount
419  {
420  };
421 
427  : viskores::worklet::WorkletMapTopology<VisitTopologyType,
428  IncidentTopologyType>::IncidentElementIndices
429  {
430  };
431 
434  {
435  };
436 
439  {
440  };
441 
444  {
445  };
446 
449  {
450  };
451 
454  {
455  };
456 
458  struct Device : viskores::worklet::internal::WorkletBase::Device
459  {
460  };
461 
463 #endif // VISKORES_DOXYGEN_ONLY
464 };
465 
469  : public WorkletMapTopology<viskores::TopologyElementTagPoint, viskores::TopologyElementTagCell>
470 {
471 public:
472 #ifndef VISKORES_DOXYGEN_ONLY
474 
475  using FieldInPoint = FieldInVisit;
476 
477  using FieldOutPoint = FieldOut;
478 
479  using FieldInOutPoint = FieldInOut;
480 
481  using CellCount = IncidentElementCount;
482 
483  using CellIndices = IncidentElementIndices;
484 #else // VISKORES_DOXYGEN_ONLY
485  // These redeclarations of superclass features are for documentation purposes only.
486 
490 
492  struct CellSetIn
493  : viskores::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::CellSetIn
494  {
495  };
496 
503  {
504  };
505 
512  {
513  };
514 
519  : viskores::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::FieldInVisit
520  {
521  };
522 
527  : viskores::worklet::WorkletMapTopology<VisitTopologyType,
528  IncidentTopologyType>::FieldInIncident
529  {
530  };
531 
538  {
539  };
540 
542  struct FieldOut
543  : viskores::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::FieldOut
544  {
545  };
546 
553  {
554  };
555 
557  struct FieldInOut
558  : viskores::worklet::WorkletMapTopology<VisitTopologyType, IncidentTopologyType>::FieldInOut
559  {
560  };
561 
563  struct WholeArrayIn : viskores::worklet::internal::WorkletBase::WholeArrayIn
564  {
565  };
566 
568  struct WholeArrayOut : viskores::worklet::internal::WorkletBase::WholeArrayOut
569  {
570  };
571 
573  struct WholeArrayInOut : viskores::worklet::internal::WorkletBase::WholeArrayInOut
574  {
575  };
576 
578  struct AtomicArrayInOut : viskores::worklet::internal::WorkletBase::AtomicArrayInOut
579  {
580  };
581 
583  template <typename VisitTopology = Cell, typename IncidentTopology = Point>
585  : viskores::worklet::internal::WorkletBase::WholeCellSetIn<VisitTopology, IncidentTopology>
586  {
587  };
588 
590  struct ExecObject : viskores::worklet::internal::WorkletBase::ExecObject
591  {
592  };
593 
595 
599 
601  struct _1 : viskores::worklet::internal::WorkletBase::_1
602  {
603  };
604 
610  struct CellCount
611  : viskores::worklet::WorkletMapTopology<VisitTopologyType,
612  IncidentTopologyType>::IncidentElementCount
613  {
614  };
615 
620  struct CellIndices
621  : viskores::worklet::WorkletMapTopology<VisitTopologyType,
622  IncidentTopologyType>::IncidentElementIndices
623  {
624  };
625 
628  {
629  };
630 
633  {
634  };
635 
638  {
639  };
640 
643  {
644  };
645 
648  {
649  };
650 
652  struct Device : viskores::worklet::internal::WorkletBase::Device
653  {
654  };
655 
657 #endif // VISKORES_DOXYGEN_ONLY
658 };
659 
660 }
661 } // namespace viskores::worklet
662 
663 #endif //viskores_worklet_WorkletMapTopology_h
viskores::worklet::WorkletMapTopology
Base class for worklets that map topology elements onto each other.
Definition: WorkletMapTopology.h:79
viskores::cont::arg::TransportTagArrayInOut
Transport tag for in-place arrays.
Definition: TransportTagArrayInOut.h:41
viskores::worklet::WorkletVisitCellsWithPoints::FieldInCell
A control signature tag for input fields on the cells of the topology.
Definition: WorkletMapTopology.h:299
viskores::worklet::WorkletVisitCellsWithPoints::ThreadIndices
The ExecutionSignature tag to use to get the thread indices.
Definition: WorkletMapTopology.h:453
viskores::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:39
viskores::worklet::WorkletVisitCellsWithPoints::AtomicArrayInOut
ControlSignature tag for whole input/output arrays.
Definition: WorkletMapTopology.h:375
viskores::exec::arg::IncidentElementIndices
The ExecutionSignature tag to get the indices of visited elements.
Definition: IncidentElementIndices.h:41
viskores::worklet::WorkletMapTopology< viskores::TopologyElementTagPoint, viskores::TopologyElementTagCell >::EnableFnWhen
typename std::enable_if< Cond, ReturnType >::type EnableFnWhen
Definition: WorkletMapTopology.h:205
viskores::worklet::WorkletMapTopology::CellShape
An execution signature tag for getting the cell shape.
Definition: WorkletMapTopology.h:141
viskores::TopologyElementTagCell
A tag used to identify the cell elements in a topology.
Definition: TopologyElementTag.h:32
viskores::worklet::WorkletMapTopology::FieldInVisit
A control signature tag for input fields from the visited topology.
Definition: WorkletMapTopology.h:88
viskores::exec::arg::ThreadIndices
The ExecutionSignature tag to use to get the thread indices.
Definition: ThreadIndices.h:52
viskores::exec::arg::DefaultScatterAndMaskTag
Uses spaces optimizations when using MaskNone and ScatterIdentity.
Definition: ThreadIndicesTopologyMap.h:82
viskores::worklet::WorkletVisitCellsWithPoints::FieldInPoint
A control signature tag for input fields on the points of the topology.
Definition: WorkletMapTopology.h:308
TransportTagCellSetIn.h
IncidentElementIndices.h
viskores::worklet::WorkletMapTopology::IncidentElementCount
An execution signature tag to get the number of incident elements.
Definition: WorkletMapTopology.h:154
TypeCheckTagArrayOut.h
viskores::worklet::WorkletVisitPointsWithCells::OutputIndex
The ExecutionSignature tag to use to get the output index.
Definition: WorkletMapTopology.h:642
viskores::worklet::WorkletVisitCellsWithPoints::OutputIndex
The ExecutionSignature tag to use to get the output index.
Definition: WorkletMapTopology.h:448
viskores::worklet::WorkletVisitCellsWithPoints::_1
Argument placeholders for an ExecutionSignature.
Definition: WorkletMapTopology.h:398
viskores::worklet::WorkletVisitCellsWithPoints::CellSetIn
A control signature tag for input connectivity.
Definition: WorkletMapTopology.h:289
ControlSignatureTagBase.h
TransportTagArrayOut.h
CellShape.h
viskores::worklet::WorkletMapTopology::FieldOut
A control signature tag for output fields.
Definition: WorkletMapTopology.h:107
viskoresNotUsed
#define viskoresNotUsed(parameter_name)
Simple macro to identify a parameter as unused.
Definition: ExportMacros.h:136
ThreadIndicesTopologyMap.h
viskores::worklet::WorkletVisitCellsWithPoints::FieldInOutCell
A control signature tag for input-output (in-place) fields.
Definition: WorkletMapTopology.h:349
viskores::cont::arg::TransportTagCellSetIn
Transport tag for input arrays.
Definition: TransportTagCellSetIn.h:40
viskores::worklet::WorkletVisitCellsWithPoints::CellShape
An execution signature tag to get the shape of the visited cell.
Definition: WorkletMapTopology.h:406
viskores::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:39
VISKORES_SUPPRESS_EXEC_WARNINGS
#define VISKORES_SUPPRESS_EXEC_WARNINGS
Definition: ExportMacros.h:61
viskores::worklet::WorkletVisitPointsWithCells::FieldInCell
A control signature tag for input fields on the cells of the topology.
Definition: WorkletMapTopology.h:511
viskores::worklet::WorkletVisitCellsWithPoints::FieldInOut
A control signature tag for input-output (in-place) fields.
Definition: WorkletMapTopology.h:354
viskores::cont::arg::TypeCheckTagCellSet
Check for a CellSet-like object.
Definition: TypeCheckTagCellSet.h:34
viskores::exec::arg::CellShape
The ExecutionSignature tag to use to get the cell shape.
Definition: exec/arg/CellShape.h:42
viskores::worklet::WorkletVisitCellsWithPoints::FieldOut
A control signature tag for output fields.
Definition: WorkletMapTopology.h:339
viskores::worklet::WorkletMapTopology::IsMaskNone
static constexpr bool IsMaskNone
Definition: WorkletMapTopology.h:202
viskores::worklet::WorkletVisitPointsWithCells::WholeArrayIn
ControlSignature tag for whole input arrays.
Definition: WorkletMapTopology.h:563
viskores::worklet::WorkletVisitPointsWithCells::InputIndex
The ExecutionSignature tag to use to get the input index.
Definition: WorkletMapTopology.h:637
viskores::worklet::WorkletVisitCellsWithPoints
Base class for worklets that map from Points to Cells.
Definition: WorkletMapTopology.h:265
viskores::worklet::WorkletVisitCellsWithPoints::PointCount
An execution signature tag to get the number of incident points.
Definition: WorkletMapTopology.h:416
viskores::exec::arg::FetchTagCellSetIn
Fetch tag for getting topology information.
Definition: FetchTagCellSetIn.h:37
viskores::worklet::WorkletVisitCellsWithPoints::WholeArrayInOut
ControlSignature tag for whole input/output arrays.
Definition: WorkletMapTopology.h:370
viskores::exec::arg::ThreadIndicesTopologyMap
Container for thread indices in a topology map.
Definition: ThreadIndicesTopologyMap.h:103
viskores::worklet::WorkletVisitPointsWithCells::FieldInVisit
A control signature tag for input fields from the visited topology.
Definition: WorkletMapTopology.h:518
viskores::worklet::WorkletVisitCellsWithPoints::Device
ExecutionSignature tag for getting the device adapter tag.
Definition: WorkletMapTopology.h:458
viskores::TopologyElementTagPoint
A tag used to identify the point elements in a topology.
Definition: TopologyElementTag.h:42
viskores::cont::arg::ControlSignatureTagBase
The base class for all tags used in a ControlSignature.
Definition: ControlSignatureTagBase.h:44
TypeCheckTagArrayInOut.h
viskores::worklet::WorkletVisitCellsWithPoints::WholeArrayIn
ControlSignature tag for whole input arrays.
Definition: WorkletMapTopology.h:360
viskores::worklet::WorkletVisitCellsWithPoints::PointIndices
An execution signature tag to get the indices of the incident points.
Definition: WorkletMapTopology.h:426
viskores::worklet::WorkletMapTopology::GetThreadIndices
viskores::exec::arg::ThreadIndicesTopologyMap< InputDomainType, viskores::exec::arg::CustomScatterOrMaskTag > GetThreadIndices(viskores::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:181
viskores::exec::arg::FetchTagArrayDirectInOut
Fetch tag for in-place modifying array values with direct indexing.
Definition: FetchTagArrayDirectInOut.h:47
viskores::worklet::WorkletVisitPointsWithCells
Base class for worklets that map from Cells to Points.
Definition: WorkletMapTopology.h:468
TransportTagArrayInOut.h
viskores::worklet::WorkletVisitCellsWithPoints::WorkIndex
The ExecutionSignature tag to use to get the work index.
Definition: WorkletMapTopology.h:433
viskores::exec::arg::IncidentElementCount
The ExecutionSignature tag to get the number of incident elements.
Definition: IncidentElementCount.h:48
viskores::exec::arg::VisitIndex
The ExecutionSignature tag to use to get the visit index.
Definition: VisitIndex.h:54
viskores::Id
viskores::Int64 Id
Base type to use to index arrays.
Definition: Types.h:235
viskores
Groups connected points that have the same field value.
Definition: Atomic.h:27
viskores::worklet::WorkletMapTopology::FieldInIncident
A control signature tag for input fields from the incident topology.
Definition: WorkletMapTopology.h:98
viskores::exec::arg::OutputIndex
The ExecutionSignature tag to use to get the output index.
Definition: OutputIndex.h:52
viskores::worklet::WorkletMapTopology::GetThreadIndices
EnableFnWhen< S &&M, viskores::exec::arg::ThreadIndicesTopologyMap< InputDomainType, viskores::exec::arg::DefaultScatterAndMaskTag > > GetThreadIndices(viskores::Id threadIndex1D, const viskores::Id3 &threadIndex3D, const OutToInArrayType &, const VisitArrayType &, const ThreadToOutArrayType &, const InputDomainType &connectivity) const
Optimized for ScatterIdentity and MaskNone.
Definition: WorkletMapTopology.h:220
viskores::worklet::DispatcherMapTopology
Dispatcher for worklets that inherit from WorkletMapTopology.
Definition: DispatcherMapTopology.h:39
viskores::worklet::WorkletVisitPointsWithCells::ThreadIndices
The ExecutionSignature tag to use to get the thread indices.
Definition: WorkletMapTopology.h:647
TypeCheckTagArrayIn.h
viskores::worklet::WorkletVisitPointsWithCells::WholeArrayOut
ControlSignature tag for whole output arrays.
Definition: WorkletMapTopology.h:568
viskores::worklet::WorkletVisitPointsWithCells::FieldOutPoint
A control signature tag for output fields.
Definition: WorkletMapTopology.h:537
WorkletBase.h
viskores::worklet::WorkletVisitPointsWithCells::CellCount
An execution signature tag to get the number of incident cells.
Definition: WorkletMapTopology.h:610
viskores::cont::arg::TransportTagArrayOut
Transport tag for output arrays.
Definition: TransportTagArrayOut.h:40
viskores::worklet::WorkletVisitPointsWithCells::WholeArrayInOut
ControlSignature tag for whole input/output arrays.
Definition: WorkletMapTopology.h:573
viskores::worklet::WorkletVisitPointsWithCells::CellSetIn
A control signature tag for input connectivity.
Definition: WorkletMapTopology.h:492
viskores::exec::arg::FetchTagArrayTopologyMapIn
Fetch tag for getting array values determined by topology connections.
Definition: FetchTagArrayTopologyMapIn.h:48
viskores::worklet::WorkletVisitPointsWithCells::FieldInOutPoint
A control signature tag for input-output (in-place) fields.
Definition: WorkletMapTopology.h:552
viskores::worklet::WorkletVisitPointsWithCells::_1
Argument placeholders for an ExecutionSignature.
Definition: WorkletMapTopology.h:601
FetchTagCellSetIn.h
viskores::worklet::WorkletMapTopology::IncidentElementIndices
An execution signature tag to get the indices of from elements.
Definition: WorkletMapTopology.h:167
viskores::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:39
viskores::worklet::WorkletVisitPointsWithCells::VisitIndex
The ExecutionSignature tag to use to get the visit index.
Definition: WorkletMapTopology.h:632
IncidentElementCount.h
viskores::worklet::WorkletVisitCellsWithPoints::WholeArrayOut
ControlSignature tag for whole output arrays.
Definition: WorkletMapTopology.h:365
TransportTagTopologyFieldIn.h
viskores::cont::arg::TransportTagTopologyFieldIn
Transport tag for input arrays in topology maps.
Definition: TransportTagTopologyFieldIn.h:44
FetchTagArrayTopologyMapIn.h
viskores::worklet::WorkletVisitCellsWithPoints::VisitIndex
The ExecutionSignature tag to use to get the visit index.
Definition: WorkletMapTopology.h:438
FetchTagArrayDirectIn.h
viskores::exec::arg::FetchTagArrayDirectIn
Fetch tag for getting array values with direct indexing.
Definition: FetchTagArrayDirectIn.h:37
viskores::worklet::WorkletVisitPointsWithCells::CellIndices
An execution signature tag to get the indices of the incident cells.
Definition: WorkletMapTopology.h:620
viskores::worklet::WorkletVisitPointsWithCells::WholeCellSetIn
ControlSignature tag for whole input topology.
Definition: WorkletMapTopology.h:584
viskores::worklet::WorkletVisitCellsWithPoints::ExecObject
ControlSignature tag for execution object inputs.
Definition: WorkletMapTopology.h:387
viskores::worklet::WorkletVisitCellsWithPoints::FieldOutCell
A control signature tag for output fields.
Definition: WorkletMapTopology.h:334
FetchTagArrayDirectInOut.h
viskores::worklet::WorkletVisitPointsWithCells::FieldInPoint
A control signature tag for input fields on the points of the topology.
Definition: WorkletMapTopology.h:502
FetchTagArrayDirectOut.h
viskores::worklet::WorkletVisitCellsWithPoints::InputIndex
The ExecutionSignature tag to use to get the input index.
Definition: WorkletMapTopology.h:443
viskores::worklet::WorkletVisitCellsWithPoints::FieldInVisit
A control signature tag for input fields from the visited topology.
Definition: WorkletMapTopology.h:315
viskores::exec::arg::FetchTagArrayDirectOut
Fetch tag for setting array values with direct indexing.
Definition: FetchTagArrayDirectOut.h:39
viskores::worklet::WorkletMapTopology::GetThreadIndices
EnableFnWhen< !(S &&M), viskores::exec::arg::ThreadIndicesTopologyMap< InputDomainType, viskores::exec::arg::CustomScatterOrMaskTag > > GetThreadIndices(viskores::Id threadIndex1D, const viskores::Id3 &threadIndex3D, const OutToInArrayType &outToIn, const VisitArrayType &visit, const ThreadToOutArrayType &threadToOut, const InputDomainType &connectivity) const
Default version.
Definition: WorkletMapTopology.h:244
viskores::worklet::WorkletVisitCellsWithPoints::FieldInIncident
A control signature tag for input fields from the incident topology.
Definition: WorkletMapTopology.h:323
TypeCheckTagCellSet.h
viskores::worklet::WorkletVisitPointsWithCells::Device
ExecutionSignature tag for getting the device adapter tag.
Definition: WorkletMapTopology.h:652
viskores::worklet::WorkletVisitCellsWithPoints::WholeCellSetIn
ControlSignature tag for whole input topology.
Definition: WorkletMapTopology.h:381
viskores::worklet::WorkletVisitPointsWithCells::FieldInOut
A control signature tag for input-output (in-place) fields.
Definition: WorkletMapTopology.h:557
viskores::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:200
viskores::worklet::WorkletVisitPointsWithCells::FieldInIncident
A control signature tag for input fields from the incident topology.
Definition: WorkletMapTopology.h:526
viskores::worklet::WorkletVisitPointsWithCells::FieldOut
A control signature tag for output fields.
Definition: WorkletMapTopology.h:542
viskores::worklet::WorkletVisitPointsWithCells::ExecObject
ControlSignature tag for execution object inputs.
Definition: WorkletMapTopology.h:590
DispatcherMapTopology.h
viskores::worklet::WorkletMapTopology::CellSetIn
A control signature tag for input connectivity.
Definition: WorkletMapTopology.h:130
viskores::worklet::WorkletVisitPointsWithCells::AtomicArrayInOut
ControlSignature tag for whole input/output arrays.
Definition: WorkletMapTopology.h:578
viskores::exec::arg::CustomScatterOrMaskTag
Used for when not using MaskNone and ScatterIdentity.
Definition: ThreadIndicesTopologyMap.h:88
viskores::worklet::WorkletVisitPointsWithCells::WorkIndex
The ExecutionSignature tag to use to get the work index.
Definition: WorkletMapTopology.h:627
viskores::Vec< viskores::Id, 3 >
VISKORES_EXEC
#define VISKORES_EXEC
Definition: ExportMacros.h:59
viskores::exec::arg::InputIndex
The ExecutionSignature tag to use to get the input index.
Definition: InputIndex.h:51
TopologyElementTag.h
viskores::exec::arg::WorkIndex
The ExecutionSignature tag to use to get the work index.
Definition: WorkIndex.h:47
viskores::worklet::WorkletMapTopology::FieldInOut
A control signature tag for input-output (in-place) fields from the visited topology.
Definition: WorkletMapTopology.h:117