47 #ifndef __Teko_NeumannSeriesPreconditionerFactoryDecl_hpp__
48 #define __Teko_NeumannSeriesPreconditionerFactoryDecl_hpp__
50 #include "Teuchos_ParameterListAcceptor.hpp"
53 #include "Thyra_PreconditionerFactoryBase.hpp"
62 template <
typename ScalarT>
63 class NeumannSeriesPreconditionerFactory
64 :
public virtual Thyra::PreconditionerFactoryBase<ScalarT> {
66 NeumannSeriesPreconditionerFactory();
69 bool isCompatible(
const Thyra::LinearOpSourceBase<ScalarT> &fwdOpSrc)
const;
72 RCP<Thyra::PreconditionerBase<ScalarT> > createPrec()
const;
84 void initializePrec(
const RCP<
const Thyra::LinearOpSourceBase<ScalarT> > &fwdOpSrc,
85 const RCP<
const Thyra::MultiVectorBase<ScalarT> > &solnVec,
86 Thyra::PreconditionerBase<ScalarT> *precOp,
87 const Thyra::ESupportSolveUse supportSolveUse)
const;
97 void initializePrec(
const RCP<
const Thyra::LinearOpSourceBase<ScalarT> > &fwdOpSrc,
98 Thyra::PreconditionerBase<ScalarT> *precOp,
99 const Thyra::ESupportSolveUse supportSolveUse)
const;
102 void uninitializePrec(Thyra::PreconditionerBase<ScalarT> *prec,
103 RCP<
const Thyra::LinearOpSourceBase<ScalarT> > *fwdOpSrc,
104 Thyra::ESupportSolveUse *supportSolveUse)
const;
110 void setParameterList(Teuchos::RCP<Teuchos::ParameterList>
const ¶mList);
113 Teuchos::RCP<Teuchos::ParameterList> getNonconstParameterList();
116 Teuchos::RCP<Teuchos::ParameterList> unsetParameterList();
119 Teuchos::RCP<const Teuchos::ParameterList> getParameterList()
const;
122 Teuchos::RCP<const Teuchos::ParameterList> getValidParameters()
const;
129 std::string description()
const;
135 Teuchos::RCP<Teuchos::ParameterList> paramList_;
138 Teko::DiagonalType scalingType_;