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");
89 RCP<const CrsMatrixWrap<Scalar,LocalOrdinal,GlobalOrdinal,Node1> > tMatrix =
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 100 RCP<const TpetraMultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node1> > tMV =
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 const RCP< const Map > & getRowMap() const
Returns the Map that describes the row distribution in this matrix.
RCP< MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node2 > > clone(const RCP< Node2 > &node2) const
RCP< Map< LocalOrdinal, GlobalOrdinal, Node2 > > clone(const RCP< Node2 > &node2) const
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.
RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node2 > > clone(const RCP< Node2 > &node2) const
virtual UnderlyingLib lib() const =0
Get the library used by this object (Tpetra or Epetra?)
Xpetra-specific matrix class.