46 #ifndef XPETRA_EPETRAMAP_HPP 47 #define XPETRA_EPETRAMAP_HPP 55 #include <Epetra_Map.h> 56 #include <Epetra_BlockMap.h> 67 template<
class GlobalOrdinal,
class Node>
68 const Epetra_Map &
toEpetra(
const Map<int,GlobalOrdinal, Node> &);
69 template<
class GlobalOrdinal,
class Node>
70 const Epetra_Map &
toEpetra(
const RCP<
const Map<int, GlobalOrdinal, Node> > &);
73 template<
class GlobalOrdinal,
class Node>
74 const RCP< const Map<int, GlobalOrdinal, Node> >
toXpetra(
const Epetra_BlockMap &);
78 template<
class GlobalOrdinal,
class Node>
80 :
public virtual Map<int, GlobalOrdinal, Node>
95 return KokkosClassic::Details::getNode<Node>();
103 GlobalOrdinal indexBase,
108 "Xpetra::EpetraMap only available for GO=int or GO=long long with EpetraNode (Serial or OpenMP depending on configuration)");
114 "Xpetra::EpetraMap only available for GO=int or GO=long long with EpetraNode (Serial or OpenMP depending on configuration)");
120 GlobalOrdinal indexBase,
124 "Xpetra::EpetraMap only available for GO=int or GO=long long with EpetraNode (Serial or OpenMP depending on configuration)");
206 return KokkosClassic::Details::getNode<Node>();
246 "Xpetra::EpetraMap only available for GO=int or GO=long long with EpetraNode (Serial or OpenMP depending on configuration)");
265 #ifndef XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES 268 :
public virtual Map<int, int, EpetraNode>
285 return KokkosClassic::Details::getNode<Node>();
293 GlobalOrdinal indexBase,
299 std::string errPrefix;
300 errPrefix =
Teuchos::typeName(*
this) +
"::constructor(numGlobal,indexBase,comm,lOrG): ";
303 const int myImageID = comm->getRank();
307 GlobalOrdinal rootIB = indexBase;
308 Teuchos::broadcast<int,global_size_t>(*comm,0,&rootNGE);
309 Teuchos::broadcast<int,GlobalOrdinal>(*comm,0,&rootIB);
310 int localChecks[2], globalChecks[2];
313 if (numGlobalElements != rootNGE) {
314 localChecks[0] = myImageID;
317 else if (indexBase != rootIB) {
318 localChecks[0] = myImageID;
323 Teuchos::reduceAll<int,int>(*comm,Teuchos::REDUCE_MAX,2,localChecks,globalChecks);
324 if (globalChecks[0] != -1) {
325 if (globalChecks[1] == 1) {
327 errPrefix <<
"numGlobal must be the same on all nodes (examine node " << globalChecks[0] <<
").");
329 else if (globalChecks[1] == 2) {
331 errPrefix <<
"indexBase must be the same on all nodes (examine node " << globalChecks[0] <<
").");
336 errPrefix <<
"logic error. Please contact the Tpetra team.");
349 using Teuchos::outArg;
357 std::string errPrefix;
358 errPrefix =
Teuchos::typeName(*
this) +
"::constructor(numGlobal,numLocal,indexBase,platform): ";
361 const int myImageID = comm->getRank();
366 int localChecks[2], globalChecks[2];
374 Teuchos::reduceAll<int,global_size_t>(*comm,Teuchos::REDUCE_SUM,
375 Teuchos::as<global_size_t>(numLocalElements),outArg(global_sum));
382 if (numLocalElements < L1 && numLocalElements != L0) {
384 localChecks[0] = myImageID;
387 else if (numGlobalElements < GST1 && numGlobalElements != GST0 && numGlobalElements != GSTI) {
389 localChecks[0] = myImageID;
392 else if (numGlobalElements != GSTI && numGlobalElements != global_sum) {
394 localChecks[0] = myImageID;
398 GlobalOrdinal rootIB = indexBase;
399 Teuchos::broadcast<int,GlobalOrdinal>(*comm,0,&rootIB);
400 if (indexBase != rootIB) {
401 localChecks[0] = myImageID;
406 Teuchos::reduceAll<int,int>(*comm,Teuchos::REDUCE_MAX,2,localChecks,globalChecks);
407 if (globalChecks[0] != -1) {
408 if (globalChecks[1] == 1) {
410 errPrefix <<
"numLocal is not valid on at least one node (possibly node " 411 << globalChecks[0] <<
").");
413 else if (globalChecks[1] == 2) {
415 errPrefix <<
"numGlobal is not valid on at least one node (possibly node " 416 << globalChecks[0] <<
").");
418 else if (globalChecks[1] == 3) {
420 errPrefix <<
"numGlobal doesn't match sum of numLocal (== " 421 << global_sum <<
") on at least one node (possibly node " 422 << globalChecks[0] <<
").");
424 else if (globalChecks[1] == 4) {
426 errPrefix <<
"indexBase is not the same on all nodes (examine node " 427 << globalChecks[0] <<
").");
432 errPrefix <<
"logic error. Please contact the Tpetra team.");
439 if (numGlobalElements == GSTI) {
440 numGlobalElements = global_sum;}
448 GlobalOrdinal indexBase,
535 return KokkosClassic::Details::getNode<Node>();
548 std::ostringstream oss;
576 int myImageID = comm_->getRank();
577 int numImages = comm_->getSize();
586 width = ::std::max<size_t>(width, (size_t) 12) + 2;
597 for (
int imageCtr = 0; imageCtr < numImages; ++imageCtr) {
598 if (myImageID == imageCtr) {
599 if (myImageID == 0) {
608 out <<
"Number of Local Elements = " << nME << endl
614 out << std::setw(width) <<
"Node ID" 615 << std::setw(width) <<
"Local Index" 616 << std::setw(width) <<
"Global Index" 618 for (
size_t i=0; i < nME; i++) {
619 out << std::setw(width) << myImageID
620 << std::setw(width) << i
621 << std::setw(width) << myEntries[i]
642 const Epetra_BlockMap * NewMap =
map_->RemoveEmptyProcesses();
644 return Teuchos::null;
654 throw std::runtime_error(
"Xpetra::EpetraMapT::replaceCommWithSubset has not yet been implemented.");
655 return Teuchos::null;
664 GlobalOrdinal gid = (GlobalOrdinal)
map_->GID64(localIndex);
665 if (gid ==
map_->IndexBase64()-1)
return (-1);
678 TEUCHOS_TEST_FOR_EXCEPTION(!map->GlobalIndicesIsType<GlobalOrdinal>(), std::runtime_error,
"Xpetra::EpetraMapT: GlobalOrdinal mismatch.");
695 #endif // #ifndef XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES 698 #ifndef XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES 701 :
public virtual Map<int, long long, EpetraNode>
718 return KokkosClassic::Details::getNode<Node>();
726 GlobalOrdinal indexBase,
732 std::string errPrefix;
733 errPrefix =
Teuchos::typeName(*
this) +
"::constructor(numGlobal,indexBase,comm,lOrG): ";
736 const int myImageID = comm->getRank();
740 GlobalOrdinal rootIB = indexBase;
741 Teuchos::broadcast<int,global_size_t>(*comm,0,&rootNGE);
742 Teuchos::broadcast<int,GlobalOrdinal>(*comm,0,&rootIB);
743 int localChecks[2], globalChecks[2];
746 if (numGlobalElements != rootNGE) {
747 localChecks[0] = myImageID;
750 else if (indexBase != rootIB) {
751 localChecks[0] = myImageID;
756 Teuchos::reduceAll<int,int>(*comm,Teuchos::REDUCE_MAX,2,localChecks,globalChecks);
757 if (globalChecks[0] != -1) {
758 if (globalChecks[1] == 1) {
760 errPrefix <<
"numGlobal must be the same on all nodes (examine node " << globalChecks[0] <<
").");
762 else if (globalChecks[1] == 2) {
764 errPrefix <<
"indexBase must be the same on all nodes (examine node " << globalChecks[0] <<
").");
769 errPrefix <<
"logic error. Please contact the Tpetra team.");
782 using Teuchos::outArg;
790 std::string errPrefix;
791 errPrefix =
Teuchos::typeName(*
this) +
"::constructor(numGlobal,numLocal,indexBase,platform): ";
794 const int myImageID = comm->getRank();
799 int localChecks[2], globalChecks[2];
807 Teuchos::reduceAll<int,global_size_t>(*comm,Teuchos::REDUCE_SUM,
808 Teuchos::as<global_size_t>(numLocalElements),outArg(global_sum));
815 if (numLocalElements < L1 && numLocalElements != L0) {
817 localChecks[0] = myImageID;
820 else if (numGlobalElements < GST1 && numGlobalElements != GST0 && numGlobalElements != GSTI) {
822 localChecks[0] = myImageID;
825 else if (numGlobalElements != GSTI && numGlobalElements != global_sum) {
827 localChecks[0] = myImageID;
831 GlobalOrdinal rootIB = indexBase;
832 Teuchos::broadcast<int,GlobalOrdinal>(*comm,0,&rootIB);
833 if (indexBase != rootIB) {
834 localChecks[0] = myImageID;
839 Teuchos::reduceAll<int,int>(*comm,Teuchos::REDUCE_MAX,2,localChecks,globalChecks);
840 if (globalChecks[0] != -1) {
841 if (globalChecks[1] == 1) {
843 errPrefix <<
"numLocal is not valid on at least one node (possibly node " 844 << globalChecks[0] <<
").");
846 else if (globalChecks[1] == 2) {
848 errPrefix <<
"numGlobal is not valid on at least one node (possibly node " 849 << globalChecks[0] <<
").");
851 else if (globalChecks[1] == 3) {
853 errPrefix <<
"numGlobal doesn't match sum of numLocal (== " 854 << global_sum <<
") on at least one node (possibly node " 855 << globalChecks[0] <<
").");
857 else if (globalChecks[1] == 4) {
859 errPrefix <<
"indexBase is not the same on all nodes (examine node " 860 << globalChecks[0] <<
").");
865 errPrefix <<
"logic error. Please contact the Tpetra team.");
872 if (numGlobalElements == GSTI) {
873 numGlobalElements = global_sum;}
881 GlobalOrdinal indexBase,
968 return KokkosClassic::Details::getNode<Node>();
981 std::ostringstream oss;
1009 int myImageID = comm_->getRank();
1010 int numImages = comm_->getSize();
1019 width = ::std::max<size_t>(width, (size_t) 12) + 2;
1030 for (
int imageCtr = 0; imageCtr < numImages; ++imageCtr) {
1031 if (myImageID == imageCtr) {
1032 if (myImageID == 0) {
1041 out <<
"Number of Local Elements = " << nME << endl
1047 out << std::setw(width) <<
"Node ID" 1048 << std::setw(width) <<
"Local Index" 1049 << std::setw(width) <<
"Global Index" 1051 for (
size_t i=0; i < nME; i++) {
1052 out << std::setw(width) << myImageID
1053 << std::setw(width) << i
1054 << std::setw(width) << myEntries[i]
1075 const Epetra_BlockMap * NewMap =
map_->RemoveEmptyProcesses();
1077 return Teuchos::null;
1087 throw std::runtime_error(
"Xpetra::EpetraMapT::replaceCommWithSubset has not yet been implemented.");
1088 return Teuchos::null;
1097 GlobalOrdinal gid = (GlobalOrdinal)
map_->GID64(localIndex);
1098 if (gid ==
map_->IndexBase64()-1)
return (-1);
1111 TEUCHOS_TEST_FOR_EXCEPTION(!map->GlobalIndicesIsType<GlobalOrdinal>(), std::runtime_error,
"Xpetra::EpetraMapT: GlobalOrdinal mismatch.");
1128 #endif // #ifndef XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES 1133 #endif // XPETRA_EPETRAMAP_HPP bool isDistributed() const
Whether this Map is globally distributed or locally replicated.
LookupStatus getRemoteIndexList(const Teuchos::ArrayView< const GlobalOrdinal > &GIDList, const Teuchos::ArrayView< int > &nodeIDList) const
Return the process ranks for the given global indices.
GlobalOrdinal global_ordinal_type
virtual ~EpetraMapT()
Destructor.
Teuchos::ArrayView< const GlobalOrdinal > getNodeElementList() const
Return a view of the global indices owned by this process.
GlobalOrdinal getIndexBase() const
The index base for this Map.
size_t getNodeNumElements() const
The number of elements belonging to the calling process.
size_t getNodeNumElements() const
The number of elements belonging to the calling process.
GlobalOrdinal getIndexBase() const
The index base for this Map.
std::string description() const
Return a simple one-line description of this object.
bool isDistributed() const
Whether this Map is globally distributed or locally replicated.
size_t getNodeNumElements() const
The number of elements belonging to the calling process.
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
Print this object with the given verbosity level to the given Teuchos::FancyOStream.
EpetraMapT(global_size_t numGlobalElements, size_t numLocalElements, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &node=defaultArgNode())
Constructor with a user-defined contiguous distribution.
RCP< const Map< int, GlobalOrdinal, Node > > removeEmptyProcesses() const
Return a new Map with processes with zero elements removed.
EpetraMapT(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())
Constructor with user-defined arbitrary (possibly noncontiguous) distribution.
bool isNodeGlobalElement(GlobalOrdinal globalIndex) const
Whether the given global index is valid for this Map on this process.
GlobalOrdinal global_ordinal_type
LocalOrdinal local_ordinal_type
RCP< const Map< int, GlobalOrdinal, Node > > removeEmptyProcesses() const
Return a new Map with processes with zero elements removed.
const Epetra_BlockMap & getEpetra_BlockMap() const
Get the underlying Epetra map.
GlobalOrdinal getMaxGlobalIndex() const
The maximum global index owned by the calling process.
GlobalOrdinal getMinGlobalIndex() const
The minimum global index owned by the calling process.
GlobalOrdinal getMinGlobalIndex() const
The minimum global index owned by the calling process.
bool isNodeGlobalElement(GlobalOrdinal globalIndex) const
Whether the given global index is valid for this Map on this process.
EpetraMapT(const Teuchos::RCP< const Epetra_BlockMap > &map)
EpetraMapT constructor to wrap a Epetra_Map object.
GlobalOrdinal getMinAllGlobalIndex() const
The minimum global index over all processes in the communicator.
std::string description() const
Return a simple one-line description of this object.
UnderlyingLib lib() const
Get the library used by this object (Epetra or Epetra?)
GlobalOrdinal getIndexBase() const
The index base for this Map.
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
bool isContiguous() const
True if this Map is distributed contiguously, else false.
LocalOrdinal getMaxLocalIndex() const
The maximum local index on the calling process.
EpetraMapT(global_size_t numGlobalElements, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, LocalGlobal lg=GloballyDistributed, const Teuchos::RCP< Node > &node=defaultArgNode())
Constructor with Tpetra-defined contiguous uniform distribution.
EpetraMapT(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())
Constructor with user-defined arbitrary (possibly noncontiguous) distribution.
const Epetra_BlockMap & getEpetra_BlockMap() const
Get the underlying Epetra map.
GlobalOrdinal getMaxAllGlobalIndex() const
The maximum global index over all processes in the communicator.
LocalOrdinal getMaxLocalIndex() const
The maximum local index on the calling process.
Exception throws to report errors in the internal logical of the program.
const Epetra_CrsGraph & toEpetra(const RCP< const CrsGraph< int, GlobalOrdinal, Node > > &graph)
bool isSameAs(const Map< LocalOrdinal, GlobalOrdinal, Node > &map) const
True if and only if map is identical to this Map.
bool isContiguous() const
True if this Map is distributed contiguously, else false.
RCP< const Map< int, GlobalOrdinal, Node > > removeEmptyProcesses() const
Return a new Map with processes with zero elements removed.
const Epetra_Map & getEpetra_Map() const
UnderlyingLib lib() const
Get the library used by this object (Epetra or Epetra?)
Teuchos::RCP< const Teuchos::Comm< int > > getComm() const
Get this Map's Comm object.
GlobalOrdinal getMinAllGlobalIndex() const
The minimum global index over all processes in the communicator.
EpetraMapT(const Teuchos::RCP< const Epetra_BlockMap > &map)
EpetraMapT constructor to wrap a Epetra_Map object.
bool isNodeLocalElement(LocalOrdinal localIndex) const
Whether the given local index is valid for this Map on this process.
bool isNodeGlobalElement(GlobalOrdinal globalIndex) const
Whether the given global index is valid for this Map on this process.
LookupStatus getRemoteIndexList(const Teuchos::ArrayView< const GlobalOrdinal > &GIDList, const Teuchos::ArrayView< int > &nodeIDList) const
Return the process ranks for the given global indices.
LocalOrdinal getMaxLocalIndex() const
The maximum local index on the calling process.
Teuchos::RCP< Node > getNode() const
Get this Map's Node object.
LocalOrdinal getMinLocalIndex() const
The minimum local index.
LookupStatus getRemoteIndexList(const Teuchos::ArrayView< const GlobalOrdinal > &GIDList, const Teuchos::ArrayView< int > &nodeIDList, const Teuchos::ArrayView< LocalOrdinal > &LIDList) const
Return the process ranks and corresponding local indices for the given global indices.
LocalOrdinal getMinLocalIndex() const
The minimum local index.
Teuchos::ArrayView< const GlobalOrdinal > getNodeElementList() const
Return a view of the global indices owned by this process.
bool isDistributed() const
Whether this Map is globally distributed or locally replicated.
bool isContiguous() const
True if this Map is distributed contiguously, else false.
bool isNodeLocalElement(LocalOrdinal localIndex) const
Whether the given local index is valid for this Map on this process.
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
Print this object with the given verbosity level to the given Teuchos::FancyOStream.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
bool isSameAs(const Map< LocalOrdinal, GlobalOrdinal, Node > &map) const
True if and only if map is identical to this Map.
bool isNodeLocalElement(LocalOrdinal localIndex) const
Whether the given local index is valid for this Map on this process.
LocalOrdinal getMinLocalIndex() const
The minimum local index.
Teuchos::RCP< const Teuchos::Comm< int > > getComm() const
Get this Map's Comm object.
LookupStatus getRemoteIndexList(const Teuchos::ArrayView< const GlobalOrdinal > &GIDList, const Teuchos::ArrayView< int > &nodeIDList, const Teuchos::ArrayView< LocalOrdinal > &LIDList) const
Return the process ranks and corresponding local indices for the given global indices.
Teuchos::ArrayView< const GlobalOrdinal > getNodeElementList() const
Return a view of the global indices owned by this process.
const Epetra_Map & getEpetra_Map() const
RCP< const Epetra_BlockMap > map_
#define IF_EPETRA_EXCEPTION_THEN_THROW_GLOBAL_INVALID_ARG(sourceCode)
virtual std::string description() const
RCP< const Map< int, GlobalOrdinal, Node > > replaceCommWithSubset(const Teuchos::RCP< const Teuchos::Comm< int > > &newComm) const
Replace this Map's communicator with a subset communicator.
Teuchos::RCP< const Teuchos::Comm< int > > getComm() const
Get this Map's Comm object.
const Epetra_BlockMap & getEpetra_BlockMap() const
Get the underlying Epetra map.
virtual ~EpetraMapT()
Destructor.
bool isCompatible(const Map< LocalOrdinal, GlobalOrdinal, Node > &map) const
True if and only if map is compatible with this Map.
GlobalOrdinal getGlobalElement(LocalOrdinal localIndex) const
Return the global index for a given local index. Note that this returns -1 if not found on this proce...
Teuchos::RCP< Node > getNode() const
Get this Map's Node object.
LocalOrdinal getLocalElement(GlobalOrdinal globalIndex) const
The local index corresponding to the given global index.
static Teuchos::RCP< Node > defaultArgNode()
global_size_t getGlobalNumElements() const
The number of elements in this Map.
GlobalOrdinal getMaxGlobalIndex() const
The maximum global index owned by the calling process.
GlobalOrdinal getMaxAllGlobalIndex() const
The maximum global index over all processes in the communicator.
RCP< const Epetra_BlockMap > map_
size_t global_size_t
Global size_t object.
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
Print this object with the given verbosity level to the given Teuchos::FancyOStream.
global_size_t getGlobalNumElements() const
The number of elements in this Map.
static const EVerbosityLevel verbLevel_default
static Teuchos::RCP< Node > defaultArgNode()
RCP< const Epetra_BlockMap > map_
EpetraMapT(global_size_t numGlobalElements, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, LocalGlobal lg=GloballyDistributed, const Teuchos::RCP< Node > &node=defaultArgNode())
Constructor with Tpetra-defined contiguous uniform distribution.
Teuchos::RCP< Node > getNode() const
Get this Map's Node object.
global_size_t getGlobalNumElements() const
The number of elements in this Map.
GlobalOrdinal getGlobalElement(LocalOrdinal localIndex) const
Return the global index for a given local index. Note that this returns -1 if not found on this proce...
EpetraMapT(const Teuchos::RCP< const Epetra_BlockMap > &map)
EpetraMapT constructor to wrap a Epetra_Map object.
GlobalOrdinal getGlobalElement(LocalOrdinal localIndex) const
Return the global index for a given local index. Note that this returns -1 if not found on this proce...
UnderlyingLib lib() const
Get the library used by this object (Epetra or Epetra?)
LookupStatus getRemoteIndexList(const Teuchos::ArrayView< const GlobalOrdinal > &GIDList, const Teuchos::ArrayView< int > &nodeIDList) const
Return the process ranks for the given global indices.
RCP< const CrsGraph< int, GlobalOrdinal, Node > > toXpetra(const Epetra_CrsGraph &g)
GlobalOrdinal getMinGlobalIndex() const
The minimum global index owned by the calling process.
const Epetra_Map & getEpetra_Map() const
bool isCompatible(const Map< LocalOrdinal, GlobalOrdinal, Node > &map) const
True if and only if map is compatible with this Map.
GlobalOrdinal global_ordinal_type
virtual ~EpetraMapT()
Destructor.
LocalOrdinal local_ordinal_type
EpetraMapT(global_size_t numGlobalElements, size_t numLocalElements, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &node=defaultArgNode())
Constructor with a user-defined contiguous distribution.
LookupStatus getRemoteIndexList(const Teuchos::ArrayView< const GlobalOrdinal > &GIDList, const Teuchos::ArrayView< int > &nodeIDList, const Teuchos::ArrayView< LocalOrdinal > &LIDList) const
Return the process ranks and corresponding local indices for the given global indices.
bool isSameAs(const Map< LocalOrdinal, GlobalOrdinal, Node > &map) const
True if and only if map is identical to this Map.
static Teuchos::RCP< Node > defaultArgNode()
#define XPETRA_MONITOR(funcName)
LocalOrdinal getLocalElement(GlobalOrdinal globalIndex) const
The local index corresponding to the given global index.
RCP< const Map< int, GlobalOrdinal, Node > > replaceCommWithSubset(const Teuchos::RCP< const Teuchos::Comm< int > > &newComm) const
Replace this Map's communicator with a subset communicator.
RCP< const Map< int, GlobalOrdinal, Node > > replaceCommWithSubset(const Teuchos::RCP< const Teuchos::Comm< int > > &newComm) const
Replace this Map's communicator with a subset communicator.
GlobalOrdinal getMaxGlobalIndex() const
The maximum global index owned by the calling process.
bool isCompatible(const Map< LocalOrdinal, GlobalOrdinal, Node > &map) const
True if and only if map is compatible with this Map.
GlobalOrdinal getMinAllGlobalIndex() const
The minimum global index over all processes in the communicator.
EpetraMapT(global_size_t numGlobalElements, size_t numLocalElements, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< Node > &node=defaultArgNode())
Constructor with a user-defined contiguous distribution.
EpetraMapT(global_size_t numGlobalElements, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, LocalGlobal lg=GloballyDistributed, const Teuchos::RCP< Node > &node=defaultArgNode())
Constructor with Tpetra-defined contiguous uniform distribution.
GlobalOrdinal getMaxAllGlobalIndex() const
The maximum global index over all processes in the communicator.
std::string typeName(const T &t)
std::string description() const
Return a simple one-line description of this object.
LocalOrdinal getLocalElement(GlobalOrdinal globalIndex) const
The local index corresponding to the given global index.
EpetraMapT(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())
Constructor with user-defined arbitrary (possibly noncontiguous) distribution.