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 1132 #endif // XPETRA_EPETRAMAP_HPP GlobalOrdinal global_ordinal_type
virtual ~EpetraMapT()
Destructor.
Teuchos::RCP< Node > getNode() const
Get this Map's Node object.
LocalOrdinal getMaxLocalIndex() const
The maximum local index on the calling process.
UnderlyingLib lib() const
Get the library used by this object (Epetra or Epetra?)
global_size_t getGlobalNumElements() const
The number of elements in this Map.
UnderlyingLib lib() const
Get the library used by this object (Epetra or Epetra?)
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.
const Epetra_BlockMap & getEpetra_BlockMap() const
Get the underlying Epetra map.
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.
GlobalOrdinal global_ordinal_type
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.
LocalOrdinal getLocalElement(GlobalOrdinal globalIndex) const
The local index corresponding to the given global index.
LocalOrdinal local_ordinal_type
GlobalOrdinal getMinGlobalIndex() const
The minimum global index owned by the calling process.
Teuchos::ArrayView< const GlobalOrdinal > getNodeElementList() const
Return a view of the global indices owned by this process.
std::string description() const
Return a simple one-line description of this object.
RCP< const Map< int, GlobalOrdinal, Node > > removeEmptyProcesses() const
Return a new Map with processes with zero elements removed.
Teuchos::RCP< const Teuchos::Comm< int > > getComm() const
Get this Map's Comm 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.
EpetraMapT(const Teuchos::RCP< const Epetra_BlockMap > &map)
EpetraMapT constructor to wrap a Epetra_Map object.
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 getMaxAllGlobalIndex() const
The maximum global index over all processes in the communicator.
bool isDistributed() const
Whether this Map is globally distributed or locally replicated.
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
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.
LocalOrdinal getMinLocalIndex() const
The minimum local index.
bool isNodeLocalElement(LocalOrdinal localIndex) const
Whether the given local index is valid for this Map on this process.
Exception throws to report errors in the internal logical of the program.
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::RCP< const Teuchos::Comm< int > > getComm() const
Get this Map's Comm object.
const Epetra_CrsGraph & toEpetra(const RCP< const CrsGraph< int, GlobalOrdinal, Node > > &graph)
RCP< const Map< int, GlobalOrdinal, Node > > removeEmptyProcesses() const
Return a new Map with processes with zero elements removed.
const Epetra_Map & getEpetra_Map() const
EpetraMapT(const Teuchos::RCP< const Epetra_BlockMap > &map)
EpetraMapT constructor to wrap a Epetra_Map object.
const Epetra_BlockMap & getEpetra_BlockMap() const
Get the underlying Epetra map.
virtual std::string description() const
GlobalOrdinal getMaxGlobalIndex() const
The maximum global index owned by the calling process.
UnderlyingLib lib() const
Get the library used by this object (Epetra or Epetra?)
Teuchos::ArrayView< const GlobalOrdinal > getNodeElementList() const
Return a view of the global indices owned by this process.
LocalOrdinal getMaxLocalIndex() const
The maximum local index on the calling process.
GlobalOrdinal getMaxAllGlobalIndex() const
The maximum global index over all processes in the communicator.
GlobalOrdinal getIndexBase() const
The index base for this Map.
bool isCompatible(const Map< LocalOrdinal, GlobalOrdinal, Node > &map) const
True if and only if map is compatible with this Map.
const Epetra_Map & getEpetra_Map() const
GlobalOrdinal getIndexBase() const
The index base for this Map.
LocalOrdinal getLocalElement(GlobalOrdinal globalIndex) const
The local index corresponding to the given global index.
bool isNodeLocalElement(LocalOrdinal localIndex) const
Whether the given local index is valid for this Map on this process.
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...
bool isContiguous() const
True if this Map is distributed contiguously, else false.
bool isSameAs(const Map< LocalOrdinal, GlobalOrdinal, Node > &map) const
True if and only if map is identical to this Map.
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.
bool isNodeGlobalElement(GlobalOrdinal globalIndex) const
Whether the given global index is valid for this Map on this process.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
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 getMinAllGlobalIndex() const
The minimum global index over all processes in the communicator.
size_t getNodeNumElements() const
The number of elements belonging to the calling process.
bool isCompatible(const Map< LocalOrdinal, GlobalOrdinal, Node > &map) const
True if and only if map is compatible with this Map.
GlobalOrdinal getIndexBase() const
The index base for this Map.
std::string description() const
Return a simple one-line description of this object.
global_size_t getGlobalNumElements() const
The number of elements in this Map.
bool isSameAs(const Map< LocalOrdinal, GlobalOrdinal, Node > &map) const
True if and only if map is identical to this Map.
RCP< const Epetra_BlockMap > map_
bool isNodeGlobalElement(GlobalOrdinal globalIndex) const
Whether the given global index is valid for this Map on this process.
#define IF_EPETRA_EXCEPTION_THEN_THROW_GLOBAL_INVALID_ARG(sourceCode)
GlobalOrdinal getMinGlobalIndex() const
The minimum 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.
bool isContiguous() const
True if this Map is distributed contiguously, else false.
size_t getNodeNumElements() const
The number of elements belonging to the calling process.
bool isDistributed() const
Whether this Map is globally distributed or locally replicated.
virtual ~EpetraMapT()
Destructor.
static Teuchos::RCP< Node > defaultArgNode()
GlobalOrdinal getMinAllGlobalIndex() const
The minimum global index over all processes in the communicator.
LocalOrdinal getMinLocalIndex() const
The minimum local index.
RCP< const Epetra_BlockMap > map_
size_t global_size_t
Global size_t object.
Teuchos::RCP< Node > getNode() const
Get this Map's Node object.
static const EVerbosityLevel verbLevel_default
static Teuchos::RCP< Node > defaultArgNode()
RCP< const Epetra_BlockMap > map_
global_size_t getGlobalNumElements() const
The number of elements in this 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.
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.
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(const Teuchos::RCP< const Epetra_BlockMap > &map)
EpetraMapT constructor to wrap a Epetra_Map object.
size_t getNodeNumElements() const
The number of elements belonging to the calling process.
RCP< const CrsGraph< int, GlobalOrdinal, Node > > toXpetra(const Epetra_CrsGraph &g)
LookupStatus getRemoteIndexList(const Teuchos::ArrayView< const GlobalOrdinal > &GIDList, const Teuchos::ArrayView< int > &nodeIDList) const
Return the process ranks for the given global indices.
LocalOrdinal getLocalElement(GlobalOrdinal globalIndex) const
The local index corresponding to the given global index.
GlobalOrdinal getMinAllGlobalIndex() const
The minimum global index over all processes in the communicator.
LocalOrdinal getMaxLocalIndex() const
The maximum local index on the calling process.
bool isDistributed() const
Whether this Map is globally distributed or locally replicated.
GlobalOrdinal global_ordinal_type
virtual ~EpetraMapT()
Destructor.
LocalOrdinal local_ordinal_type
LookupStatus getRemoteIndexList(const Teuchos::ArrayView< const GlobalOrdinal > &GIDList, const Teuchos::ArrayView< int > &nodeIDList) const
Return the process ranks for the given global indices.
GlobalOrdinal getMaxAllGlobalIndex() const
The maximum 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.
bool isContiguous() const
True if this Map is distributed contiguously, else false.
GlobalOrdinal getMinGlobalIndex() const
The minimum global index owned by the calling process.
RCP< const Map< int, GlobalOrdinal, Node > > removeEmptyProcesses() const
Return a new Map with processes with zero elements removed.
static Teuchos::RCP< Node > defaultArgNode()
LookupStatus getRemoteIndexList(const Teuchos::ArrayView< const GlobalOrdinal > &GIDList, const Teuchos::ArrayView< int > &nodeIDList) const
Return the process ranks for the given global indices.
#define XPETRA_MONITOR(funcName)
Teuchos::RCP< Node > getNode() const
Get this Map's Node 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.
bool isSameAs(const Map< LocalOrdinal, GlobalOrdinal, Node > &map) const
True if and only if map is identical to this Map.
Teuchos::ArrayView< const GlobalOrdinal > getNodeElementList() const
Return a view of the global indices owned by this process.
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...
const Epetra_BlockMap & getEpetra_BlockMap() const
Get the underlying Epetra map.
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.
GlobalOrdinal getMaxGlobalIndex() const
The maximum global index owned by the calling process.
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(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< const Teuchos::Comm< int > > getComm() const
Get this Map's Comm object.
const Epetra_Map & getEpetra_Map() const
LocalOrdinal getMinLocalIndex() const
The minimum local index.
std::string description() const
Return a simple one-line description of this object.
GlobalOrdinal getMaxGlobalIndex() const
The maximum global index owned by the calling process.
std::string typeName(const T &t)
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.