47 #ifndef THYRA_XPETRA_LINEAR_OP_DECL_HPP
48 #define THYRA_XPETRA_LINEAR_OP_DECL_HPP
50 #include "Thyra_LinearOpDefaultBase.hpp"
52 #include "Teuchos_ConstNonconstObjectContainer.hpp"
63 class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
65 :
virtual public Thyra::LinearOpDefaultBase<Scalar> {
75 const RCP<
const VectorSpaceBase<Scalar> > &rangeSpace,
76 const RCP<
const VectorSpaceBase<Scalar> > &domainSpace,
81 const RCP<
const VectorSpaceBase<Scalar> > &rangeSpace,
82 const RCP<
const VectorSpaceBase<Scalar> > &domainSpace,
115 const Thyra::EOpTransp M_trans,
116 const Thyra::MultiVectorBase<Scalar> &X_in,
117 const Teuchos::Ptr<Thyra::MultiVectorBase<Scalar> > &Y_inout,
133 template <
class XpetraOperator_t>
135 const RCP<
const VectorSpaceBase<Scalar> > &rangeSpace,
136 const RCP<
const VectorSpaceBase<Scalar> > &domainSpace,
144 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
147 const RCP<
const VectorSpaceBase<Scalar> > &rangeSpace,
148 const RCP<
const VectorSpaceBase<Scalar> > &domainSpace,
152 op->initialize(rangeSpace, domainSpace, xpetraOperator);
160 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
163 const RCP<
const VectorSpaceBase<Scalar> > &rangeSpace,
164 const RCP<
const VectorSpaceBase<Scalar> > &domainSpace,
168 op->constInitialize(rangeSpace, domainSpace, xpetraOperator);
174 #endif // THYRA_XPETRA_LINEAR_OP_DECL_HPP
RCP< const VectorSpaceBase< Scalar > > domainSpace_
MueLu::DefaultLocalOrdinal LocalOrdinal
RCP< const Thyra::VectorSpaceBase< Scalar > > range() const
RCP< const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getConstXpetraOperator() const
Get embedded const Xpetra::Operator.
RCP< const XpetraLinearOp< Scalar, LocalOrdinal, GlobalOrdinal, Node > > constXpetraLinearOp(const RCP< const VectorSpaceBase< Scalar > > &rangeSpace, const RCP< const VectorSpaceBase< Scalar > > &domainSpace, const RCP< const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &xpetraOperator)
Nonmmeber constructor for XpetraLinearOp.
bool opSupportedImpl(Thyra::EOpTransp M_trans) const
RCP< const Thyra::VectorSpaceBase< Scalar > > domain() const
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
void initializeImpl(const RCP< const VectorSpaceBase< Scalar > > &rangeSpace, const RCP< const VectorSpaceBase< Scalar > > &domainSpace, const RCP< XpetraOperator_t > &xpetraOperator)
XpetraLinearOp()
Construct to uninitialized.
void applyImpl(const Thyra::EOpTransp M_trans, const Thyra::MultiVectorBase< Scalar > &X_in, const Teuchos::Ptr< Thyra::MultiVectorBase< Scalar > > &Y_inout, const Scalar alpha, const Scalar beta) const
RCP< Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getXpetraOperator()
Get embedded non-const Xpetra::Operator.
Concrete Thyra::LinearOpBase subclass for Xpetra::Operator.
void initialize(const RCP< const VectorSpaceBase< Scalar > > &rangeSpace, const RCP< const VectorSpaceBase< Scalar > > &domainSpace, const RCP< Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &xpetraOperator)
Initialize.
RCP< const VectorSpaceBase< Scalar > > rangeSpace_
Teuchos::ConstNonconstObjectContainer< Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > xpetraOperator_
RCP< XpetraLinearOp< Scalar, LocalOrdinal, GlobalOrdinal, Node > > xpetraLinearOp(const RCP< const VectorSpaceBase< Scalar > > &rangeSpace, const RCP< const VectorSpaceBase< Scalar > > &domainSpace, const RCP< Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &xpetraOperator)
Nonmmeber constructor for XpetraLinearOp.
void constInitialize(const RCP< const VectorSpaceBase< Scalar > > &rangeSpace, const RCP< const VectorSpaceBase< Scalar > > &domainSpace, const RCP< const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &xpetraOperator)
Initialize.