AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet > Class Template Reference

#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/v0.5.0/src/axom/slam/StaticRelation.hpp>

Inheritance diagram for axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >:

Classes

struct  RelationBuilder
 

Public Types

using SetPosition = PosType
 
using SetElement = ElemType
 
using FromSetType = TheFromSet
 
using ToSetType = TheToSet
 
using CardinalityPolicy = RelationCardinalityPolicy
 
using BeginsSizePolicy = typename CardinalityPolicy::RelationalOperatorSizeType
 
using IndicesIndirectionPolicy = RelationIndicesIndirectionPolicy
 
using RelationSubset = OrderedSet< SetPosition, SetElement, BeginsSizePolicy, policies::RuntimeOffset< SetPosition >, policies::StrideOne< SetPosition >, IndicesIndirectionPolicy >
 
using IndicesSet = OrderedSet< SetPosition, SetElement, policies::RuntimeSize< SetPosition >, policies::ZeroOffset< SetPosition >, policies::StrideOne< SetPosition >, IndicesIndirectionPolicy >
 
using IndirectionBufferType = typename IndicesIndirectionPolicy::IndirectionBufferType
 
using RelationIterator = typename RelationSubset::iterator
 
using RelationIteratorPair = typename RelationSubset::iterator_pair
 
using RelationConstIterator = typename RelationSubset::const_iterator
 
using RelationConstIteratorPair = typename RelationSubset::const_iterator_pair
 

Public Member Functions

 StaticRelation ()
 
 StaticRelation (FromSetType *fromSet, ToSetType *toSet)
 
 StaticRelation (const RelationBuilder &builder)
 
const RelationSubset operator[] (SetPosition fromSetInd) const
 
RelationSubset operator[] (SetPosition fromSetInd)
 
bool isValid (bool verboseOutput=false) const
 Checks whether the relation is valid. More...
 
RelationIterator begin (SetPosition fromSetInd)
 
RelationConstIterator begin (SetPosition fromSetInd) const
 
RelationIterator end (SetPosition fromSetInd)
 
RelationConstIterator end (SetPosition fromSetInd) const
 
RelationIteratorPair range (SetPosition fromSetInd)
 
RelationConstIteratorPair range (SetPosition fromSetInd) const
 
bool hasFromSet () const
 
FromSetTypefromSet ()
 
const FromSetTypefromSet () const
 
bool hasToSet () const
 
ToSetTypetoSet ()
 
const ToSetTypetoSet () const
 
SetPosition fromSetSize ()
 
SetPosition toSetSize ()
 
void bindIndices (SetPosition size, IndirectionBufferType *data)
 
const IndirectionBufferTyperelationData () const
 
IndirectionBufferTyperelationData ()
 

Member Typedef Documentation

◆ SetPosition

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
using axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::SetPosition = PosType

◆ SetElement

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
using axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::SetElement = ElemType

◆ FromSetType

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
using axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::FromSetType = TheFromSet

◆ ToSetType

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
using axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::ToSetType = TheToSet

◆ CardinalityPolicy

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
using axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::CardinalityPolicy = RelationCardinalityPolicy

◆ BeginsSizePolicy

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
using axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::BeginsSizePolicy = typename CardinalityPolicy::RelationalOperatorSizeType

◆ IndicesIndirectionPolicy

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
using axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::IndicesIndirectionPolicy = RelationIndicesIndirectionPolicy

◆ RelationSubset

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
using axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::RelationSubset = OrderedSet<SetPosition, SetElement, BeginsSizePolicy, policies::RuntimeOffset<SetPosition>, policies::StrideOne<SetPosition>, IndicesIndirectionPolicy>

◆ IndicesSet

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
using axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::IndicesSet = OrderedSet<SetPosition, SetElement, policies::RuntimeSize<SetPosition>, policies::ZeroOffset<SetPosition>, policies::StrideOne<SetPosition>, IndicesIndirectionPolicy>

◆ IndirectionBufferType

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
using axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::IndirectionBufferType = typename IndicesIndirectionPolicy::IndirectionBufferType

