46 #ifndef XPETRA_EPETRAOPERATOR_HPP 47 #define XPETRA_EPETRAOPERATOR_HPP 51 #include <Epetra_Operator.hpp> 63 template<
class EpetraGlobalOrdinal>
104 "Xpetra::EpetraOperator->apply(): can only accept mode == NO_TRANS or mode == TRANS");
106 "Xpetra::EpetraOperator->apply(): cannot apply transpose as underlying Epetra operator does not support it");
113 bool curTranspose =
op_->UseTranspose();
116 op_->setUseTranspose(curTranspose);
124 if (
op_->UseTransepose()) {
129 int err =
op_->SetUseTranspose(
true);
130 SetUseTranspose(
false);
145 out <<
"Epetra_Operator" << std::endl;
167 #endif // XPETRA_EPETRAOPERATOR_HPP
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
Exception throws to report errors in the internal logical of the program.
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.
std::string description() const
A simple one-line description of this object.
Node node_type
The Kokkos Node type.
RCP< Epetra_Operator > op_
The Tpetra::Operator which this class wraps.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
#define XPETRA_ERR_CHECK(arg)
Operator< double, int, GlobalOrdinal >::node_type Node
Exception throws when you call an unimplemented method of Xpetra.
EpetraGlobalOrdinal GlobalOrdinal
#define XPETRA_DYNAMIC_CAST(type, obj, newObj, exceptionMsg)
static const EVerbosityLevel verbLevel_default
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.
RCP< const CrsGraph< int, GlobalOrdinal, Node > > toXpetra(const Epetra_CrsGraph &g)
EpetraOperator(const Teuchos::RCP< Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &op)
TpetraOperator constructor to wrap a Tpetra::Operator object.
#define XPETRA_MONITOR(funcName)
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 > > getDomainMap() const
The Map associated with the domain of this operator, which must be compatible with X...