10 #ifndef Thyra_MultiVectorPreconditioner_hpp
11 #define Thyra_MultiVectorPreconditioner_hpp
13 #include "Thyra_PreconditionerBase.hpp"
14 #include "Teuchos_ConstNonconstObjectContainer.hpp"
16 #include "Thyra_DefaultMultiVectorProductVectorSpace.hpp"
23 template <
class Scalar>
86 return nonconstMultiVectorLinearOp(
104 return nonconstMultiVectorLinearOp(
122 return nonconstMultiVectorLinearOp(
164 multiVecDomain->numBlocks());
168 (void)multiVecDomain;
177 template <
class Scalar>
187 template <
class Scalar>
195 RCP<MultiVectorPreconditioner<Scalar> > mvprec =
197 mvprec->nonconstInitialize(prec, multiVecRange, multiVecDomain);
205 template <
class Scalar>
213 RCP<MultiVectorPreconditioner<Scalar> > mvprec =
215 mvprec->initialize(prec, multiVecRange, multiVecDomain);
Teuchos::RCP< LinearOpBase< Scalar > > getNonconstLeftPrecOp()
bool is_null(const boost::shared_ptr< T > &p)
RCP< PreconditionerBase< Scalar > > getNonconstPreconditioner()
bool isUnspecifiedPrecOpConst() const
void nonconstInitialize(const RCP< PreconditionerBase< Scalar > > &prec, const RCP< const DefaultMultiVectorProductVectorSpace< Scalar > > &multiVecRange, const RCP< const DefaultMultiVectorProductVectorSpace< Scalar > > &multiVecDomain)
Teuchos::RCP< const LinearOpBase< Scalar > > getLeftPrecOp() const
RCP< MultiVectorPreconditioner< Scalar > > multiVectorPreconditioner()
Nonmember constructor function.
RCP< const PreconditionerBase< Scalar > > getPreconditioner() const
bool isRightPrecOpConst() const
Teuchos::ConstNonconstObjectContainer< PreconditionerBase< Scalar > > CNPB
RCP< MultiVectorPreconditioner< Scalar > > nonconstMultiVectorPreconditioner(const RCP< PreconditionerBase< Scalar > > &prec, const RCP< const DefaultMultiVectorProductVectorSpace< Scalar > > &multiVecRange, const RCP< const DefaultMultiVectorProductVectorSpace< Scalar > > &multiVecDomain)
Nonmember constructor function.
Teuchos::RCP< const LinearOpBase< Scalar > > getRightPrecOp() const
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
static void validateInitialize(const RCP< const PreconditionerBase< Scalar > > &prec, const RCP< const DefaultMultiVectorProductVectorSpace< Scalar > > &multiVecRange, const RCP< const DefaultMultiVectorProductVectorSpace< Scalar > > &multiVecDomain)
RCP< const ObjType > getConstObj() const
RCP< const DefaultMultiVectorProductVectorSpace< Scalar > > multiVecRange_
Teuchos::RCP< LinearOpBase< Scalar > > getNonconstRightPrecOp()
RCP< MultiVectorPreconditioner< Scalar > > multiVectorPreconditioner(const RCP< const PreconditionerBase< Scalar > > &prec, const RCP< const DefaultMultiVectorProductVectorSpace< Scalar > > &multiVecRange, const RCP< const DefaultMultiVectorProductVectorSpace< Scalar > > &multiVecDomain)
Nonmember constructor function.
RCP< const DefaultMultiVectorProductVectorSpace< Scalar > > multiVecDomain_
Teuchos::RCP< const LinearOpBase< Scalar > > getUnspecifiedPrecOp() const
Teuchos::RCP< LinearOpBase< Scalar > > getNonconstUnspecifiedPrecOp()
Concrete PreconditionerBase subclass that wraps a preconditioner operator in MultiVectorLinearOp.
MultiVectorPreconditioner()
Construct to uninitialized.
RCP< ObjType > getNonconstObj() const
void initialize(const RCP< const PreconditionerBase< Scalar > > &prec, const RCP< const DefaultMultiVectorProductVectorSpace< Scalar > > &multiVecRange, const RCP< const DefaultMultiVectorProductVectorSpace< Scalar > > &multiVecDomain)
bool isLeftPrecOpConst() const
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)