◆ RelationIterator

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
using axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::RelationIterator = typename RelationSubset::iterator

◆ RelationIteratorPair

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
using axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::RelationIteratorPair = typename RelationSubset::iterator_pair

◆ RelationConstIterator

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
using axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::RelationConstIterator = typename RelationSubset::const_iterator

◆ RelationConstIteratorPair

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
using axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::RelationConstIteratorPair = typename RelationSubset::const_iterator_pair

Constructor & Destructor Documentation

◆ StaticRelation() [1/3]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::StaticRelation ( )
inline

◆ StaticRelation() [2/3]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::StaticRelation ( FromSetType fromSet,
ToSetType toSet 
)
inline

◆ StaticRelation() [3/3]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::StaticRelation ( const RelationBuilder builder)
inline

Member Function Documentation

◆ operator[]() [1/2]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
const RelationSubset axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::operator[] ( SetPosition  fromSetInd) const
inline

◆ operator[]() [2/2]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
RelationSubset axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::operator[] ( SetPosition  fromSetInd)
inline

◆ isValid()

template<typename PosType , typename ElemType , typename RelationCardinalityPolicy , typename RelationIndicesIndirectionPolicy , typename FromSetType , typename ToSetType >
bool axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, FromSetType, ToSetType >::isValid ( bool  verboseOutput = false) const

Checks whether the relation is valid.

A relation is valid when:

  • Its fromSet and toSet are not null
  • The CardinalityPolicy is valid. This implies that for each element, pos, of the fromSet, it is valid to call rel.size(pos), rel.offset() It is also valid to call rel.totalSize()
Returns
True if the relation is valid, false otherwise

Referenced by axom::slam::StaticRelation< VertexIndex, VertexIndex, ConstantCardinality, STLIndirection, MeshElementSet, MeshVertexSet >::operator[]().

◆ begin() [1/2]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
RelationIterator axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::begin ( SetPosition  fromSetInd)
inline

◆ begin() [2/2]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
RelationConstIterator axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::begin ( SetPosition  fromSetInd) const
inline

◆ end() [1/2]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
RelationIterator axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::end ( SetPosition  fromSetInd)
inline

◆ end() [2/2]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
RelationConstIterator axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::end ( SetPosition  fromSetInd) const
inline

◆ range() [1/2]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
RelationIteratorPair axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::range ( SetPosition  fromSetInd)
inline

◆ range() [2/2]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
RelationConstIteratorPair axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::range ( SetPosition  fromSetInd) const
inline

◆ hasFromSet()

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
bool axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::hasFromSet ( ) const
inline

◆ fromSet() [1/2]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
FromSetType* axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::fromSet ( )
inline

◆ fromSet() [2/2]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
const FromSetType* axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::fromSet ( ) const
inline

◆ hasToSet()

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
bool axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::hasToSet ( ) const
inline

◆ toSet() [1/2]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
ToSetType* axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::toSet ( )
inline

◆ toSet() [2/2]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
const ToSetType* axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::toSet ( ) const
inline

◆ fromSetSize()

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
SetPosition axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::fromSetSize ( )
inline

◆ toSetSize()

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
SetPosition axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::toSetSize ( )
inline

◆ bindIndices()

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
void axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::bindIndices ( SetPosition  size,
IndirectionBufferType data 
)
inline

◆ relationData() [1/2]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
const IndirectionBufferType* axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::relationData ( ) const
inline

◆ relationData() [2/2]

template<typename PosType, typename ElemType, typename RelationCardinalityPolicy, typename RelationIndicesIndirectionPolicy, typename TheFromSet = Set<PosType, ElemType>, typename TheToSet = Set<PosType, ElemType>>
IndirectionBufferType* axom::slam::StaticRelation< PosType, ElemType, RelationCardinalityPolicy, RelationIndicesIndirectionPolicy, TheFromSet, TheToSet >::relationData ( )
inline

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