47 #ifndef __Teko_Preconditioner_hpp__
48 #define __Teko_Preconditioner_hpp__
51 #include "Thyra_DefaultPreconditioner.hpp"
55 #include "Teko_PreconditionerState.hpp"
59 using Thyra::LinearOpBase;
60 using Thyra::DefaultPreconditioner;
75 : DefaultPreconditioner<double>() {}
77 const RCP<LinearOpBase<double> > & rightPrecOp)
78 : DefaultPreconditioner<double>(leftPrecOp,rightPrecOp) {}
79 Preconditioner(
const RCP<
const LinearOpBase<double> > & leftPrecOp,
80 const RCP<
const LinearOpBase<double> > & rightPrecOp)
81 : DefaultPreconditioner<double>(leftPrecOp,rightPrecOp) {}
82 Preconditioner(
const RCP<LinearOpBase<double> > & unspecifiedPrecOp)
83 : DefaultPreconditioner<double>(unspecifiedPrecOp) {}
84 Preconditioner(
const RCP<
const LinearOpBase<double> > & unspecifiedPrecOp)
85 : DefaultPreconditioner<double>(unspecifiedPrecOp) {}
93 {
if(srcVec!=Teuchos::null)
state_->setSourceVector(srcVec);
94 else 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.