10 #ifndef __Teko_ReorderedLinearOp_hpp__
11 #define __Teko_ReorderedLinearOp_hpp__
14 #include "Teko_ImplicitLinearOp.hpp"
15 #include "Teko_BlockedReordering.hpp"
25 const Teuchos::RCP<Thyra::LinearOpBase<double> > &blockedOp);
31 Teko::ModifiableLinearOp
getBlockedOp()
const {
return blockedOp_; }
34 virtual VectorSpace
range()
const;
37 virtual VectorSpace
domain()
const;
52 virtual void implicitApply(
const MultiVector &x, MultiVector &y,
const double alpha = 1.0,
53 const double beta = 0.0)
const;
55 virtual void describe(Teuchos::FancyOStream &out_arg,
56 const Teuchos::EVerbosityLevel verbLevel)
const;
61 Teuchos::RCP<const BlockReorderManager> mgr_;
62 Teuchos::RCP<Thyra::LinearOpBase<double> > blockedOp_;
virtual VectorSpace range() const
Range space of this operator.
Teuchos::RCP< const BlockReorderManager > getReorderManager() const
Get accessor to make reuse easier.
virtual VectorSpace domain() const
Domain space of this operator.
A virtual class that simplifies the construction of custom operators.
virtual void implicitApply(const MultiVector &x, MultiVector &y, const double alpha=1.0, const double beta=0.0) const
Perform a matrix vector multiply with this implicitly defined blocked operator.
Teko::ModifiableLinearOp getBlockedOp() const
Get accessor to make reuse easier.
This class takes a blocked linear op and represents it in a flattened form.