46 #ifndef XPETRA_MAPFACTORY_DECL_HPP
47 #define XPETRA_MAPFACTORY_DECL_HPP
61 template <
class LocalOrdinal,
63 class Node =
typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
72 static Teuchos::RCP<Map<LocalOrdinal, GlobalOrdinal, Node>>
75 GlobalOrdinal indexBase,
76 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm,
81 static Teuchos::RCP<Map<LocalOrdinal, GlobalOrdinal, Node>>
84 size_t numLocalElements,
85 GlobalOrdinal indexBase,
86 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
90 static Teuchos::RCP<Map<LocalOrdinal, GlobalOrdinal, Node>>
93 const Teuchos::ArrayView<const GlobalOrdinal>& elementList,
94 GlobalOrdinal indexBase,
95 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
107 static Teuchos::RCP<Map<LocalOrdinal, GlobalOrdinal, Node>>
109 const LocalOrdinal numDofPerNode,
110 const GlobalOrdinal gidOffset = Teuchos::ScalarTraits<GlobalOrdinal>::zero());
112 #ifdef HAVE_XPETRA_TPETRA
113 static Teuchos::RCP<Map<LocalOrdinal, GlobalOrdinal, Node>>
116 const Kokkos::View<const GlobalOrdinal*, typename Node::device_type>& indexList,
117 GlobalOrdinal indexBase,
118 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
122 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
125 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
129 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
132 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
136 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
139 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
142 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
145 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
148 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
151 size_t localNumElements,
152 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
156 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
159 size_t localNumElements,
160 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
164 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
166 const Teuchos::RCP<
const Teuchos::Comm<int>>& newComm);
174 #if defined(HAVE_XPETRA_EPETRA)
176 #if !defined(XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES)
189 static RCP<Map<LocalOrdinal, GlobalOrdinal, Node>>
193 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm,
196 static RCP<Map<LocalOrdinal, GlobalOrdinal, Node>>
199 size_t numLocalElements,
201 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
203 static RCP<Map<LocalOrdinal, GlobalOrdinal, Node>>
206 const Teuchos::ArrayView<const GlobalOrdinal>& elementList,
208 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
220 static Teuchos::RCP<Map<LocalOrdinal, GlobalOrdinal, Node>>
223 const GlobalOrdinal gidOffset = Teuchos::ScalarTraits<GlobalOrdinal>::zero());
225 #ifdef HAVE_XPETRA_TPETRA
226 static Teuchos::RCP<Map<LocalOrdinal, GlobalOrdinal, Node>>
229 const Kokkos::View<const GlobalOrdinal*, typename Node::device_type>& indexList,
231 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
234 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
237 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
241 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
244 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
248 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
250 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
252 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
255 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
257 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
260 size_t localNumElements,
261 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
263 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
266 size_t localNumElements,
267 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
269 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
271 const Teuchos::RCP<
const Teuchos::Comm<int>>& newComm);
275 #endif // #if !defined(XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES)
278 #if !defined(XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES)
291 static RCP<Map<LocalOrdinal, GlobalOrdinal, Node>>
295 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm,
298 static RCP<Map<LocalOrdinal, GlobalOrdinal, Node>>
301 size_t numLocalElements,
303 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
305 static RCP<Map<LocalOrdinal, GlobalOrdinal, Node>>
308 const Teuchos::ArrayView<const GlobalOrdinal>& elementList,
310 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
314 static Teuchos::RCP<Map<LocalOrdinal, GlobalOrdinal, Node>>
318 #ifdef HAVE_XPETRA_TPETRA
319 static Teuchos::RCP<Map<LocalOrdinal, GlobalOrdinal, Node>>
322 const Kokkos::View<const GlobalOrdinal*, typename Node::device_type>& indexList,
324 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
327 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
330 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
332 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
335 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
337 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
339 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
341 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
344 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
346 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
349 size_t localNumElements,
350 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
352 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
355 size_t localNumElements,
356 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm);
358 static Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node>>
360 const Teuchos::RCP<
const Teuchos::Comm<int>>& newComm);
364 #endif // #if !defined(XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES)
366 #endif // #if defined(HAVE_XPETRA_EPETRA)
370 #define XPETRA_MAPFACTORY_SHORT
372 #endif // XPETRA_MAPFACTORY_DECL_HPP
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > copyMapWithNewComm(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node >> &oldmap, const Teuchos::RCP< const Teuchos::Comm< int >> &newComm)
Create a copy of the map, only using the new Comm object if the Comm would be valid.
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > createLocalMap(UnderlyingLib lib, size_t numElements, const Teuchos::RCP< const Teuchos::Comm< int >> &comm)
Create a locally replicated Map with the default node.
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > createContigMap(UnderlyingLib lib, global_size_t numElements, size_t localNumElements, const Teuchos::RCP< const Teuchos::Comm< int >> &comm)
Create a (potentially) non-uniform, contiguous Map with the default node.
MapFactory()
Private constructor. This is a static class.
static Teuchos::RCP< Map< LocalOrdinal, GlobalOrdinal, Node > > Build(UnderlyingLib lib, global_size_t numGlobalElements, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int >> &comm, LocalGlobal lg=Xpetra::GloballyDistributed)
Map constructor with Xpetra-defined contiguous uniform distribution.
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > createContigMapWithNode(UnderlyingLib lib, global_size_t numElements, size_t localNumElements, const Teuchos::RCP< const Teuchos::Comm< int >> &comm)
Create a (potentially) non-uniform, contiguous Map with a user-specified node.
size_t global_size_t
Global size_t object.
Tpetra::KokkosCompat::KokkosSerialWrapperNode EpetraNode
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > createUniformContigMapWithNode(UnderlyingLib lib, global_size_t numElements, const Teuchos::RCP< const Teuchos::Comm< int >> &comm)
Create a uniform, contiguous Map with a user-specified node.
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > createLocalMapWithNode(UnderlyingLib lib, size_t numElements, const Teuchos::RCP< const Teuchos::Comm< int >> &comm)
Create a locally replicated Map with a specified node.
Create an Xpetra::Map instance.
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > createUniformContigMap(UnderlyingLib lib, global_size_t numElements, const Teuchos::RCP< const Teuchos::Comm< int >> &comm)
Create a uniform, contiguous Map with the default node.