47 #ifndef __Teko_Preconditioner_hpp__
48 #define __Teko_Preconditioner_hpp__
51 #include "Thyra_DefaultPreconditioner.hpp"
55 #include "Teko_PreconditionerState.hpp"
60 using Thyra::DefaultPreconditioner;
61 using Thyra::LinearOpBase;
76 const RCP<LinearOpBase<double> >& rightPrecOp)
77 : DefaultPreconditioner<double>(leftPrecOp, rightPrecOp) {}
79 const RCP<
const LinearOpBase<double> >& rightPrecOp)
80 : DefaultPreconditioner<double>(leftPrecOp, rightPrecOp) {}
81 Preconditioner(
const RCP<LinearOpBase<double> >& unspecifiedPrecOp)
82 : DefaultPreconditioner<double>(unspecifiedPrecOp) {}
83 Preconditioner(
const RCP<
const LinearOpBase<double> >& unspecifiedPrecOp)
84 : DefaultPreconditioner<double>(unspecifiedPrecOp) {}
91 virtual void setSourceVector(
const RCP<Thyra::MultiVectorBase<double> >& srcVec) {
92 if (srcVec != Teuchos::null)
93 state_->setSourceVector(srcVec);
95 state_->setSourceVector(Teuchos::null);
virtual const RCP< PreconditionerState > getStateObject()
virtual void mergeStateObject(const PreconditionerState &state)
virtual const RCP< const PreconditionerState > getStateObject() const
virtual void setSourceVector(const RCP< Thyra::MultiVectorBase< double > > &srcVec)
virtual void setStateObject(const RCP< PreconditionerState > &state)
An extension of the Thyra::DefaultPreconditioner class with some specializations useful for use withi...
RCP< PreconditionerState > state_
User defined state for this preconditioner.
An implementation of a state object preconditioners.