47 #ifndef XPETRA_STRIDEDMAPFACTORY_DECL_HPP
48 #define XPETRA_STRIDEDMAPFACTORY_DECL_HPP
50 #include <Tpetra_KokkosCompat_DefaultNode.hpp>
66 template <
class LocalOrdinal,
68 class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
69 class StridedMapFactory {
70 #undef XPETRA_STRIDEDMAPFACTORY_SHORT
79 static RCP<Xpetra::StridedMap<LocalOrdinal, GlobalOrdinal, Node>>
82 GlobalOrdinal indexBase,
83 std::vector<size_t>& stridingInfo,
84 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm,
85 LocalOrdinal stridedBlockId = -1,
86 GlobalOrdinal offset = 0,
90 static RCP<StridedMap>
93 size_t numLocalElements,
94 GlobalOrdinal indexBase,
95 std::vector<size_t>& stridingInfo,
96 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm,
97 LocalOrdinal stridedBlockId = -1,
98 GlobalOrdinal offset = 0);
101 static RCP<StridedMap>
102 Build(
const RCP<const Map>& map, std::vector<size_t>& stridingInfo, LocalOrdinal stridedBlockId = -1, GlobalOrdinal offset = 0);
105 static RCP<StridedMap>
106 Build(
const RCP<const StridedMap>& map, LocalOrdinal stridedBlockId);
109 static RCP<StridedMap>
110 Build(
const StridedMap& map);
117 static RCP<StridedMap>
120 const Teuchos::ArrayView<const GlobalOrdinal>& elementList,
121 GlobalOrdinal indexBase,
122 std::vector<size_t>& stridingInfo,
123 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm,
124 LocalOrdinal stridedBlockId = -1,
131 #define XPETRA_STRIDEDMAPFACTORY_SHORT
132 #endif // XPETRA_STRIDEDMAPFACTORY_DECL_HPP
StridedMapFactory()=delete
Private constructor. This is a static class.
size_t global_size_t
Global size_t object.
static RCP< Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node > > Build(UnderlyingLib lib, global_size_t numGlobalElements, GlobalOrdinal indexBase, std::vector< size_t > &stridingInfo, const Teuchos::RCP< const Teuchos::Comm< int >> &comm, LocalOrdinal stridedBlockId=-1, GlobalOrdinal offset=0, LocalGlobal lg=Xpetra::GloballyDistributed)
Map constructor with Xpetra-defined contiguous uniform distribution.