VTK-m  2.0
Public Types | Public Member Functions | Private Types | Private Attributes | List of all members
vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag > Class Template Reference

Specialization for DefaultScatterAndMaskTag. More...

#include <ThreadIndicesTopologyMap.h>

Public Types

using IndicesIncidentType = typename ConnectivityType::IndicesType
 
using CellShapeTag = typename ConnectivityType::CellShapeTag
 
using LogicalIndexType = typename ConnectivityType::SchedulingRangeType
 
using Connectivity = ConnectivityType
 

Public Member Functions

VTKM_EXEC ThreadIndicesTopologyMap (vtkm::Id threadIndex, vtkm::Id inputIndex, vtkm::IdComponent vtkmNotUsed(visitIndex), vtkm::Id vtkmNotUsed(outputIndex), const ConnectivityType &connectivity)
 
VTKM_EXEC ThreadIndicesTopologyMap (const vtkm::Id3 &threadIndex3D, vtkm::Id threadIndex1D, const ConnectivityType &connectivity)
 
VTKM_EXEC ThreadIndicesTopologyMap (const vtkm::Id3 &threadIndex3D, vtkm::Id threadIndex1D, vtkm::Id vtkmNotUsed(inIndex), vtkm::IdComponent vtkmNotUsed(visitIndex), vtkm::Id vtkmNotUsed(outIndex), const ConnectivityType &connectivity)
 
VTKM_EXEC vtkm::Id GetThreadIndex () const
 The index of the thread or work invocation. More...
 
VTKM_EXEC LogicalIndexType GetIndexLogical () const
 The logical index into the input domain. More...
 
VTKM_EXEC vtkm::Id GetInputIndex () const
 The index into the input domain. More...
 
VTKM_EXEC vtkm::Id3 GetInputIndex3D () const
 The 3D index into the input domain. More...
 
VTKM_EXEC vtkm::Id GetOutputIndex () const
 The index into the output domain. More...
 
VTKM_EXEC vtkm::IdComponent GetVisitIndex () const
 The visit index. More...
 
const VTKM_EXEC IndicesIncidentTypeGetIndicesIncident () const
 The indices of the incident elements. More...
 
const VTKM_EXEC IndicesIncidentTypeGetIndicesIncidentPointer () const
 The input indices of the incident elements in pointer form. More...
 
VTKM_EXEC CellShapeTag GetCellShape () const
 The shape of the input cell. More...
 

Private Types

using ConnectivityType = vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >
 

Private Attributes

vtkm::Id ThreadIndex
 
LogicalIndexType LogicalIndex
 
IndicesIncidentType IndicesIncident
 
CellShapeTag CellShape
 

Detailed Description

template<typename VisitTopology, typename IncidentTopology, vtkm::IdComponent Dimension>
class vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >

Specialization for DefaultScatterAndMaskTag.

It does not store VisitIndex, InputIndex and OutputIndex since this is used only when Scatter is set as ScatterIdentity and Mask is set as MaskNone which does not performs any transformation onto the indices.

Member Typedef Documentation

◆ CellShapeTag

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
using vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::CellShapeTag = typename ConnectivityType::CellShapeTag

◆ Connectivity

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
using vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::Connectivity = ConnectivityType

◆ ConnectivityType

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
using vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::ConnectivityType = vtkm::exec::ConnectivityStructured<VisitTopology, IncidentTopology, Dimension>
private

◆ IndicesIncidentType

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
using vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::IndicesIncidentType = typename ConnectivityType::IndicesType

◆ LogicalIndexType

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
using vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::LogicalIndexType = typename ConnectivityType::SchedulingRangeType

Constructor & Destructor Documentation

◆ ThreadIndicesTopologyMap() [1/3]

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
VTKM_EXEC vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::ThreadIndicesTopologyMap ( vtkm::Id  threadIndex,
vtkm::Id  inputIndex,
vtkm::IdComponent   vtkmNotUsedvisitIndex,
vtkm::Id   vtkmNotUsedoutputIndex,
const ConnectivityType connectivity 
)
inline

