47 #ifndef __Teko_BlockUpperTriInverseOp_hpp__
48 #define __Teko_BlockUpperTriInverseOp_hpp__
51 #include "Teko_BlockImplicitLinearOp.hpp"
97 virtual void implicitApply(
const BlockedMultiVector & x, BlockedMultiVector & y,
98 const double alpha = 1.0,
const double beta = 0.0)
const;
114 const BlockedMultiVector & x, BlockedMultiVector & y,
115 const double alpha = 1.0,
const double beta = 0.0)
const;
118 virtual void describe(Teuchos::FancyOStream &out_arg,
119 const Teuchos::EVerbosityLevel verbLevel)
const;
123 const BlockedLinearOp
U_;
130 mutable BlockedMultiVector srcScrap_;
131 mutable BlockedMultiVector dstScrap_;
139 inline LinearOp createBlockUpperTriInverseOp(BlockedLinearOp & U,
const std::vector<LinearOp> & invDiag)
144 inline LinearOp createBlockUpperTriInverseOp(BlockedLinearOp & U,
const std::vector<LinearOp> & invDiag,
const std::string & str)
146 Teuchos::RCP<Thyra::LinearOpBase<double> > result = Teuchos::rcp(
new BlockUpperTriInverseOp(U,invDiag));
147 result->setObjectLabel(str);