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