10 #ifndef __Teko_NeumannSeriesPreconditionerFactoryDecl_hpp__
11 #define __Teko_NeumannSeriesPreconditionerFactoryDecl_hpp__
13 #include "Teuchos_ParameterListAcceptor.hpp"
16 #include "Thyra_PreconditionerFactoryBase.hpp"
25 template <
typename ScalarT>
26 class NeumannSeriesPreconditionerFactory
27 :
public virtual Thyra::PreconditionerFactoryBase<ScalarT> {
29 NeumannSeriesPreconditionerFactory();
32 bool isCompatible(
const Thyra::LinearOpSourceBase<ScalarT> &fwdOpSrc)
const;
35 RCP<Thyra::PreconditionerBase<ScalarT> > createPrec()
const;
47 void initializePrec(
const RCP<
const Thyra::LinearOpSourceBase<ScalarT> > &fwdOpSrc,
48 const RCP<
const Thyra::MultiVectorBase<ScalarT> > &solnVec,
49 Thyra::PreconditionerBase<ScalarT> *precOp,
50 const Thyra::ESupportSolveUse supportSolveUse)
const;
60 void initializePrec(
const RCP<
const Thyra::LinearOpSourceBase<ScalarT> > &fwdOpSrc,
61 Thyra::PreconditionerBase<ScalarT> *precOp,
62 const Thyra::ESupportSolveUse supportSolveUse)
const;
65 void uninitializePrec(Thyra::PreconditionerBase<ScalarT> *prec,
66 RCP<
const Thyra::LinearOpSourceBase<ScalarT> > *fwdOpSrc,
67 Thyra::ESupportSolveUse *supportSolveUse)
const;
73 void setParameterList(Teuchos::RCP<Teuchos::ParameterList>
const ¶mList);
76 Teuchos::RCP<Teuchos::ParameterList> getNonconstParameterList();
79 Teuchos::RCP<Teuchos::ParameterList> unsetParameterList();
82 Teuchos::RCP<const Teuchos::ParameterList> getParameterList()
const;
85 Teuchos::RCP<const Teuchos::ParameterList> getValidParameters()
const;
92 std::string description()
const;
98 Teuchos::RCP<Teuchos::ParameterList> paramList_;
101 Teko::DiagonalType scalingType_;