49 #ifndef XPETRA_CLONER_HPP
50 #define XPETRA_CLONER_HPP
58 #ifdef HAVE_XPETRA_TPETRA
71 template <
class LocalOrdinal,
class GlobalOrdinal,
class Node1,
class Node2>
74 throw std::invalid_argument(
"Map::clone() functionality is only available for Tpetra");
75 #ifdef HAVE_XPETRA_TPETRA
78 return tMap->clone(node2);
84 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node1,
class Node2>
87 throw std::invalid_argument(
"Matrix::clone() functionality is only available for Tpetra");
92 return tMatrix->clone(node2);
95 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node1,
class Node2>
98 throw std::invalid_argument(
"MultiVector::clone() functionality is only available for Tpetra");
99 #ifdef HAVE_XPETRA_TPETRA
103 return tMV->clone(node2);
105 return Teuchos::null;
112 #define XPETRA_CLONER_SHORT
113 #endif //XPETRA_CLONER_HPP
RCP< Map< LocalOrdinal, GlobalOrdinal, Node2 > > clone(const Map< LocalOrdinal, GlobalOrdinal, Node1 > &map, const RCP< Node2 > &node2)
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getMap() const =0
The Map describing the parallel distribution of this object.
Concrete implementation of Xpetra::Matrix.
virtual const RCP< const Map > & getRowMap() const
Returns the Map that describes the row distribution in this matrix.
virtual UnderlyingLib lib() const =0
Get the library used by this object (Tpetra or Epetra?)
Xpetra-specific matrix class.