AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType > Class Template Referenceabstract

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

Inheritance diagram for axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >:

Public Types

using FromSetType = FirstSetType
 
using ToSetType = SecondSetType
 
using SetPosition = typename FirstSetType::PositionType
 
using SetElement = typename FirstSetType::ElementType
 
using RelationVec = std::vector< SetPosition >
 
using RelationVecIterator = typename RelationVec::iterator
 
using RelationVecIteratorPair = std::pair< RelationVecIterator, RelationVecIterator >
 
using RelationVecConstIterator = typename RelationVec::const_iterator
 
using RelationVecConstIteratorPair = std::pair< RelationVecConstIterator, RelationVecConstIterator >
 
using RelationsContainer = std::vector< RelationVec >
 
using RelationsContainerCIt = typename RelationsContainer::const_iterator
 
using RelationsContainerIt = typename RelationsContainer::iterator
 

Public Member Functions

 DynamicVariableRelation (FirstSetType *fromSet=policies::EmptySetTraits< FirstSetType >::emptySet(), SecondSetType *toSet=policies::EmptySetTraits< SecondSetType >::emptySet())
 
 ~DynamicVariableRelation ()
 
RelationVec const & operator[] (SetPosition fromSetIndex) const
 
SetPosition size (SetPosition fromSetIndex) const
 
SetPosition totalSize () const
 
bool hasFromSet () const
 
FromSetTypefromSet ()
 
const FromSetTypefromSet () const
 
bool hasToSet () const
 
ToSetTypetoSet ()
 
const ToSetTypetoSet () const
 
SetPosition fromSetSize () const
 
bool isValid (bool verboseOutput=false) const
 
void insert (SetPosition fromSetIndex, SetPosition toSetIndex)
 
RelationVecoperator[] (SetPosition fromSetIndex)
 
virtual RelationVecConstIterator begin (SetPosition fromSetIndex) const=0
 
virtual RelationVecConstIterator end (SetPosition fromSetIndex) const=0
 
virtual RelationVecConstIteratorPair range (SetPosition fromSetIndex) const=0
 
virtual SetPosition size (SetPosition fromSetIndex) const=0
 
DynamicVariableRelation iterator interface
RelationVecConstIterator begin (SetPosition fromSetIndex) const
 
RelationVecConstIterator end (SetPosition fromSetIndex) const
 
RelationVecConstIteratorPair range (SetPosition fromSetIndex) const
 
DirectDataAccess

Accessor functions to get the underlying relation data for each element

Note
We will have to figure out a good way to limit this access to situations where it makes sense.
RelationVecdata (SetPosition fromSetPos)
 Access the set of positions in the 'toSet' associated with the given position in 'fromSet'. More...
 
const RelationVecdata (SetPosition fromSetPos) const
 Access the set of positions in the 'toSet' associated with the given position in 'fromSet'. More...
 

Static Public Attributes

static NullSet< FirstSetType::PositionType, FirstSetType::ElementType > s_nullSet
 Definition of static instance of nullSet for all relations. More...
 

Member Typedef Documentation

◆ FromSetType

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
using axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::FromSetType = FirstSetType

◆ ToSetType

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
using axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::ToSetType = SecondSetType

◆ SetPosition

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
using axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::SetPosition = typename FirstSetType::PositionType

◆ SetElement

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
using axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::SetElement = typename FirstSetType::ElementType

◆ RelationVec

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
using axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::RelationVec = std::vector<SetPosition>

◆ RelationVecIterator

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
using axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::RelationVecIterator = typename RelationVec::iterator

◆ RelationVecIteratorPair

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
using axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::RelationVecIteratorPair = std::pair<RelationVecIterator, RelationVecIterator>

◆ RelationVecConstIterator

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
using axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::RelationVecConstIterator = typename RelationVec::const_iterator

◆ RelationVecConstIteratorPair

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
using axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::RelationVecConstIteratorPair = std::pair<RelationVecConstIterator, RelationVecConstIterator>

◆ RelationsContainer

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
using axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::RelationsContainer = std::vector<RelationVec>

◆ RelationsContainerCIt

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
using axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::RelationsContainerCIt = typename RelationsContainer::const_iterator

