46 #ifndef XPETRA_MAPFACTORY_HPP 47 #define XPETRA_MAPFACTORY_HPP 52 #ifdef HAVE_XPETRA_TPETRA 55 #ifdef HAVE_XPETRA_EPETRA 69 template <class LocalOrdinal = Map<>::local_ordinal_type,
80 static Teuchos::RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
83 GlobalOrdinal indexBase,
84 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
86 const Teuchos::RCP<Node> & = Teuchos::null)
90 #ifdef HAVE_XPETRA_TPETRA 100 static Teuchos::RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
103 size_t numLocalElements,
104 GlobalOrdinal indexBase,
105 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
106 const Teuchos::RCP<Node> & = Teuchos::null)
110 #ifdef HAVE_XPETRA_TPETRA 120 static Teuchos::RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
123 const Teuchos::ArrayView<const GlobalOrdinal> &elementList,
124 GlobalOrdinal indexBase,
125 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
126 const Teuchos::RCP<Node> & = Teuchos::null)
130 #ifdef HAVE_XPETRA_TPETRA 141 static Teuchos::RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
143 LocalOrdinal numDofPerNode)
148 if(!bmap.is_null()) {
150 "Xpetra::MapFactory::Build: When provided a BlockedMap numDofPerNode must set to be one. It is set to " << numDofPerNode <<
".");
154 #ifdef HAVE_XPETRA_TPETRA 155 LocalOrdinal N = map->getNodeNumElements();
156 Teuchos::ArrayView<const GlobalOrdinal> oldElements = map->getNodeElementList();
157 Teuchos::Array<GlobalOrdinal> newElements(map->getNodeNumElements()*numDofPerNode);
158 for (LocalOrdinal i = 0; i < N; i++)
159 for (LocalOrdinal j = 0; j < numDofPerNode; j++)
160 newElements[i*numDofPerNode + j] = oldElements[i]*numDofPerNode + j;
170 static Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal, Node> >
173 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm)
177 #ifdef HAVE_XPETRA_TPETRA 187 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
190 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm,
191 const Teuchos::RCP< Node > & = Teuchos::null)
195 #ifdef HAVE_XPETRA_TPETRA 205 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
208 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm,
209 const Teuchos::RCP< Node > & = Teuchos::null)
213 #ifdef HAVE_XPETRA_TPETRA 223 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
226 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm)
230 #ifdef HAVE_XPETRA_TPETRA 240 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
243 size_t localNumElements,
244 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm)
248 #ifdef HAVE_XPETRA_TPETRA 258 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
261 size_t localNumElements,
262 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm,
263 const Teuchos::RCP< Node > & = Teuchos::null)
267 #ifdef HAVE_XPETRA_TPETRA 278 #if (defined(HAVE_XPETRA_EPETRA) && !defined(XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES)) 292 static RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
296 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
298 const Teuchos::RCP<Node>& node = Teuchos::rcp (
new Node)) {
301 #ifdef HAVE_XPETRA_TPETRA 312 static RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
315 size_t numLocalElements,
317 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
318 const Teuchos::RCP<Node>& node = Teuchos::rcp(
new Node))
321 #ifdef HAVE_XPETRA_TPETRA 332 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 = Teuchos::rcp (
new Node)) {
334 #ifdef HAVE_XPETRA_TPETRA 351 if(!bmap.is_null()) {
353 "Xpetra::MapFactory::Build: When provided a BlockedMap numDofPerNode must set to be one. It is set to " << numDofPerNode <<
".");
357 LocalOrdinal N = Teuchos::as<LocalOrdinal>(map->getNodeNumElements());
358 Teuchos::ArrayView<const GlobalOrdinal> oldElements = map->getNodeElementList();
359 Teuchos::Array<GlobalOrdinal> newElements(map->getNodeNumElements()*numDofPerNode);
362 newElements[i*numDofPerNode + j] = oldElements[i]*numDofPerNode + j;
364 #ifdef HAVE_XPETRA_TPETRA 370 return rcp(
new EpetraMapT<int, Node>(map->getGlobalNumElements()*numDofPerNode, newElements, map->getIndexBase(), map->getComm(), map->getNode()) );
375 static Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal, Node> >
379 #ifdef HAVE_XPETRA_TPETRA 381 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \ 382 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT)))) 386 "Xpetra::MapFactory::createLocalMap: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
391 Teuchos::RCP< EpetraMapT<int, Node> > map;
395 return map.getConst();
402 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
406 #ifdef HAVE_XPETRA_TPETRA 408 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \ 409 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT)))) 413 "Xpetra::MapFactory::createLocalMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
418 Teuchos::RCP< EpetraMapT<int, Node> > map;
422 return map.getConst();
429 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
431 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm,
432 const Teuchos::RCP<Node>& = Teuchos::null)
436 #ifdef HAVE_XPETRA_TPETRA 438 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \ 439 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT)))) 443 "Xpetra::MapFactory::createUniformContigMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
448 Teuchos::RCP< EpetraMapT<int,Node> > map;
452 return map.getConst();
458 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
462 #ifdef HAVE_XPETRA_TPETRA 464 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \ 465 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT)))) 469 "Xpetra::MapFactory::createUniformContigMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
475 Teuchos::RCP< EpetraMapT<int,Node> > map;
479 return map.getConst();
485 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
489 #ifdef HAVE_XPETRA_TPETRA 491 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \ 492 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT)))) 496 "Xpetra::MapFactory::createContigMap: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
506 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
508 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm,
const Teuchos::RCP<Node> & = Teuchos::null) {
511 #ifdef HAVE_XPETRA_TPETRA 513 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \ 514 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT)))) 518 "Xpetra::MapFactory::createContigMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
524 Teuchos::RCP< EpetraMapT<int, Node> > map;
528 return map.getConst();
538 #if (defined(HAVE_XPETRA_EPETRA) && !defined(XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES)) 552 static RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
556 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
558 const Teuchos::RCP<Node>& node = Teuchos::rcp (
new Node)) {
561 #ifdef HAVE_XPETRA_TPETRA 572 static RCP<Map<LocalOrdinal,GlobalOrdinal, Node> >
575 size_t numLocalElements,
577 const Teuchos::RCP<
const Teuchos::Comm<int> > &comm,
578 const Teuchos::RCP<Node>& node = Teuchos::rcp (
new Node))
582 #ifdef HAVE_XPETRA_TPETRA 593 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 = Teuchos::rcp (
new Node)) {
596 #ifdef HAVE_XPETRA_TPETRA 613 if(!bmap.is_null()) {
615 "Xpetra::MapFactory::Build: When provided a BlockedMap numDofPerNode must set to be one. It is set to " << numDofPerNode <<
".");
620 Teuchos::ArrayView<const GlobalOrdinal> oldElements = map->getNodeElementList();
621 Teuchos::Array<GlobalOrdinal> newElements(map->getNodeNumElements()*numDofPerNode);
624 newElements[i*numDofPerNode + j] = oldElements[i]*numDofPerNode + j;
626 #ifdef HAVE_XPETRA_TPETRA 632 return rcp(
new EpetraMapT<long long, Node>(map->getGlobalNumElements()*numDofPerNode, newElements, map->getIndexBase(), map->getComm(), map->getNode()) );
637 static Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal, Node> >
641 #ifdef HAVE_XPETRA_TPETRA 643 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \ 644 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG)))) 648 "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");
658 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
662 #ifdef HAVE_XPETRA_TPETRA 664 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \ 665 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG)))) 669 "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");
674 Teuchos::RCP< EpetraMapT<long long, Node> > map;
678 return map.getConst();
684 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
686 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm,
687 const Teuchos::RCP<Node>& = Teuchos::null)
691 #ifdef HAVE_XPETRA_TPETRA 693 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \ 694 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG)))) 698 "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");
703 Teuchos::RCP< EpetraMapT<long long, Node> > map;
707 return map.getConst();
713 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
717 #ifdef HAVE_XPETRA_TPETRA 719 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \ 720 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG)))) 724 "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");
734 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
738 #ifdef HAVE_XPETRA_TPETRA 740 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \ 741 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG)))) 745 "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");
755 static Teuchos::RCP< const Map<LocalOrdinal,GlobalOrdinal, Node> >
757 const Teuchos::RCP<
const Teuchos::Comm< int > > &comm,
const Teuchos::RCP<Node> & = Teuchos::null) {
760 #ifdef HAVE_XPETRA_TPETRA 762 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \ 763 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG)))) 767 "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");
772 Teuchos::RCP< EpetraMapT<long long, Node> > map;
776 return map.getConst();
787 #define XPETRA_MAPFACTORY_SHORT static Teuchos::RCP< Map< LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &map, LocalOrdinal numDofPerNode)
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=Teuchos::rcp(new Node))
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 > &=Teuchos::null)
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.
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 > &=Teuchos::null)
Create a uniform, contiguous Map with a user-specified node.
GlobalOrdinal global_ordinal_type
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< Map< LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &map, LocalOrdinal numDofPerNode)
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)
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 > &=Teuchos::null)
Create a locally replicated Map with a specified node.
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 > &=Teuchos::null)
Map constructor with user-defined non-contiguous (arbitrary) distribution.
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 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=Teuchos::rcp(new Node))
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 > > createLocalMapWithNode(UnderlyingLib lib, size_t numElements, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &=Teuchos::null)
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, size_t numLocalElements, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &=Teuchos::null)
Map constructor with a user-defined contiguous distribution.
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< const Map< LocalOrdinal, GlobalOrdinal, Node > > createUniformContigMapWithNode(UnderlyingLib lib, global_size_t numElements, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &=Teuchos::null)
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=Teuchos::rcp(new 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 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=Teuchos::rcp(new Node))
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 > &=Teuchos::null)
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 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=Teuchos::rcp(new Node))
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 > &=Teuchos::null)
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 > &=Teuchos::null)
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 > &=Teuchos::null)
Create a (potentially) non-uniform, contiguous Map with a user-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)
#define XPETRA_MONITOR(funcName)
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=Teuchos::rcp(new 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 > &=Teuchos::null)
Map constructor with Xpetra-defined contiguous uniform distribution.
MapFactory()
Private constructor. This is a static class.