46 #ifndef XPETRA_TPETRAOPERATOR_HPP 47 #define XPETRA_TPETRAOPERATOR_HPP 51 #include <Tpetra_Operator.hpp> 63 template <class Scalar = Operator<>::scalar_type,
72 virtual Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
getDomainMap()
const {
78 virtual Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
getRangeMap()
const {
92 Teuchos::ETransp mode = Teuchos::NO_TRANS,
93 Scalar alpha = Teuchos::ScalarTraits<Scalar>::one(),
94 Scalar beta = Teuchos::ScalarTraits<Scalar>::zero())
const {
100 return op_->hasTransposeApply();
112 void describe(Teuchos::FancyOStream &out,
const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default)
const {
122 TpetraOperator(
const Teuchos::RCP<Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node> > &op) :
op_(op) { }
128 RCP< Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node> >
op_;
134 #if ((!defined(HAVE_TPETRA_INST_SERIAL)) && (!defined(HAVE_TPETRA_INST_INT_INT))) 138 :
public Operator< double, int, int, EpetraNode > {
148 virtual Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
getDomainMap()
const {
149 return Teuchos::null;
153 virtual Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
getRangeMap()
const {
154 return Teuchos::null;
166 Teuchos::ETransp mode = Teuchos::NO_TRANS,
167 Scalar alpha = Teuchos::ScalarTraits<Scalar>::one(),
168 Scalar beta = Teuchos::ScalarTraits<Scalar>::zero())
const { }
182 void describe(Teuchos::FancyOStream &out,
const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default)
const { }
190 TpetraOperator(
const Teuchos::RCP<Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node> > &op) { }
198 #if ((!defined(HAVE_TPETRA_INST_SERIAL)) && (!defined(HAVE_TPETRA_INST_INT_LONG_LONG))) 202 :
public Operator< double, int, long long, EpetraNode > {
212 virtual Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
getDomainMap()
const {
213 return Teuchos::null;
217 virtual Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
getRangeMap()
const {
218 return Teuchos::null;
230 Teuchos::ETransp mode = Teuchos::NO_TRANS,
231 Scalar alpha = Teuchos::ScalarTraits<Scalar>::one(),
232 Scalar beta = Teuchos::ScalarTraits<Scalar>::zero())
const { }
246 void describe(Teuchos::FancyOStream &out,
const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default)
const { }
254 TpetraOperator(
const Teuchos::RCP<Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node> > &op) { }
263 #define XPETRA_TPETRAOPERATOR_SHORT 264 #endif // XPETRA_TPETRAOPERATOR_HPP
virtual void apply(const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=Teuchos::ScalarTraits< Scalar >::one(), Scalar beta=Teuchos::ScalarTraits< Scalar >::zero()) const
Computes the operator-multivector application.
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRangeMap() const
The Map associated with the range of this operator, which must be compatible with Y...
virtual bool hasTransposeApply() const
Whether this operator supports applying the transpose or conjugate transpose.
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRangeMap() const
The Map associated with the range of this operator, which must be compatible with Y...
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getDomainMap() const
The Map associated with the domain of this operator, which must be compatible with X...
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
Print the object with the given verbosity level to a FancyOStream.
std::string description() const
A simple one-line description of this object.
Node node_type
The Kokkos Node type.
std::string description() const
A simple one-line description of this object.
GlobalOrdinal global_ordinal_type
The global index type.
std::string description() const
A simple one-line description of this object.
virtual bool hasTransposeApply() const
Whether this operator supports applying the transpose or conjugate transpose.
RCP< Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > op_
The Tpetra::Operator which this class wraps.
virtual bool hasTransposeApply() const
Whether this operator supports applying the transpose or conjugate transpose.
LocalOrdinal local_ordinal_type
The local index type.
TpetraOperator(const Teuchos::RCP< Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &op)
TpetraOperator constructor to wrap a Tpetra::Operator object.
TpetraOperator(const Teuchos::RCP< Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &op)
TpetraOperator constructor to wrap a Tpetra::Operator object.
virtual void apply(const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=Teuchos::ScalarTraits< Scalar >::one(), Scalar beta=Teuchos::ScalarTraits< Scalar >::zero()) const
Computes the operator-multivector application.
RCP< const Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > toTpetra(const RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > &graph)
RCP< const CrsGraph< int, GlobalOrdinal, Node > > toXpetra(const Epetra_CrsGraph &g)
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRangeMap() const
The Map associated with the range of this operator, which must be compatible with Y...
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getDomainMap() const
The Map associated with the domain of this operator, which must be compatible with X...
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
Print the object with the given verbosity level to a FancyOStream.
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
Print the object with the given verbosity level to a FancyOStream.
#define XPETRA_MONITOR(funcName)
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getDomainMap() const
The Map associated with the domain of this operator, which must be compatible with X...
TpetraOperator(const Teuchos::RCP< Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &op)
TpetraOperator constructor to wrap a Tpetra::Operator object.
virtual void apply(const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=Teuchos::ScalarTraits< Scalar >::one(), Scalar beta=Teuchos::ScalarTraits< Scalar >::zero()) const
Computes the operator-multivector application.