|
AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
|
Free-function "make" helpers that construct SLAM relations while deducing the from/to set types and the policy stack. More...
#include "axom/slam/StaticRelation.hpp"#include "axom/slam/policies/CardinalityPolicies.hpp"#include "axom/slam/policies/IndirectionPolicies.hpp"#include "axom/core/ArrayView.hpp"#include "axom/slic.hpp"#include <vector>Namespaces | |
| axom | |
| axom::slam | |
| axom::slam::detail | |
Functions | |
| template<typename FromSet > | |
| axom::IndexType | axom::slam::detail::relation_from_size (const FromSet *fromSet) |
| Number of from-set elements (null-safe). Reads only the set's size scalar. More... | |
| template<typename FromSet > | |
| void | axom::slam::detail::check_variable_relation_size (const FromSet *fromSet, axom::IndexType AXOM_DEBUG_PARAM(beginsSize)) |
| Debug-only check that the begins array backing a variable-cardinality relation is correctly sized. More... | |
| template<typename FromSet , typename PosType > | |
| void | axom::slam::detail::check_constant_relation_size (const FromSet *fromSet, PosType AXOM_DEBUG_PARAM(stride), axom::IndexType AXOM_DEBUG_PARAM(indicesSize)) |
| Debug-only check that the indices array backing a constant-cardinality relation (with stride stride) is correctly sized. More... | |
Relation construction helpers | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_variable_relation (FromSet *fromSet, ToSet *toSet, std::vector< PosType > &begins, std::vector< ElemType > &indices) |
| Make a static, variable-cardinality (CSR) relation from fromSet to toSet, backed by std::vector storage for its begins and indices. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_variable_relation (FromSet &fromSet, ToSet &toSet, std::vector< PosType > &begins, std::vector< ElemType > &indices) |
| Reference overload for make_variable_relation (std::vector-backed). More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_variable_relation (FromSet *fromSet, ToSet *toSet, PosType *begins, PosType beginsSize, ElemType *indices, PosType indicesSize) |
| Make a static, variable-cardinality (CSR) relation backed by C array storage. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_variable_relation (FromSet &fromSet, ToSet &toSet, PosType *begins, PosType beginsSize, ElemType *indices, PosType indicesSize) |
| Reference overload for make_variable_relation (C-array-backed). More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_variable_relation (FromSet *fromSet, ToSet *toSet, axom::ArrayView< PosType > begins, axom::ArrayView< ElemType > indices) |
| Make a static, variable-cardinality (CSR) relation backed by ArrayView storage. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_variable_relation (FromSet &fromSet, ToSet &toSet, axom::ArrayView< PosType > begins, axom::ArrayView< ElemType > indices) |
| Reference overload for make_variable_relation (ArrayView-backed). More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_variable_relation (FromSet *fromSet, ToSet *toSet, axom::Array< PosType > &begins, axom::Array< ElemType > &indices) |
| Make a static, variable-cardinality (CSR) relation backed by axom::Array storage. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_variable_relation (FromSet &fromSet, ToSet &toSet, axom::Array< PosType > &begins, axom::Array< ElemType > &indices) |
| Reference overload for make_variable_relation (axom::Array-backed). More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation (FromSet *fromSet, ToSet *toSet, PosType stride, std::vector< ElemType > &indices) |
| Make a static, constant-cardinality relation with a runtime stride, backed by std::vector indices. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation (FromSet &fromSet, ToSet &toSet, PosType stride, std::vector< ElemType > &indices) |
| Reference overload for make_constant_relation (std::vector-backed). More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation (FromSet *fromSet, ToSet *toSet, PosType stride, ElemType *indices, PosType indicesSize) |
| Make a static, constant-cardinality relation with a runtime stride, backed by C array indices. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation (FromSet &fromSet, ToSet &toSet, PosType stride, ElemType *indices, PosType indicesSize) |
| Reference overload for make_constant_relation (C-array-backed). More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation (FromSet *fromSet, ToSet *toSet, PosType stride, axom::ArrayView< ElemType > indices) |
| Make a static, constant-cardinality relation with a runtime stride, backed by ArrayView indices. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation (FromSet &fromSet, ToSet &toSet, PosType stride, axom::ArrayView< ElemType > indices) |
| Reference overload for make_constant_relation (ArrayView-backed). More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation (FromSet *fromSet, ToSet *toSet, PosType stride, axom::Array< ElemType > &indices) |
| Make a static, constant-cardinality relation with a runtime stride, backed by axom::Array indices. More... | |
| template<typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation (FromSet &fromSet, ToSet &toSet, PosType stride, axom::Array< ElemType > &indices) |
| Reference overload for make_constant_relation (axom::Array-backed). More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation_ct (FromSet *fromSet, ToSet *toSet, ElemType *indices, PosType indicesSize) |
| Make a static, constant-cardinality relation with a compile-time stride, backed by C array indices. More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation_ct (FromSet &fromSet, ToSet &toSet, ElemType *indices, PosType indicesSize) |
| Reference overload for make_constant_relation_ct (C-array-backed). More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation_ct (FromSet *fromSet, ToSet *toSet, std::vector< ElemType > &indices) |
| Make a static, constant-cardinality relation with a compile-time stride, backed by std::vector indices. More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation_ct (FromSet &fromSet, ToSet &toSet, std::vector< ElemType > &indices) |
| Reference overload for make_constant_relation_ct (std::vector-backed). More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation_ct (FromSet *fromSet, ToSet *toSet, axom::ArrayView< ElemType > indices) |
| Make a static, constant-cardinality relation with a compile-time stride, backed by ArrayView indices. More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation_ct (FromSet &fromSet, ToSet &toSet, axom::ArrayView< ElemType > indices) |
| Reference overload for make_constant_relation_ct (ArrayView-backed). More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation_ct (FromSet *fromSet, ToSet *toSet, axom::Array< ElemType > &indices) |
| Make a static, constant-cardinality relation with a compile-time stride, backed by axom::Array indices. More... | |
| template<int STRIDE, typename FromSet , typename ToSet , typename PosType = typename FromSet::PositionType, typename ElemType = typename ToSet::PositionType> | |
| auto | axom::slam::make_constant_relation_ct (FromSet &fromSet, ToSet &toSet, axom::Array< ElemType > &indices) |
| Reference overload for make_constant_relation_ct (axom::Array-backed). More... | |
Free-function "make" helpers that construct SLAM relations while deducing the from/to set types and the policy stack.
A static, variable-cardinality (CSR-style) relation is configured by a cardinality policy, an indirection policy, and the from/to set types, then built through a chained RelationBuilder over begins/indices SetBuilders:
make_variable_relation collapses that to one call, deducing FromSet and ToSet from the set pointers: