46 #ifndef XPETRA_EPETRAMAP_HPP
47 #define XPETRA_EPETRAMAP_HPP
52 #include "Xpetra_Map.hpp"
54 #include <Epetra_Map.h>
55 #include <Epetra_BlockMap.h>
66 template<
class GlobalOrdinal,
class Node>
69 template<
class GlobalOrdinal,
class Node>
75 template<
class GlobalOrdinal,
class Node>
79 template<
class GlobalOrdinal,
class Node>
81 :
public virtual Map<int, GlobalOrdinal, Node>
95 GlobalOrdinal indexBase,
100 "Xpetra::EpetraMap only available for GO=int or GO=long long with EpetraNode (Serial or OpenMP depending on configuration)");
106 "Xpetra::EpetraMap only available for GO=int or GO=long long with EpetraNode (Serial or OpenMP depending on configuration)");
112 GlobalOrdinal indexBase,
115 "Xpetra::EpetraMap only available for GO=int or GO=long long with EpetraNode (Serial or OpenMP depending on configuration)");
232 "Xpetra::EpetraMap only available for GO=int or GO=long long with EpetraNode (Serial or OpenMP depending on configuration)");
243 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
244 #ifdef HAVE_XPETRA_TPETRA
247 local_map_type getLocalMap ()
const {
248 throw std::runtime_error(
"Xpetra::EpetraMap::getLocalMap is not implemented in "+std::string(__FILE__)+
":"+std::to_string(__LINE__));
252 #warning "Xpetra Kokkos interface for CrsMatrix is enabled (HAVE_XPETRA_KOKKOS_REFACTOR) but Tpetra is disabled. The Kokkos interface needs Tpetra to be enabled, too."
265 #ifndef XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES
268 :
public virtual Map<int, int, EpetraNode>
290 std::string errPrefix;
291 errPrefix =
Teuchos::typeName(*
this) +
"::constructor(numGlobal,indexBase,comm,lOrG): ";
294 const int myImageID = comm->getRank();
299 Teuchos::broadcast<int,global_size_t>(*comm,0,&rootNGE);
300 Teuchos::broadcast<int,GlobalOrdinal>(*comm,0,&rootIB);
301 int localChecks[2], globalChecks[2];
304 if (numGlobalElements != rootNGE) {
305 localChecks[0] = myImageID;
308 else if (indexBase != rootIB) {
309 localChecks[0] = myImageID;
314 Teuchos::reduceAll<int,int>(*comm,Teuchos::REDUCE_MAX,2,localChecks,globalChecks);
315 if (globalChecks[0] != -1) {
316 if (globalChecks[1] == 1) {
318 errPrefix <<
"numGlobal must be the same on all nodes (examine node " << globalChecks[0] <<
").");
320 else if (globalChecks[1] == 2) {
322 errPrefix <<
"indexBase must be the same on all nodes (examine node " << globalChecks[0] <<
").");
327 errPrefix <<
"logic error. Please contact the Tpetra team.");
341 using Teuchos::outArg;
349 std::string errPrefix;
350 errPrefix =
Teuchos::typeName(*
this) +
"::constructor(numGlobal,numLocal,indexBase,platform): ";
353 const int myImageID = comm->getRank();
358 int localChecks[2], globalChecks[2];
366 Teuchos::reduceAll<int,global_size_t>(*comm,Teuchos::REDUCE_SUM,
367 Teuchos::as<global_size_t>(numLocalElements),outArg(global_sum));
374 if (numLocalElements < L1 && numLocalElements != L0) {
376 localChecks[0] = myImageID;
379 else if (numGlobalElements < GST1 && numGlobalElements != GST0 && numGlobalElements != GSTI) {
381 localChecks[0] = myImageID;
384 else if (numGlobalElements != GSTI && numGlobalElements != global_sum) {
386 localChecks[0] = myImageID;
391 Teuchos::broadcast<int,GlobalOrdinal>(*comm,0,&rootIB);
392 if (indexBase != rootIB) {
393 localChecks[0] = myImageID;
398 Teuchos::reduceAll<int,int>(*comm,Teuchos::REDUCE_MAX,2,localChecks,globalChecks);
399 if (globalChecks[0] != -1) {
400 if (globalChecks[1] == 1) {
402 errPrefix <<
"numLocal is not valid on at least one node (possibly node "
403 << globalChecks[0] <<
").");
405 else if (globalChecks[1] == 2) {
407 errPrefix <<
"numGlobal is not valid on at least one node (possibly node "
408 << globalChecks[0] <<
").");
410 else if (globalChecks[1] == 3) {
412 errPrefix <<
"numGlobal doesn't match sum of numLocal (== "
413 << global_sum <<
") on at least one node (possibly node "
414 << globalChecks[0] <<
").");
416 else if (globalChecks[1] == 4) {
418 errPrefix <<
"indexBase is not the same on all nodes (examine node "
419 << globalChecks[0] <<
").");
424 errPrefix <<
"logic error. Please contact the Tpetra team.");
431 if (numGlobalElements == GSTI) {
432 numGlobalElements = global_sum;}
553 std::ostringstream oss;
581 int myImageID = comm_->getRank();
582 int numImages = comm_->getSize();
591 width = ::std::max<size_t>(width, (
size_t) 12) + 2;
602 for (
int imageCtr = 0; imageCtr < numImages; ++imageCtr) {
603 if (myImageID == imageCtr) {
604 if (myImageID == 0) {
613 out <<
"Number of Local Elements = " << nME << endl
619 out << std::setw(width) <<
"Node ID"
620 << std::setw(width) <<
"Local Index"
621 << std::setw(width) <<
"Global Index"
623 for (
size_t i=0; i < nME; i++) {
624 out << std::setw(width) << myImageID
625 << std::setw(width) << i
626 << std::setw(width) << myEntries[i]
649 return Teuchos::null;
659 throw std::runtime_error(
"Xpetra::EpetraMapT::replaceCommWithSubset has not yet been implemented in "+std::string(__FILE__)+
":"+std::to_string(__LINE__));
670 if (gid ==
map_->IndexBase64()-1)
return (-1);
696 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
697 #ifdef HAVE_XPETRA_TPETRA
700 local_map_type getLocalMap ()
const {
701 throw std::runtime_error(
"Xpetra::EpetraMap::getLocalMap is not implemented in "+std::string(__FILE__)+
":"+std::to_string(__LINE__));
705 mutable local_map_type localMap_;
708 #warning "Xpetra Kokkos interface for CrsMatrix is enabled (HAVE_XPETRA_KOKKOS_REFACTOR) but Tpetra is disabled. The Kokkos interface needs Tpetra to be enabled, too."
720 #ifndef XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES
723 :
public virtual Map<int, long long, EpetraNode>
745 std::string errPrefix;
746 errPrefix =
Teuchos::typeName(*
this) +
"::constructor(numGlobal,indexBase,comm,lOrG): ";
749 const int myImageID = comm->getRank();
754 Teuchos::broadcast<int,global_size_t>(*comm,0,&rootNGE);
755 Teuchos::broadcast<int,GlobalOrdinal>(*comm,0,&rootIB);
756 int localChecks[2], globalChecks[2];
759 if (numGlobalElements != rootNGE) {
760 localChecks[0] = myImageID;
763 else if (indexBase != rootIB) {
764 localChecks[0] = myImageID;
769 Teuchos::reduceAll<int,int>(*comm,Teuchos::REDUCE_MAX,2,localChecks,globalChecks);
770 if (globalChecks[0] != -1) {
771 if (globalChecks[1] == 1) {
773 errPrefix <<
"numGlobal must be the same on all nodes (examine node " << globalChecks[0] <<
").");
775 else if (globalChecks[1] == 2) {
777 errPrefix <<
"indexBase must be the same on all nodes (examine node " << globalChecks[0] <<
").");
782 errPrefix <<
"logic error. Please contact the Tpetra team.");
795 using Teuchos::outArg;
803 std::string errPrefix;
804 errPrefix =
Teuchos::typeName(*
this) +
"::constructor(numGlobal,numLocal,indexBase,platform): ";
807 const int myImageID = comm->getRank();
812 int localChecks[2], globalChecks[2];
820 Teuchos::reduceAll<int,global_size_t>(*comm,Teuchos::REDUCE_SUM,
821 Teuchos::as<global_size_t>(numLocalElements),outArg(global_sum));
828 if (numLocalElements < L1 && numLocalElements != L0) {
830 localChecks[0] = myImageID;
833 else if (numGlobalElements < GST1 && numGlobalElements != GST0 && numGlobalElements != GSTI) {
835 localChecks[0] = myImageID;
838 else if (numGlobalElements != GSTI && numGlobalElements != global_sum) {
840 localChecks[0] = myImageID;
845 Teuchos::broadcast<int,GlobalOrdinal>(*comm,0,&rootIB);
846 if (indexBase != rootIB) {
847 localChecks[0] = myImageID;
852 Teuchos::reduceAll<int,int>(*comm,Teuchos::REDUCE_MAX,2,localChecks,globalChecks);
853 if (globalChecks[0] != -1) {
854 if (globalChecks[1] == 1) {
856 errPrefix <<
"numLocal is not valid on at least one node (possibly node "
857 << globalChecks[0] <<
").");
859 else if (globalChecks[1] == 2) {
861 errPrefix <<
"numGlobal is not valid on at least one node (possibly node "
862 << globalChecks[0] <<
").");
864 else if (globalChecks[1] == 3) {
866 errPrefix <<
"numGlobal doesn't match sum of numLocal (== "
867 << global_sum <<
") on at least one node (possibly node "
868 << globalChecks[0] <<
").");
870 else if (globalChecks[1] == 4) {
872 errPrefix <<
"indexBase is not the same on all nodes (examine node "
873 << globalChecks[0] <<
").");
878 errPrefix <<
"logic error. Please contact the Tpetra team.");
885 if (numGlobalElements == GSTI) {
886 numGlobalElements = global_sum;}
989 std::ostringstream oss;
1017 int myImageID = comm_->getRank();
1018 int numImages = comm_->getSize();
1027 width = ::std::max<size_t>(width, (
size_t) 12) + 2;
1038 for (
int imageCtr = 0; imageCtr < numImages; ++imageCtr) {
1039 if (myImageID == imageCtr) {
1040 if (myImageID == 0) {
1049 out <<
"Number of Local Elements = " << nME << endl
1055 out << std::setw(width) <<
"Node ID"
1056 << std::setw(width) <<
"Local Index"
1057 << std::setw(width) <<
"Global Index"
1059 for (
size_t i=0; i < nME; i++) {
1060 out << std::setw(width) << myImageID
1061 << std::setw(width) << i
1062 << std::setw(width) << myEntries[i]
1085 return Teuchos::null;
1095 throw std::runtime_error(
"Xpetra::EpetraMapT::replaceCommWithSubset has not yet been implemented in "+std::string(__FILE__)+
":"+std::to_string(__LINE__));
1106 if (gid ==
map_->IndexBase64()-1)
return (-1);
1130 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
1131 #ifdef HAVE_XPETRA_TPETRA
1134 local_map_type getLocalMap ()
const {
1135 throw std::runtime_error(
"Xpetra::EpetraMap::getLocalMap is not implemented in "+std::string(__FILE__)+
":"+std::to_string(__LINE__));
1139 mutable local_map_type localMap_;
1142 #warning "Xpetra Kokkos interface for CrsMatrix is enabled (HAVE_XPETRA_KOKKOS_REFACTOR) but Tpetra is disabled. The Kokkos interface needs Tpetra to be enabled, too."
#define XPETRA_MONITOR(funcName)
#define IF_EPETRA_EXCEPTION_THEN_THROW_GLOBAL_INVALID_ARG(sourceCode)
static const EVerbosityLevel verbLevel_default
virtual std::string description() const
bool isNodeLocalElement(LocalOrdinal localIndex) const
Whether the given local index is valid for this Map on this process.
GlobalOrdinal getMaxAllGlobalIndex() const
The maximum global index over all processes in the communicator.
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.
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.
GlobalOrdinal global_ordinal_type
GlobalOrdinal getIndexBase() const
The index base for this Map.
GlobalOrdinal getMinAllGlobalIndex() const
The minimum global index over all processes in the communicator.
const Epetra_Map & getEpetra_Map() const
UnderlyingLib lib() const
Get the library used by this object (Epetra or Epetra?)
bool isSameAs(const Map< LocalOrdinal, GlobalOrdinal, Node > &map) const
True if and only if map is identical to this Map.
LocalOrdinal getMinLocalIndex() const
The minimum local index.
size_t getNodeNumElements() const
The number of elements belonging to the calling process.
EpetraMapT(global_size_t numGlobalElements, size_t numLocalElements, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm)
Constructor with a user-defined contiguous distribution.
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...
RCP< const Map< int, GlobalOrdinal, Node > > replaceCommWithSubset(const Teuchos::RCP< const Teuchos::Comm< int > > &) const
Replace this Map's communicator with a subset communicator.
LocalOrdinal getLocalElement(GlobalOrdinal globalIndex) const
The local index corresponding to the given global index.
GlobalOrdinal getMaxGlobalIndex() const
The maximum global index owned by the calling process.
LocalOrdinal local_ordinal_type
RCP< const Epetra_BlockMap > map_
EpetraMapT(const Teuchos::RCP< const Epetra_BlockMap > &map)
EpetraMapT constructor to wrap a Epetra_Map object.
EpetraMapT(global_size_t numGlobalElements, const Teuchos::ArrayView< const GlobalOrdinal > &elementList, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm)
Constructor with user-defined arbitrary (possibly noncontiguous) distribution.
GlobalOrdinal getMinGlobalIndex() const
The minimum global index owned by the calling process.
EpetraMapT(global_size_t numGlobalElements, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, LocalGlobal lg=GloballyDistributed)
Constructor with Tpetra-defined contiguous uniform distribution.
Teuchos::RCP< const Teuchos::Comm< int > > getComm() const
Get this Map's Comm object.
RCP< const Map< int, GlobalOrdinal, Node > > removeEmptyProcesses() const
Return a new Map with processes with zero elements removed.
LocalOrdinal getMaxLocalIndex() const
The maximum local index on the calling process.
std::string description() const
Return a simple one-line description of this object.
const RCP< const Epetra_Map > getEpetra_MapRCP() const
Get the underlying Epetra map.
bool isNodeGlobalElement(GlobalOrdinal globalIndex) const
Whether the given global index is valid for this Map on this process.
global_size_t getGlobalNumElements() const
The number of elements in this Map.
const Epetra_BlockMap & getEpetra_BlockMap() const
LookupStatus getRemoteIndexList(const Teuchos::ArrayView< const GlobalOrdinal > &GIDList, const Teuchos::ArrayView< int > &nodeIDList) const
Return the process ranks for the given global indices.
Teuchos::ArrayView< const GlobalOrdinal > getNodeElementList() const
Return a view of the global indices owned by this 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.
bool isDistributed() const
Whether this Map is globally distributed or locally replicated.
virtual ~EpetraMapT()
Destructor.
const RCP< const Epetra_Map > & getEpetra_MapRCP() const
Get the underlying Epetra map.
GlobalOrdinal getMaxGlobalIndex() const
The maximum global index owned by the calling process.
GlobalOrdinal getIndexBase() const
The index base for this Map.
EpetraMapT(global_size_t numGlobalElements, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, LocalGlobal lg=GloballyDistributed)
Constructor with Tpetra-defined contiguous uniform distribution.
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 > > &) const
Replace this Map's communicator with a subset communicator.
const Epetra_BlockMap & getEpetra_BlockMap() const
bool isNodeLocalElement(LocalOrdinal localIndex) const
Whether the given local index is valid for this Map on this process.
EpetraMapT(global_size_t numGlobalElements, const Teuchos::ArrayView< const GlobalOrdinal > &elementList, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm)
Constructor with user-defined arbitrary (possibly noncontiguous) distribution.
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.
RCP< const Epetra_BlockMap > map_
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.
size_t getNodeNumElements() const
The number of elements belonging to the calling process.
RCP< const Map< int, GlobalOrdinal, Node > > removeEmptyProcesses() const
Return a new Map with processes with zero elements removed.
global_size_t getGlobalNumElements() const
The number of elements in this Map.
bool isNodeGlobalElement(GlobalOrdinal globalIndex) const
Whether the given global index is valid for this Map on this process.
bool isCompatible(const Map< LocalOrdinal, GlobalOrdinal, Node > &map) const
True if and only if map is compatible with this Map.
bool isSameAs(const Map< LocalOrdinal, GlobalOrdinal, Node > &map) const
True if and only if map is identical to this Map.
GlobalOrdinal getMinGlobalIndex() const
The minimum global index owned by the calling process.
LocalOrdinal getMaxLocalIndex() const
The maximum local index on 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.
virtual ~EpetraMapT()
Destructor.
LocalOrdinal getLocalElement(GlobalOrdinal globalIndex) const
The local index corresponding to the given global index.
bool isContiguous() const
True if this Map is distributed contiguously, else false.
GlobalOrdinal global_ordinal_type
std::string description() const
Return a simple one-line description of this object.
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.
EpetraMapT(global_size_t numGlobalElements, size_t numLocalElements, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm)
Constructor with a user-defined contiguous distribution.
const Epetra_Map & getEpetra_Map() const
GlobalOrdinal getMaxAllGlobalIndex() const
The maximum global index over all processes in the communicator.
GlobalOrdinal getMinAllGlobalIndex() const
The minimum global index over all processes in the communicator.
bool isDistributed() const
Whether this Map is globally distributed or locally replicated.
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...
LocalOrdinal getMinLocalIndex() const
The minimum local index.
EpetraMapT(global_size_t numGlobalElements, const Teuchos::ArrayView< const GlobalOrdinal > &elementList, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm)
Constructor with user-defined arbitrary (possibly noncontiguous) distribution.
bool isContiguous() const
True if this Map is distributed contiguously, else false.
const Epetra_Map & getEpetra_Map() const
const Epetra_BlockMap & getEpetra_BlockMap() const
LocalOrdinal getLocalElement(GlobalOrdinal) const
The local index corresponding to the given global index.
EpetraMapT(global_size_t numGlobalElements, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, LocalGlobal lg=GloballyDistributed)
Constructor with Tpetra-defined contiguous uniform distribution.
bool isCompatible(const Map< LocalOrdinal, GlobalOrdinal, Node > &) const
True if and only if map is compatible with this Map.
bool isNodeGlobalElement(GlobalOrdinal) const
Whether the given global index is valid for this Map on this process.
const RCP< const Epetra_Map > & getEpetra_MapRCP() const
Get the underlying Epetra map.
Teuchos::ArrayView< const GlobalOrdinal > getNodeElementList() const
Return a view of the global indices owned by this process.
virtual ~EpetraMapT()
Destructor.
size_t getNodeNumElements() const
The number of elements belonging to the calling process.
UnderlyingLib lib() const
Get the library used by this object (Epetra or Epetra?)
RCP< const Map< int, GlobalOrdinal, Node > > removeEmptyProcesses() const
Return a new Map with processes with zero elements removed.
LookupStatus getRemoteIndexList(const Teuchos::ArrayView< const GlobalOrdinal > &, const Teuchos::ArrayView< int > &, const Teuchos::ArrayView< LocalOrdinal > &) const
Return the process ranks and corresponding local indices for the given global indices.
LocalOrdinal getMinLocalIndex() const
The minimum local index.
LookupStatus getRemoteIndexList(const Teuchos::ArrayView< const GlobalOrdinal > &, const Teuchos::ArrayView< int > &) const
Return the process ranks for the given global indices.
bool isSameAs(const Map< LocalOrdinal, GlobalOrdinal, Node > &) const
True if and only if map is identical to this Map.
std::string description() const
Return a simple one-line description of this object.
RCP< const Epetra_BlockMap > map_
bool isNodeLocalElement(LocalOrdinal) const
Whether the given local index is valid for this Map on this process.
GlobalOrdinal getMaxGlobalIndex() const
The maximum global index owned by the calling process.
EpetraMapT(const Teuchos::RCP< const Epetra_BlockMap > &map)
EpetraMapT constructor to wrap a Epetra_Map object.
Teuchos::RCP< const Teuchos::Comm< int > > getComm() const
Get this Map's Comm object.
GlobalOrdinal getMinGlobalIndex() const
The minimum global index owned by the calling process.
GlobalOrdinal getMaxAllGlobalIndex() const
The maximum global index over all processes in the communicator.
GlobalOrdinal getGlobalElement(LocalOrdinal) 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, size_t numLocalElements, GlobalOrdinal indexBase, const Teuchos::RCP< const Teuchos::Comm< int > > &comm)
Constructor with a user-defined contiguous distribution.
bool isDistributed() const
Whether this Map is globally distributed or locally replicated.
global_size_t getGlobalNumElements() const
The number of elements in this Map.
LocalOrdinal getMaxLocalIndex() const
The maximum local index on the calling process.
GlobalOrdinal getIndexBase() const
The index base for this Map.
GlobalOrdinal getMinAllGlobalIndex() const
The minimum global index over all processes in the communicator.
void describe(Teuchos::FancyOStream &, const Teuchos::EVerbosityLevel=Teuchos::Describable::verbLevel_default) const
Print this object with the given verbosity level to the given Teuchos::FancyOStream.
RCP< const Map< int, GlobalOrdinal, Node > > replaceCommWithSubset(const Teuchos::RCP< const Teuchos::Comm< int > > &) const
Replace this Map's communicator with a subset communicator.
GlobalOrdinal global_ordinal_type
Exception throws to report errors in the internal logical of the program.
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
#define TEUCHOS_UNREACHABLE_RETURN(dummyReturnVal)
std::string typeName(const T &t)
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
size_t global_size_t
Global size_t object.
const Epetra_CrsGraph & toEpetra(const RCP< const CrsGraph< int, GlobalOrdinal, Node > > &graph)
RCP< const CrsGraph< int, GlobalOrdinal, Node > > toXpetra(const Epetra_CrsGraph &g)