46 #ifndef XPETRA_MAPFACTORY_HPP 47 #define XPETRA_MAPFACTORY_HPP 52 #ifdef HAVE_XPETRA_TPETRA 55 #ifdef HAVE_XPETRA_EPETRA 67 template <class LocalOrdinal = Map<>::local_ordinal_type,
85 return KokkosClassic::Details::getNode<Node>();
89 static Teuchos::RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
92 GlobalOrdinal indexBase,
93 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
99 #ifdef HAVE_XPETRA_TPETRA 109 static Teuchos::RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
112 size_t numLocalElements,
113 GlobalOrdinal indexBase,
114 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
119 #ifdef HAVE_XPETRA_TPETRA 129 static Teuchos::RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
132 const Teuchos::ArrayView<const GlobalOrdinal> &elementList,
133 GlobalOrdinal indexBase,
134 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
139 #ifdef HAVE_XPETRA_TPETRA 150 static Teuchos::RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
152 LocalOrdinal numDofPerNode)
156 #ifdef HAVE_XPETRA_TPETRA 157 LocalOrdinal N = map->getNodeNumElements();
158 Teuchos::ArrayView<const GlobalOrdinal> oldElements = map->getNodeElementList();
159 Teuchos::Array<GlobalOrdinal> newElements(map->getNodeNumElements()*numDofPerNode);
160 for (LocalOrdinal i = 0; i < N; i++)
161 for (LocalOrdinal j = 0; j < numDofPerNode; j++)
162 newElements[i*numDofPerNode + j] = oldElements[i]*numDofPerNode + j;
172 static Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal, Node> >
175 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm)
179 #ifdef HAVE_XPETRA_TPETRA 189 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
192 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm,
193 const Teuchos::RCP< Node > &node)
197 #ifdef HAVE_XPETRA_TPETRA 207 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
210 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm,
211 const Teuchos::RCP< Node > &node)
215 #ifdef HAVE_XPETRA_TPETRA 225 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
228 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm)
232 #ifdef HAVE_XPETRA_TPETRA 242 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
245 size_t localNumElements,
246 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm)
250 #ifdef HAVE_XPETRA_TPETRA 260 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
263 size_t localNumElements,
264 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm,
265 const Teuchos::RCP< Node > &node)
269 #ifdef HAVE_XPETRA_TPETRA 280 #if (defined(HAVE_XPETRA_EPETRA) && !defined(XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES)) 302 return KokkosClassic::Details::getNode<Node>();
305 static RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
309 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
314 #ifdef HAVE_XPETRA_TPETRA 325 static RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
328 size_t numLocalElements,
330 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
334 #ifdef HAVE_XPETRA_TPETRA 345 static RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
Build(
UnderlyingLib lib,
global_size_t numGlobalElements,
const Teuchos::ArrayView<const GlobalOrdinal> &elementList,
int indexBase,
const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
const Teuchos::RCP<Node>& node =
defaultArgNode ()) {
347 #ifdef HAVE_XPETRA_TPETRA 364 Teuchos::ArrayView<const GlobalOrdinal> oldElements = map->getNodeElementList();
365 Teuchos::Array<GlobalOrdinal> newElements(map->getNodeNumElements()*numDofPerNode);
368 newElements[i*numDofPerNode + j] = oldElements[i]*numDofPerNode + j;
370 #ifdef HAVE_XPETRA_TPETRA 376 return rcp(
new EpetraMapT<int, Node>(map->getGlobalNumElements()*numDofPerNode, newElements, map->getIndexBase(), map->getComm(), map->getNode()) );
381 static Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal, Node> >
385 #ifdef HAVE_XPETRA_TPETRA 387 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \ 388 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT)))) 392 "Xpetra::MapFactory::createLocalMap: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
397 Teuchos::RCP< EpetraMapT<int, Node> > map;
401 return map.getConst();
408 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
412 #ifdef HAVE_XPETRA_TPETRA 414 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \ 415 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT)))) 419 "Xpetra::MapFactory::createLocalMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
424 Teuchos::RCP< EpetraMapT<int, Node> > map;
428 return map.getConst();
435 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
437 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm,
438 const Teuchos::RCP<Node>& node)
442 #ifdef HAVE_XPETRA_TPETRA 444 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \ 445 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT)))) 449 "Xpetra::MapFactory::createUniformContigMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
454 Teuchos::RCP< EpetraMapT<int,Node> > map;
458 return map.getConst();
464 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
468 #ifdef HAVE_XPETRA_TPETRA 470 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \ 471 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT)))) 475 "Xpetra::MapFactory::createUniformContigMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
481 Teuchos::RCP< EpetraMapT<int,Node> > map;
485 return map.getConst();
491 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
495 #ifdef HAVE_XPETRA_TPETRA 497 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \ 498 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT)))) 502 "Xpetra::MapFactory::createContigMap: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
512 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
514 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm,
const Teuchos::RCP<Node> &node) {
517 #ifdef HAVE_XPETRA_TPETRA 519 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \ 520 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT)))) 524 "Xpetra::MapFactory::createContigMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
530 Teuchos::RCP< EpetraMapT<int, Node> > map;
534 return map.getConst();
544 #if (defined(HAVE_XPETRA_EPETRA) && !defined(XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES)) 566 return KokkosClassic::Details::getNode<Node>();
569 static RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
573 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
578 #ifdef HAVE_XPETRA_TPETRA 589 static RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
592 size_t numLocalElements,
594 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
599 #ifdef HAVE_XPETRA_TPETRA 610 static RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
Build(
UnderlyingLib lib,
global_size_t numGlobalElements,
const Teuchos::ArrayView<const GlobalOrdinal> &elementList,
int indexBase,
const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
const Teuchos::RCP<Node>& node =
defaultArgNode ()) {
613 #ifdef HAVE_XPETRA_TPETRA 630 Teuchos::ArrayView<const GlobalOrdinal> oldElements = map->getNodeElementList();
631 Teuchos::Array<GlobalOrdinal> newElements(map->getNodeNumElements()*numDofPerNode);
634 newElements[i*numDofPerNode + j] = oldElements[i]*numDofPerNode + j;
636 #ifdef HAVE_XPETRA_TPETRA 642 return rcp(
new EpetraMapT<long long, Node>(map->getGlobalNumElements()*numDofPerNode, newElements, map->getIndexBase(), map->getComm(), map->getNode()) );
647 static Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal, Node> >
651 #ifdef HAVE_XPETRA_TPETRA 653 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \ 654 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG)))) 658 "Xpetra::MapFactory::createLocalMap: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=long long");
669 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
673 #ifdef HAVE_XPETRA_TPETRA 675 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \ 676 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG)))) 680 "Xpetra::MapFactory::createLocalMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=long long");
685 Teuchos::RCP< EpetraMapT<long long, Node> > map;
689 return map.getConst();
695 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
697 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm,
698 const Teuchos::RCP<Node>& node)
702 #ifdef HAVE_XPETRA_TPETRA 704 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \ 705 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG)))) 709 "Xpetra::MapFactory::createUniformContigMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=long long");
714 Teuchos::RCP< EpetraMapT<long long, Node> > map;
718 return map.getConst();
724 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
728 #ifdef HAVE_XPETRA_TPETRA 730 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \ 731 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG)))) 735 "Xpetra::MapFactory::createUniformContigMap: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=long long");
746 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
750 #ifdef HAVE_XPETRA_TPETRA 752 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \ 753 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG)))) 757 "Xpetra::MapFactory::createContigMap: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=long long");
767 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
769 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm,
const Teuchos::RCP<Node> &node) {
772 #ifdef HAVE_XPETRA_TPETRA 774 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \ 775 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG)))) 779 "Xpetra::MapFactory::createContigMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=long long");
784 Teuchos::RCP< EpetraMapT<long long, Node> > map;
788 return map.getConst();
799 #define XPETRA_MAPFACTORY_SHORT static RCP< Map< LocalOrdinal, GlobalOrdinal, Node > > Build(UnderlyingLib lib, global_size_t numGlobalElements, size_t numLocalElements, int indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &node=defaultArgNode())
static Teuchos::RCP< Map< LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &map, LocalOrdinal numDofPerNode)
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, const Teuchos::RCP< Node > &node)
Create a (potentially) non-uniform, contiguous Map with a user-specified node.
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, const Teuchos::RCP< Node > &node=defaultArgNode())
Map constructor with Xpetra-defined contiguous uniform distribution.
static RCP< Map< LocalOrdinal, GlobalOrdinal, Node > > Build(UnderlyingLib lib, global_size_t numGlobalElements, int indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, LocalGlobal lg=GloballyDistributed, const Teuchos::RCP< Node > &node=defaultArgNode())
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.
GlobalOrdinal global_ordinal_type
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > createUniformContigMapWithNode(UnderlyingLib lib, global_size_t numElements, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &node)
Create a uniform, contiguous Map with a user-specified 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)
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > createUniformContigMapWithNode(UnderlyingLib lib, global_size_t numElements, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &node)
static Teuchos::RCP< Map< LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &map, LocalOrdinal numDofPerNode)
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, const Teuchos::RCP< Node > &node)
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > createLocalMap(UnderlyingLib lib, size_t numElements, const Teuchos::RCP< const Teuchos::Comm< int > > &comm)
static Teuchos::RCP< Map< LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &map, LocalOrdinal numDofPerNode)
MapFactory()
Private constructor. This is a static class.
Exception throws to report errors in the internal logical of the program.
#define XPETRA_FACTORY_ERROR_IF_EPETRA(lib)
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< Node > defaultArgNode()
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.
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > createLocalMapWithNode(UnderlyingLib lib, size_t numElements, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &node)
MapFactory()
Private constructor. This is a static class.
static Teuchos::RCP< Map< LocalOrdinal, GlobalOrdinal, Node > > Build(UnderlyingLib lib, global_size_t numGlobalElements, size_t numLocalElements, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &node=defaultArgNode())
Map constructor with a user-defined contiguous distribution.
static Teuchos::RCP< Node > defaultArgNode()
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > createLocalMap(UnderlyingLib lib, size_t numElements, const Teuchos::RCP< const Teuchos::Comm< int > > &comm)
static RCP< Map< LocalOrdinal, GlobalOrdinal, Node > > Build(UnderlyingLib lib, global_size_t numGlobalElements, const Teuchos::ArrayView< const GlobalOrdinal > &elementList, int indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &node=defaultArgNode())
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, const Teuchos::RCP< Node > &node)
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > createUniformContigMap(UnderlyingLib lib, global_size_t numElements, const Teuchos::RCP< const Teuchos::Comm< int > > &comm)
#define XPETRA_FACTORY_END
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)
static Teuchos::RCP< Node > defaultArgNode()
size_t global_size_t
Global size_t object.
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > createLocalMapWithNode(UnderlyingLib lib, size_t numElements, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &node)
Create a locally replicated Map with a specified node.
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > createLocalMapWithNode(UnderlyingLib lib, size_t numElements, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &node)
static RCP< Map< LocalOrdinal, GlobalOrdinal, Node > > Build(UnderlyingLib lib, global_size_t numGlobalElements, size_t numLocalElements, int indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &node=defaultArgNode())
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)
#define XPETRA_MONITOR(funcName)
static Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > createUniformContigMapWithNode(UnderlyingLib lib, global_size_t numElements, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &node)
static RCP< Map< LocalOrdinal, GlobalOrdinal, Node > > Build(UnderlyingLib lib, global_size_t numGlobalElements, const Teuchos::ArrayView< const GlobalOrdinal > &elementList, int indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &node=defaultArgNode())
static Teuchos::RCP< Map< LocalOrdinal, GlobalOrdinal, Node > > Build(UnderlyingLib lib, global_size_t numGlobalElements, const Teuchos::ArrayView< const GlobalOrdinal > &elementList, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &node=defaultArgNode())
Map constructor with user-defined non-contiguous (arbitrary) distribution.
static RCP< Map< LocalOrdinal, GlobalOrdinal, Node > > Build(UnderlyingLib lib, global_size_t numGlobalElements, int indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, LocalGlobal lg=GloballyDistributed, const Teuchos::RCP< Node > &node=defaultArgNode())
MapFactory()
Private constructor. This is a static class.