◆ RelationsContainerIt

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
using axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::RelationsContainerIt = typename RelationsContainer::iterator

Constructor & Destructor Documentation

◆ DynamicVariableRelation()

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::DynamicVariableRelation ( FirstSetType *  fromSet = policies::EmptySetTraits<FirstSetType>::emptySet(),
SecondSetType *  toSet = policies::EmptySetTraits<SecondSetType>::emptySet() 
)
inline

◆ ~DynamicVariableRelation()

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::~DynamicVariableRelation ( )
inline

Member Function Documentation

◆ begin() [1/2]

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
RelationVecConstIterator axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::begin ( SetPosition  fromSetIndex) const
inline

◆ end() [1/2]

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
RelationVecConstIterator axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::end ( SetPosition  fromSetIndex) const
inline

◆ range() [1/2]

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
RelationVecConstIteratorPair axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::range ( SetPosition  fromSetIndex) const
inline

◆ operator[]() [1/2]

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
RelationVec const& axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::operator[] ( SetPosition  fromSetIndex) const
inline

◆ size() [1/2]

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
SetPosition axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::size ( SetPosition  fromSetIndex) const
inline

◆ totalSize()

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
SetPosition axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::totalSize ( ) const
inline

◆ hasFromSet()

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
bool axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::hasFromSet ( ) const
inline

◆ fromSet() [1/2]

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
FromSetType* axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::fromSet ( )
inline

◆ fromSet() [2/2]

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
const FromSetType* axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::fromSet ( ) const
inline

◆ hasToSet()

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
bool axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::hasToSet ( ) const
inline

◆ toSet() [1/2]

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
ToSetType* axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::toSet ( )
inline

◆ toSet() [2/2]

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
const ToSetType* axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::toSet ( ) const
inline

◆ fromSetSize()

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
SetPosition axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::fromSetSize ( ) const
inline

◆ isValid()

template<typename FirstSetType , typename SecondSetType >
bool axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::isValid ( bool  verboseOutput = false) const
virtual

◆ insert()

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
void axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::insert ( SetPosition  fromSetIndex,
SetPosition  toSetIndex 
)
inline

◆ operator[]() [2/2]

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
RelationVec& axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::operator[] ( SetPosition  fromSetIndex)
inline

◆ data() [1/2]

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
RelationVec& axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::data ( SetPosition  fromSetPos)
inline

Access the set of positions in the 'toSet' associated with the given position in 'fromSet'.

Parameters
fromSetPosThe position within the 'fromSet' whose relation data (in the 'toSet') we are requesting

◆ data() [2/2]

template<typename FirstSetType = slam::Set<>, typename SecondSetType = slam::Set<>>
const RelationVec& axom::slam::DynamicVariableRelation< FirstSetType, SecondSetType >::data ( SetPosition  fromSetPos) const
inline

Access the set of positions in the 'toSet' associated with the given position in 'fromSet'.

Parameters
fromSetPosThe position within the 'fromSet' whose relation data (in the 'toSet') we are requesting

◆ begin() [2/2]

virtual RelationVecConstIterator axom::slam::Relation< FirstSetType::PositionType , FirstSetType::ElementType >::begin ( SetPosition  fromSetIndex) const
pure virtualinherited

◆ end() [2/2]

virtual RelationVecConstIterator axom::slam::Relation< FirstSetType::PositionType , FirstSetType::ElementType >::end ( SetPosition  fromSetIndex) const
pure virtualinherited

◆ range() [2/2]

virtual RelationVecConstIteratorPair axom::slam::Relation< FirstSetType::PositionType , FirstSetType::ElementType >::range ( SetPosition  fromSetIndex) const
pure virtualinherited

◆ size() [2/2]

virtual SetPosition axom::slam::Relation< FirstSetType::PositionType , FirstSetType::ElementType >::size ( SetPosition  fromSetIndex) const
pure virtualinherited

Member Data Documentation

◆ s_nullSet

NullSet< FirstSetType::PositionType , FirstSetType::ElementType > axom::slam::Relation< FirstSetType::PositionType , FirstSetType::ElementType >::s_nullSet
staticinherited

Definition of static instance of nullSet for all relations.

Note
Should this be a singleton or a global object? Should the scope be public?

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