◆ ThreadIndicesTopologyMap() [2/3]

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
VTKM_EXEC vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::ThreadIndicesTopologyMap ( const vtkm::Id3 threadIndex3D,
vtkm::Id  threadIndex1D,
const ConnectivityType connectivity 
)
inline

◆ ThreadIndicesTopologyMap() [3/3]

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
VTKM_EXEC vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::ThreadIndicesTopologyMap ( const vtkm::Id3 threadIndex3D,
vtkm::Id  threadIndex1D,
vtkm::Id   vtkmNotUsedinIndex,
vtkm::IdComponent   vtkmNotUsedvisitIndex,
vtkm::Id   vtkmNotUsedoutIndex,
const ConnectivityType connectivity 
)
inline

Member Function Documentation

◆ GetCellShape()

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
VTKM_EXEC CellShapeTag vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::GetCellShape ( ) const
inline

The shape of the input cell.

In topology maps that map from points to something, the indices make up the structure of a cell. Although the shape tag is not technically and index, it defines the meaning of the indices, so we put it here. (That and this class is the only convenient place to store it.)

◆ GetIndexLogical()

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
VTKM_EXEC LogicalIndexType vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::GetIndexLogical ( ) const
inline

The logical index into the input domain.

This is similar to GetIndex3D except the Vec size matches the actual dimensions of the data.

◆ GetIndicesIncident()

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
const VTKM_EXEC IndicesIncidentType& vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::GetIndicesIncident ( ) const
inline

The indices of the incident elements.

A topology map has "visited" and "incident" elements (e.g. points, cells, etc). For each worklet invocation, there is exactly one visited element, but there can be several incident elements. This method returns a Vec-like object containing the indices to the incident elements.

◆ GetIndicesIncidentPointer()

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
const VTKM_EXEC IndicesIncidentType* vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::GetIndicesIncidentPointer ( ) const
inline

The input indices of the incident elements in pointer form.

Returns the same object as GetIndicesIncident except that it returns a pointer to the internally held object rather than a reference or copy. Since the from indices can be a sizeable Vec (8 entries is common), it is best not to have a bunch a copies. Thus, you can pass around a pointer instead. However, care should be taken to make sure that this object does not go out of scope, at which time the returned pointer becomes invalid.

◆ GetInputIndex()

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
VTKM_EXEC vtkm::Id vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::GetInputIndex ( ) const
inline

The index into the input domain.

This index refers to the input element (array value, cell, etc.) that this thread is being invoked for. This is the typical index used during fetches.

◆ GetInputIndex3D()

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
VTKM_EXEC vtkm::Id3 vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::GetInputIndex3D ( ) const
inline

The 3D index into the input domain.

Overloads the implementation in the base class to return the 3D index for the input.

◆ GetOutputIndex()

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
VTKM_EXEC vtkm::Id vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::GetOutputIndex ( ) const
inline

The index into the output domain.

This index refers to the output element (array value, cell, etc.) that this thread is creating. This is the typical index used during Fetch::Store.

◆ GetThreadIndex()

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
VTKM_EXEC vtkm::Id vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::GetThreadIndex ( ) const
inline

The index of the thread or work invocation.

This index refers to which instance of the worklet is being invoked. Every invocation of the worklet has a unique thread index. This is also called the work index depending on the context.

◆ GetVisitIndex()

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
VTKM_EXEC vtkm::IdComponent vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::GetVisitIndex ( ) const
inline

The visit index.

When multiple output indices have the same input index, they are distinguished using the visit index.

Member Data Documentation

◆ CellShape

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
CellShapeTag vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::CellShape
private

◆ IndicesIncident

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
IndicesIncidentType vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::IndicesIncident
private

◆ LogicalIndex

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
LogicalIndexType vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::LogicalIndex
private

◆ ThreadIndex

template<typename VisitTopology , typename IncidentTopology , vtkm::IdComponent Dimension>
vtkm::Id vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityStructured< VisitTopology, IncidentTopology, Dimension >, DefaultScatterAndMaskTag >::ThreadIndex
private

The documentation for this class was generated from the following file: