46 #include "Xpetra_MapFactory.hpp"
48 #include "Xpetra_BlockedMap.hpp"
50 #include "Xpetra_TpetraMap.hpp"
54 #if defined(HAVE_XPETRA_EPETRA)
57 #if !defined(XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES)
66 #ifdef TPETRA_ENABLE_DEPRECATED_CODE
77 return Build(lib, numGlobalElements, indexBase, comm, lg);
79 #endif // TPETRA_ENABLE_DEPRECATED_CODE
82 RCP<Map<int, int, EpetraNode>>
96 #ifdef HAVE_XPETRA_TPETRA
108 #ifdef TPETRA_ENABLE_DEPRECATED_CODE
114 size_t numLocalElements,
119 return Build(lib, numGlobalElements, numLocalElements, indexBase, comm);
121 #endif // TPETRA_ENABLE_DEPRECATED_CODE
124 RCP<Map<int, int, EpetraNode> >
128 size_t numLocalElements,
138 #ifdef HAVE_XPETRA_TPETRA
150 #ifdef TPETRA_ENABLE_DEPRECATED_CODE
161 return Build(lib, numGlobalElements, elementList, indexBase, comm);
163 #endif // TPETRA_ENABLE_DEPRECATED_CODE
166 RCP<Map<int, int, EpetraNode> >
179 #ifdef HAVE_XPETRA_TPETRA
182 #endif // HAVE_XPETRA_TPETRA
208 "Xpetra::MapFactory::Build: When provided a BlockedMap numDofPerNode must set to be one. It is set to " << numDofPerNode <<
".");
212 LocalOrdinal N = Teuchos::as<LocalOrdinal>(map->getNodeNumElements());
219 newElements[i*numDofPerNode + j] = oldElements[i]*numDofPerNode + j;
223 #ifdef HAVE_XPETRA_TPETRA
228 #endif // HAVE_XPETRA_TPETRA
232 return rcp(
new EpetraMapT<int, Node>(map->getGlobalNumElements()*numDofPerNode, newElements, map->getIndexBase(), map->getComm()) );
251 #ifdef HAVE_XPETRA_TPETRA
253 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \
254 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT))))
258 "Xpetra::MapFactory::createLocalMap: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
260 #endif // HAVE_XPETRA_TPETRA
276 #ifdef TPETRA_ENABLE_DEPRECATED_CODE
287 #endif // TPETRA_ENABLE_DEPRECATED_CODE
303 #ifdef HAVE_XPETRA_TPETRA
305 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \
306 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT))))
310 "Xpetra::MapFactory::createLocalMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
312 #endif // HAVE_XPETRA_TPETRA
328 #ifdef TPETRA_ENABLE_DEPRECATED_CODE
339 #endif // TPETRA_ENABLE_DEPRECATED_CODE
355 #ifdef HAVE_XPETRA_TPETRA
357 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \
358 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT))))
362 "Xpetra::MapFactory::createUniformContigMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
364 #endif // HAVE_XPETRA_TPETRA
390 #ifdef HAVE_XPETRA_TPETRA
392 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \
393 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT))))
397 "Xpetra::MapFactory::createUniformContigMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
399 #endif // HAVE_XPETRA_TPETRA
417 size_t localNumElements,
426 #ifdef HAVE_XPETRA_TPETRA
428 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \
429 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT))))
433 "Xpetra::MapFactory::createContigMap: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
446 #ifdef TPETRA_ENABLE_DEPRECATED_CODE
452 size_t localNumElements,
458 #endif // TPETRA_ENABLE_DEPRECATED_CODE
465 size_t localNumElements,
474 #ifdef HAVE_XPETRA_TPETRA
476 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_INT))) || \
477 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_INT))))
481 "Xpetra::MapFactory::createContigMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=int");
498 #endif // #if !defined(XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES)
508 #if !defined(XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES)
519 #ifdef TPETRA_ENABLE_DEPRECATED_CODE
530 return Build(lib, numGlobalElements, indexBase, comm, lg);
532 #endif // TPETRA_ENABLE_DEPRECATED_CODE
535 RCP<Map<int, long long, EpetraNode>>
549 #ifdef HAVE_XPETRA_TPETRA
561 #ifdef TPETRA_ENABLE_DEPRECATED_CODE
567 size_t numLocalElements,
572 return Build(lib, numGlobalElements, numLocalElements, indexBase, comm);
574 #endif // TPETRA_ENABLE_DEPRECATED_CODE
577 RCP<Map<int, long long, EpetraNode> >
581 size_t numLocalElements,
591 #ifdef HAVE_XPETRA_TPETRA
603 #ifdef TPETRA_ENABLE_DEPRECATED_CODE
614 return Build(lib, numGlobalElements, elementList, indexBase, comm);
616 #endif // TPETRA_ENABLE_DEPRECATED_CODE
619 RCP<Map<int, long long, EpetraNode> >
633 #ifdef HAVE_XPETRA_TPETRA
660 "Xpetra::MapFactory::Build: When provided a BlockedMap numDofPerNode must set to be one. It is set to " << numDofPerNode <<
".");
669 newElements[i*numDofPerNode + j] = oldElements[i]*numDofPerNode + j;
671 #ifdef HAVE_XPETRA_TPETRA
695 #ifdef HAVE_XPETRA_TPETRA
697 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \
698 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))))
702 "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");
713 #ifdef TPETRA_ENABLE_DEPRECATED_CODE
724 #endif // TPETRA_ENABLE_DEPRECATED_CODE
739 #ifdef HAVE_XPETRA_TPETRA
741 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \
742 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))))
746 "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");
762 #ifdef TPETRA_ENABLE_DEPRECATED_CODE
773 #endif // TPETRA_ENABLE_DEPRECATED_CODE
788 #ifdef HAVE_XPETRA_TPETRA
790 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \
791 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))))
795 "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");
823 #ifdef HAVE_XPETRA_TPETRA
825 #if ((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \
826 (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))))
830 "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");
844 size_t localNumElements,
853 #ifdef HAVE_XPETRA_TPETRA
855 #if((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) \
856 || (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))))
858 Tpetra::createContigMapWithNode<int, GlobalOrdinal, Node>(numElements, localNumElements, comm)));
862 "Xpetra::MapFactory::createContigMap: Cannot create Xpetra::TpetraMap, since Tpetra is not instantiated on "
863 "EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=long long");
874 #ifdef TPETRA_ENABLE_DEPRECATED_CODE
880 size_t localNumElements,
886 #endif // TPETRA_ENABLE_DEPRECATED_CODE
893 size_t localNumElements,
902 #ifdef HAVE_XPETRA_TPETRA
904 #if((defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_OPENMP) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))) \
905 || (!defined(EPETRA_HAVE_OMP) && (defined(HAVE_TPETRA_INST_SERIAL) && defined(HAVE_TPETRA_INST_INT_LONG_LONG))))
907 Tpetra::createContigMapWithNode<int, GlobalOrdinal, Node>(numElements, localNumElements, comm)));
911 "Xpetra::MapFactory::createContigMapWithNode: Cannot create Xpetra::TpetraMap, since Tpetra is not "
912 "instantiated on EpetraNode (Serial or OpenMP, depending on configuration) and/or GO=long long");
914 #endif // HAVE_XPETRA_TPETRA
931 #endif // #if !defined(XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES)
934 #endif // #if defined(HAVE_XPETRA_EPETRA)