47 #ifndef __Teko_ReorderedLinearOp_hpp__
48 #define __Teko_ReorderedLinearOp_hpp__
51 #include "Teko_ImplicitLinearOp.hpp"
52 #include "Teko_BlockedReordering.hpp"
62 const Teuchos::RCP<Thyra::LinearOpBase<double> > & blockedOp);
70 {
return blockedOp_; }
73 virtual VectorSpace
range()
const;
76 virtual VectorSpace
domain()
const;
91 virtual void implicitApply(
const MultiVector & x, MultiVector & y,
92 const double alpha = 1.0,
const double beta = 0.0)
const;
94 virtual void describe(Teuchos::FancyOStream &out_arg,
95 const Teuchos::EVerbosityLevel verbLevel)
const;
100 Teuchos::RCP<const BlockReorderManager> mgr_;
101 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.