52 #ifndef __Teko_LU2x2InverseOp_hpp__
53 #define __Teko_LU2x2InverseOp_hpp__
56 #include "Teko_BlockImplicitLinearOp.hpp"
114 const LinearOp & invA00,
115 const LinearOp & invS);
129 const LinearOp & hatInvA00,
130 const LinearOp & tildeInvA00,
131 const LinearOp & invS);
154 virtual void implicitApply(
const BlockedMultiVector & x, BlockedMultiVector & y,
155 const double alpha = 1.0,
const double beta = 0.0)
const;
158 virtual void describe(Teuchos::FancyOStream & out_arg,
159 const Teuchos::EVerbosityLevel verbLevel)
const;
165 const BlockedLinearOp
A_;
215 inline LinearOp
createLU2x2InverseOp(BlockedLinearOp & A,LinearOp & invA00,LinearOp & invS,
const std::string & str)
217 Teuchos::RCP<Thyra::LinearOpBase<double> > result = Teuchos::rcp(
new LU2x2InverseOp(A,invA00,invS));
218 result->setObjectLabel(str);
237 inline LinearOp
createLU2x2InverseOp(BlockedLinearOp & A,LinearOp & hatInvA00,LinearOp & tildeInvA00,LinearOp & invS)
239 return Teuchos::rcp(
new LU2x2InverseOp(A,hatInvA00,tildeInvA00,invS));
257 inline LinearOp
createLU2x2InverseOp(BlockedLinearOp & A,LinearOp & hatInvA00,LinearOp & tildeInvA00,LinearOp & invS,
const std::string & str)
259 Teuchos::RCP<Thyra::LinearOpBase<double> > result = Teuchos::rcp(
new LU2x2InverseOp(A,hatInvA00,tildeInvA00,invS));
260 result->setObjectLabel(str);