VTK-m  2.0
Public Types | Public Member Functions | Private Types | Private Attributes | List of all members
vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityPermutedVisitCellsWithPoints< PermutationPortal, vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint, Dimension > >, CustomScatterOrMaskTag > Class Template Reference

Specialization for permuted structured connectivity types. More...

#include <ThreadIndicesTopologyMap.h>

Public Types

using IndicesIncidentType = typename ConnectivityType::IndicesType
 
using CellShapeTag = typename ConnectivityType::CellShapeTag
 
using LogicalIndexType = typename ConnectivityType::SchedulingRangeType
 
using Connectivity = vtkm::exec::ConnectivityPermutedVisitCellsWithPoints< PermutationPortal, vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint, Dimension > >
 

Public Member Functions

VTKM_EXEC ThreadIndicesTopologyMap (vtkm::Id threadIndex, vtkm::Id inputIndex, vtkm::IdComponent visitIndex, vtkm::Id outputIndex, const PermutedConnectivityType &permutation)
 
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 PermutedConnectivityType = vtkm::exec::ConnectivityPermutedVisitCellsWithPoints< PermutationPortal, vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint, Dimension > >
 
using ConnectivityType = vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint, Dimension >
 

Private Attributes

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

Detailed Description

template<typename PermutationPortal, vtkm::IdComponent Dimension>
class vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityPermutedVisitCellsWithPoints< PermutationPortal, vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint, Dimension > >, CustomScatterOrMaskTag >

Specialization for permuted structured connectivity types.

Member Typedef Documentation

◆ CellShapeTag

◆ Connectivity

◆ ConnectivityType

◆ IndicesIncidentType

◆ LogicalIndexType

◆ PermutedConnectivityType

Constructor & Destructor Documentation

◆ ThreadIndicesTopologyMap()

template<typename PermutationPortal , vtkm::IdComponent Dimension>
VTKM_EXEC vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityPermutedVisitCellsWithPoints< PermutationPortal, vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint, Dimension > >, CustomScatterOrMaskTag >::ThreadIndicesTopologyMap ( vtkm::Id  threadIndex,
vtkm::Id  inputIndex,
vtkm::IdComponent  visitIndex,
vtkm::Id  outputIndex,
const PermutedConnectivityType permutation 
)
inline

Member Function Documentation

◆ GetCellShape()

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()

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 PermutationPortal , vtkm::IdComponent Dimension>
const VTKM_EXEC IndicesIncidentType& vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityPermutedVisitCellsWithPoints< PermutationPortal, vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint, Dimension > >, CustomScatterOrMaskTag >::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 PermutationPortal , vtkm::IdComponent Dimension>
const VTKM_EXEC IndicesIncidentType* vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityPermutedVisitCellsWithPoints< PermutationPortal, vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint, Dimension > >, CustomScatterOrMaskTag >::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 PermutationPortal , vtkm::IdComponent Dimension>
VTKM_EXEC vtkm::Id vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityPermutedVisitCellsWithPoints< PermutationPortal, vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint, Dimension > >, CustomScatterOrMaskTag >::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 PermutationPortal , vtkm::IdComponent Dimension>
VTKM_EXEC vtkm::Id3 vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityPermutedVisitCellsWithPoints< PermutationPortal, vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint, Dimension > >, CustomScatterOrMaskTag >::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 PermutationPortal , vtkm::IdComponent Dimension>
VTKM_EXEC vtkm::Id vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityPermutedVisitCellsWithPoints< PermutationPortal, vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint, Dimension > >, CustomScatterOrMaskTag >::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 PermutationPortal , vtkm::IdComponent Dimension>
VTKM_EXEC vtkm::Id vtkm::exec::arg::ThreadIndicesTopologyMap< vtkm::exec::ConnectivityPermutedVisitCellsWithPoints< PermutationPortal, vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint, Dimension > >, CustomScatterOrMaskTag >::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()

The visit index.

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

Member Data Documentation

◆ CellShape

◆ IndicesIncident

◆ InputIndex

◆ LogicalIndex

◆ OutputIndex

◆ ThreadIndex

◆ VisitIndex


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