AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
|
Abstract base class for a Set of entities in a simulation. More...
#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/v0.3.3/src/axom/slam/Set.hpp>
Public Types | |
using | PositionType = PosType |
using | ElementType = ElemType |
Public Member Functions | |
virtual | ~Set ()=default |
virtual ElementType | at (PositionType) const =0 |
Random access to the entities of the set. More... | |
virtual PositionType | size () const =0 |
Get the number of entities in the set. More... | |
virtual bool | isSubset () const =0 |
Determines if the Set is a Subset of another set. More... | |
virtual bool | isValid (bool verboseOutput=false) const =0 |
Checks whether the set is valid. More... | |
virtual bool | empty () const =0 |
Checks if there are any elements in the set – equivalent to: set.size() == 0. More... | |
Abstract base class for a Set of entities in a simulation.
This class defines the minimal required API for a slam Set, a container class for a set of entities in a simulation. Each entity has an index.
Examples of sets include:
Examples of subsets include:
Note: Elements of a set do not necessarily need explicit indices. E.g. if we have a contiguous range of elements (or slices of contiguous ranges), they can be implicitly encoded.
Thus, we can have
The interface is for constant access to the elements.
using axom::slam::Set< PosType, ElemType >::PositionType = PosType |
using axom::slam::Set< PosType, ElemType >::ElementType = ElemType |
|
virtualdefault |
|
pure virtual |
Random access to the entities of the set.
The | index of the desired element |
Implemented in axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy >, axom::slam::OrderedSet< ElementType, ElementType, BeginsSizePolicy, BeginsOffsetPolicy, BeginsStridePolicy >, axom::slam::OrderedSet< SetPosition, SetElement, policies::RuntimeSize< SetPosition >, policies::ZeroOffset< SetPosition >, policies::StrideOne< SetPosition >, policies::STLVectorIndirection< SetPosition, SetElement > >, axom::slam::OrderedSet< P, E >, axom::slam::OrderedSet< P, E, policies::RuntimeSize< P >, policies::RuntimeOffset< P >, StridingPolicy, IndirectionPolicy, SubsettingPolicy >, axom::slam::OrderedSet< slam::DefaultPositionType, slam::DefaultElementType >, axom::slam::OrderedSet< ElementType, ElementType, BeginsSizePolicy, BeginsOffsetPolicy, BeginsStridePolicy, IndirectionPolicy >, axom::slam::OrderedSet< SetPosition, SetElement, policies::RuntimeSize< SetPosition >, policies::ZeroOffset< SetPosition >, policies::StrideOne< SetPosition >, IndicesIndirectionPolicy >, axom::slam::OrderedSet< RelationType::SetPosition, RelationType::SetElement >, axom::slam::OrderedSet< PosType, ElemType, policies::RuntimeSize< PosType >, policies::RuntimeOffset< PosType >, policies::StrideOne< PosType >, policies::NoIndirection< PosType, ElemType >, policies::NoSubset >, axom::slam::OrderedSet< P, E, policies::RuntimeSize< P >, policies::RuntimeOffset< P >, policies::StrideOne< P >, policies::NoIndirection< P, E >, policies::NoSubset >, axom::slam::OrderedSet< CoordType, CoordType, MAX_LEVEL_SIZE >, axom::slam::OrderedSet< IndexType, IndexType, SizePolicy >, and axom::slam::DynamicSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy >.
Referenced by axom::slam::DynamicVariableRelation< PosType, ElemType >::isValid(), and axom::slam::operator==().
|
pure virtual |
Get the number of entities in the set.
Implemented in axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy >, axom::slam::OrderedSet< ElementType, ElementType, BeginsSizePolicy, BeginsOffsetPolicy, BeginsStridePolicy >, axom::slam::OrderedSet< SetPosition, SetElement, policies::RuntimeSize< SetPosition >, policies::ZeroOffset< SetPosition >, policies::StrideOne< SetPosition >, policies::STLVectorIndirection< SetPosition, SetElement > >, axom::slam::OrderedSet< P, E >, axom::slam::OrderedSet< P, E, policies::RuntimeSize< P >, policies::RuntimeOffset< P >, StridingPolicy, IndirectionPolicy, SubsettingPolicy >, axom::slam::OrderedSet< slam::DefaultPositionType, slam::DefaultElementType >, axom::slam::OrderedSet< ElementType, ElementType, BeginsSizePolicy, BeginsOffsetPolicy, BeginsStridePolicy, IndirectionPolicy >, axom::slam::OrderedSet< SetPosition, SetElement, policies::RuntimeSize< SetPosition >, policies::ZeroOffset< SetPosition >, policies::StrideOne< SetPosition >, IndicesIndirectionPolicy >, axom::slam::OrderedSet< RelationType::SetPosition, RelationType::SetElement >, axom::slam::OrderedSet< PosType, ElemType, policies::RuntimeSize< PosType >, policies::RuntimeOffset< PosType >, policies::StrideOne< PosType >, policies::NoIndirection< PosType, ElemType >, policies::NoSubset >, axom::slam::OrderedSet< P, E, policies::RuntimeSize< P >, policies::RuntimeOffset< P >, policies::StrideOne< P >, policies::NoIndirection< P, E >, policies::NoSubset >, axom::slam::OrderedSet< CoordType, CoordType, MAX_LEVEL_SIZE >, axom::slam::OrderedSet< IndexType, IndexType, SizePolicy >, axom::slam::DynamicSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy >, axom::slam::ProductSet< PosType, ElemType >, axom::slam::NullSet< PosType, ElemType >, axom::slam::NullSet< SetPosition, SetElement >, and axom::slam::NullSet< RelationType::SetPosition, RelationType::SetElement >.
Referenced by axom::slam::DynamicVariableRelation< PosType, ElemType >::data(), axom::slam::DynamicVariableRelation< PosType, ElemType >::DynamicVariableRelation(), axom::slam::BivariateSet< RelationType::SetPosition, RelationType::SetElement >::firstSetSize(), axom::slam::DynamicVariableRelation< PosType, ElemType >::isValid(), axom::slam::operator==(), and axom::slam::BivariateSet< RelationType::SetPosition, RelationType::SetElement >::secondSetSize().
|
pure virtual |
Determines if the Set is a Subset of another set.
Implemented in axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy >, axom::slam::OrderedSet< ElementType, ElementType, BeginsSizePolicy, BeginsOffsetPolicy, BeginsStridePolicy >, axom::slam::OrderedSet< SetPosition, SetElement, policies::RuntimeSize< SetPosition >, policies::ZeroOffset< SetPosition >, policies::StrideOne< SetPosition >, policies::STLVectorIndirection< SetPosition, SetElement > >, axom::slam::OrderedSet< P, E >, axom::slam::OrderedSet< P, E, policies::RuntimeSize< P >, policies::RuntimeOffset< P >, StridingPolicy, IndirectionPolicy, SubsettingPolicy >, axom::slam::OrderedSet< slam::DefaultPositionType, slam::DefaultElementType >, axom::slam::OrderedSet< ElementType, ElementType, BeginsSizePolicy, BeginsOffsetPolicy, BeginsStridePolicy, IndirectionPolicy >, axom::slam::OrderedSet< SetPosition, SetElement, policies::RuntimeSize< SetPosition >, policies::ZeroOffset< SetPosition >, policies::StrideOne< SetPosition >, IndicesIndirectionPolicy >, axom::slam::OrderedSet< RelationType::SetPosition, RelationType::SetElement >, axom::slam::OrderedSet< PosType, ElemType, policies::RuntimeSize< PosType >, policies::RuntimeOffset< PosType >, policies::StrideOne< PosType >, policies::NoIndirection< PosType, ElemType >, policies::NoSubset >, axom::slam::OrderedSet< P, E, policies::RuntimeSize< P >, policies::RuntimeOffset< P >, policies::StrideOne< P >, policies::NoIndirection< P, E >, policies::NoSubset >, axom::slam::OrderedSet< CoordType, CoordType, MAX_LEVEL_SIZE >, axom::slam::OrderedSet< IndexType, IndexType, SizePolicy >, axom::slam::DynamicSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy >, axom::slam::NullSet< PosType, ElemType >, axom::slam::NullSet< SetPosition, SetElement >, and axom::slam::NullSet< RelationType::SetPosition, RelationType::SetElement >.
|
pure virtual |
Checks whether the set is valid.
Implemented in axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy >, axom::slam::OrderedSet< ElementType, ElementType, BeginsSizePolicy, BeginsOffsetPolicy, BeginsStridePolicy >, axom::slam::OrderedSet< SetPosition, SetElement, policies::RuntimeSize< SetPosition >, policies::ZeroOffset< SetPosition >, policies::StrideOne< SetPosition >, policies::STLVectorIndirection< SetPosition, SetElement > >, axom::slam::OrderedSet< P, E >, axom::slam::OrderedSet< P, E, policies::RuntimeSize< P >, policies::RuntimeOffset< P >, StridingPolicy, IndirectionPolicy, SubsettingPolicy >, axom::slam::OrderedSet< slam::DefaultPositionType, slam::DefaultElementType >, axom::slam::OrderedSet< ElementType, ElementType, BeginsSizePolicy, BeginsOffsetPolicy, BeginsStridePolicy, IndirectionPolicy >, axom::slam::OrderedSet< SetPosition, SetElement, policies::RuntimeSize< SetPosition >, policies::ZeroOffset< SetPosition >, policies::StrideOne< SetPosition >, IndicesIndirectionPolicy >, axom::slam::OrderedSet< RelationType::SetPosition, RelationType::SetElement >, axom::slam::OrderedSet< PosType, ElemType, policies::RuntimeSize< PosType >, policies::RuntimeOffset< PosType >, policies::StrideOne< PosType >, policies::NoIndirection< PosType, ElemType >, policies::NoSubset >, axom::slam::OrderedSet< P, E, policies::RuntimeSize< P >, policies::RuntimeOffset< P >, policies::StrideOne< P >, policies::NoIndirection< P, E >, policies::NoSubset >, axom::slam::OrderedSet< CoordType, CoordType, MAX_LEVEL_SIZE >, axom::slam::OrderedSet< IndexType, IndexType, SizePolicy >, axom::slam::DynamicSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy >, axom::slam::RelationSet< RelationType >, and axom::slam::ProductSet< PosType, ElemType >.
|
pure virtual |
Checks if there are any elements in the set – equivalent to: set.size() == 0.
Implemented in axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy >, axom::slam::OrderedSet< ElementType, ElementType, BeginsSizePolicy, BeginsOffsetPolicy, BeginsStridePolicy >, axom::slam::OrderedSet< SetPosition, SetElement, policies::RuntimeSize< SetPosition >, policies::ZeroOffset< SetPosition >, policies::StrideOne< SetPosition >, policies::STLVectorIndirection< SetPosition, SetElement > >, axom::slam::OrderedSet< P, E >, axom::slam::OrderedSet< P, E, policies::RuntimeSize< P >, policies::RuntimeOffset< P >, StridingPolicy, IndirectionPolicy, SubsettingPolicy >, axom::slam::OrderedSet< slam::DefaultPositionType, slam::DefaultElementType >, axom::slam::OrderedSet< ElementType, ElementType, BeginsSizePolicy, BeginsOffsetPolicy, BeginsStridePolicy, IndirectionPolicy >, axom::slam::OrderedSet< SetPosition, SetElement, policies::RuntimeSize< SetPosition >, policies::ZeroOffset< SetPosition >, policies::StrideOne< SetPosition >, IndicesIndirectionPolicy >, axom::slam::OrderedSet< RelationType::SetPosition, RelationType::SetElement >, axom::slam::OrderedSet< PosType, ElemType, policies::RuntimeSize< PosType >, policies::RuntimeOffset< PosType >, policies::StrideOne< PosType >, policies::NoIndirection< PosType, ElemType >, policies::NoSubset >, axom::slam::OrderedSet< P, E, policies::RuntimeSize< P >, policies::RuntimeOffset< P >, policies::StrideOne< P >, policies::NoIndirection< P, E >, policies::NoSubset >, axom::slam::OrderedSet< CoordType, CoordType, MAX_LEVEL_SIZE >, axom::slam::OrderedSet< IndexType, IndexType, SizePolicy >, axom::slam::DynamicSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy >, axom::slam::NullSet< PosType, ElemType >, axom::slam::NullSet< SetPosition, SetElement >, and axom::slam::NullSet< RelationType::SetPosition, RelationType::SetElement >.