VTK-m  2.0
Public Types | Public Member Functions | Private Types | Private Attributes | List of all members
vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode > Class Template Reference

#include <ThreadIndicesExtrude.h>

Public Types

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

Public Member Functions

VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC ThreadIndicesTopologyMap (vtkm::Id &threadIndex, vtkm::Id inputIndex, vtkm::IdComponent visitIndex, vtkm::Id 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 inputIndex, vtkm::IdComponent visitIndex, vtkm::Id outputIndex, 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 input indices of the "from" elements. More...
 
const VTKM_EXEC IndicesIncidentTypeGetIndicesIncidentPointer () const
 The input indices of the "from" elements in pointer form. More...
 
VTKM_EXEC CellShapeTag GetCellShape () const
 The shape of the input cell. More...
 

Private Types

using ConnectivityType = vtkm::exec::ReverseConnectivityExtrude
 

Private Attributes

vtkm::Id ThreadIndex
 
vtkm::Id InputIndex
 
vtkm::IdComponent VisitIndex
 
vtkm::Id OutputIndex
 
LogicalIndexType LogicalIndex
 
IndicesIncidentType IndicesIncident
 

Member Typedef Documentation

◆ CellShapeTag

template<typename ScatterAndMaskMode >
using vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::CellShapeTag = typename ConnectivityType::CellShapeTag

◆ Connectivity

template<typename ScatterAndMaskMode >
using vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::Connectivity = ConnectivityType

◆ ConnectivityType

◆ IndicesIncidentType

template<typename ScatterAndMaskMode >
using vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::IndicesIncidentType = typename ConnectivityType::IndicesType

◆ LogicalIndexType

Constructor & Destructor Documentation

◆ ThreadIndicesTopologyMap() [1/3]

template<typename ScatterAndMaskMode >
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::ThreadIndicesTopologyMap ( vtkm::Id threadIndex,
vtkm::Id  inputIndex,
vtkm::IdComponent  visitIndex,
vtkm::Id  outputIndex,
const ConnectivityType connectivity 
)
inline

◆ ThreadIndicesTopologyMap() [2/3]

template<typename ScatterAndMaskMode >
VTKM_EXEC vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::ThreadIndicesTopologyMap ( const vtkm::Id3 threadIndex3D,
vtkm::Id  threadIndex1D,
const ConnectivityType connectivity 
)
inline

◆ ThreadIndicesTopologyMap() [3/3]

template<typename ScatterAndMaskMode >
VTKM_EXEC vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::ThreadIndicesTopologyMap ( const vtkm::Id3 threadIndex3D,
vtkm::Id  threadIndex1D,
vtkm::Id  inputIndex,
vtkm::IdComponent  visitIndex,
vtkm::Id  outputIndex,
const ConnectivityType connectivity 
)
inline

Member Function Documentation

◆ GetCellShape()

template<typename ScatterAndMaskMode >
VTKM_EXEC CellShapeTag vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::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 ScatterAndMaskMode >
VTKM_EXEC LogicalIndexType vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::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 ScatterAndMaskMode >
const VTKM_EXEC IndicesIncidentType& vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::GetIndicesIncident ( ) const
inline

The input indices of the "from" elements.

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

◆ GetIndicesIncidentPointer()

template<typename ScatterAndMaskMode >
const VTKM_EXEC IndicesIncidentType* vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::GetIndicesIncidentPointer ( ) const
inline

The input indices of the "from" elements in pointer form.

Returns the same object as GetIndicesFrom 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 ScatterAndMaskMode >
VTKM_EXEC vtkm::Id vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::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 ScatterAndMaskMode >
VTKM_EXEC vtkm::Id3 vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::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 ScatterAndMaskMode >
VTKM_EXEC vtkm::Id vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::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 ScatterAndMaskMode >
VTKM_EXEC vtkm::Id vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::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 ScatterAndMaskMode >
VTKM_EXEC vtkm::IdComponent vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::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

◆ IndicesIncident

template<typename ScatterAndMaskMode >
IndicesIncidentType vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::IndicesIncident
private

◆ InputIndex

template<typename ScatterAndMaskMode >
vtkm::Id vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::InputIndex
private

◆ LogicalIndex

template<typename ScatterAndMaskMode >
LogicalIndexType vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::LogicalIndex
private

◆ OutputIndex

template<typename ScatterAndMaskMode >
vtkm::Id vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::OutputIndex
private

◆ ThreadIndex

template<typename ScatterAndMaskMode >
vtkm::Id vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::ThreadIndex
private

◆ VisitIndex

template<typename ScatterAndMaskMode >
vtkm::IdComponent vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ReverseConnectivityExtrude, ScatterAndMaskMode >::VisitIndex
private

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