AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy > Class Template Reference

Represents a mapping between two sets, where each element in the first set maps to an arbitrary number of elements in the second set. More...

#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/latest/src/axom/slam/policies/CardinalityPolicies.hpp>

Public Types

using BeginsSizePolicy = RuntimeSize< ElementType >
 
using BeginsOffsetPolicy = ZeroOffset< ElementType >
 
using BeginsStridePolicy = StrideOne< ElementType >
 
using BeginsIndirectionPolicy = IndirectionPolicy
 
using BeginsSet = OrderedSet< ElementType, ElementType, BeginsSizePolicy, BeginsOffsetPolicy, BeginsStridePolicy, IndirectionPolicy >
 
using RelationalOperatorSizeType = BeginsSizePolicy
 
using IndirectionBufferType = typename IndirectionPolicy::IndirectionBufferType
 
using IndirectionPtrType = typename IndirectionPolicy::IndirectionPtrType
 

Public Member Functions

 VariableCardinality ()
 
 VariableCardinality (BeginsSet begins)
 
 VariableCardinality (ElementType fromSetSize, typename BeginsSet::SetBuilder &builder)
 
void bindBeginOffsets (ElementType fromSetSize, IndirectionPtrType data)
 
AXOM_HOST_DEVICE ElementType size (ElementType fromPos) const
 
AXOM_HOST_DEVICE ElementType offset (ElementType fromPos) const
 
AXOM_HOST_DEVICE ElementType firstIndex (ElementType relationOffset) const
 
IndirectionPtrType offsetData ()
 
const IndirectionPtrType offsetData () const
 
ElementType totalSize () const
 
template<typename FromSetType >
bool isValid (const FromSetType *fromSet, bool verboseOutput=false) const
 

Public Attributes

BeginsSet m_begins
 

Detailed Description

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
class axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >

Represents a mapping between two sets, where each element in the first set maps to an arbitrary number of elements in the second set.

Template Parameters
ElementTypethe index data type
IndirectionPolicythe policy to use for storing offsets and indices

Member Typedef Documentation

◆ BeginsSizePolicy

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
using axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::BeginsSizePolicy = RuntimeSize<ElementType>

◆ BeginsOffsetPolicy

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
using axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::BeginsOffsetPolicy = ZeroOffset<ElementType>

◆ BeginsStridePolicy

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
using axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::BeginsStridePolicy = StrideOne<ElementType>

◆ BeginsIndirectionPolicy

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
using axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::BeginsIndirectionPolicy = IndirectionPolicy

◆ BeginsSet

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
using axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::BeginsSet = OrderedSet<ElementType, ElementType, BeginsSizePolicy, BeginsOffsetPolicy, BeginsStridePolicy, IndirectionPolicy>

◆ RelationalOperatorSizeType

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
using axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::RelationalOperatorSizeType = BeginsSizePolicy

◆ IndirectionBufferType

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
using axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::IndirectionBufferType = typename IndirectionPolicy::IndirectionBufferType

◆ IndirectionPtrType

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
using axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::IndirectionPtrType = typename IndirectionPolicy::IndirectionPtrType

Constructor & Destructor Documentation

◆ VariableCardinality() [1/3]

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::VariableCardinality ( )
inline

◆ VariableCardinality() [2/3]

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::VariableCardinality ( BeginsSet  begins)
inline

◆ VariableCardinality() [3/3]

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::VariableCardinality ( ElementType  fromSetSize,
typename BeginsSet::SetBuilder builder 
)
inline

Member Function Documentation

◆ bindBeginOffsets()

◆ size()

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
AXOM_HOST_DEVICE ElementType axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::size ( ElementType  fromPos) const
inline

◆ offset()

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
AXOM_HOST_DEVICE ElementType axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::offset ( ElementType  fromPos) const
inline

◆ firstIndex()

◆ offsetData() [1/2]

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
IndirectionPtrType axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::offsetData ( )
inline

◆ offsetData() [2/2]

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
const IndirectionPtrType axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::offsetData ( ) const
inline

◆ totalSize()

◆ isValid()

Member Data Documentation

◆ m_begins

template<typename ElementType = int, typename IndirectionPolicy = STLVectorIndirection<ElementType, ElementType>>
BeginsSet axom::slam::policies::VariableCardinality< ElementType, IndirectionPolicy >::m_begins

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