55 Teuchos::RCP<Teuchos::ParameterList>
const& paramList = Teuchos::null
76 const Teuchos::RCP<PreconditionerFactoryBase<double> > &precFactory,
77 const std::string &precFactoryName
83 Teuchos::RCP<PreconditionerFactoryBase<double> > *precFactory,
84 std::string *precFactoryName
87 bool isCompatible(
const LinearOpSourceBase<double> &fwdOpSrc )
const;
89 Teuchos::RCP<LinearOpWithSolveBase<double> >
createOp()
const;
92 const Teuchos::RCP<
const LinearOpSourceBase<double> > &fwdOpSrc,
93 LinearOpWithSolveBase<double> *Op,
94 const ESupportSolveUse supportSolveUse
98 const Teuchos::RCP<
const LinearOpSourceBase<double> > &fwdOpSrc,
99 LinearOpWithSolveBase<double> *Op
103 LinearOpWithSolveBase<double> *Op,
104 Teuchos::RCP<
const LinearOpSourceBase<double> > *fwdOpSrc,
105 Teuchos::RCP<
const PreconditionerBase<double> > *prec,
106 Teuchos::RCP<
const LinearOpSourceBase<double> > *approxFwdOpSrc,
107 ESupportSolveUse *supportSolveUse
113 const Teuchos::RCP<
const LinearOpSourceBase<double> > &fwdOpSrc,
114 const Teuchos::RCP<
const PreconditionerBase<double> > &prec,
115 LinearOpWithSolveBase<double> *Op,
116 const ESupportSolveUse supportSolveUse
120 const Teuchos::RCP<
const LinearOpSourceBase<double> > &fwdOpSrc,
121 const Teuchos::RCP<
const LinearOpSourceBase<double> > &approxFwdOpSrc,
122 LinearOpWithSolveBase<double> *Op,
123 const ESupportSolveUse supportSolveUse
131 void setParameterList(Teuchos::RCP<Teuchos::ParameterList>
const& paramList);
156 Teuchos::RCP<PreconditionerFactoryBase<double> > precFactory_;
157 std::string precFactoryName_;
158 Teuchos::RCP<Teuchos::ParameterList> thisValidParamList_;
159 Teuchos::RCP<Teuchos::ParameterList> paramList_;
161 int defaultFwdMaxIterations_;
162 double defaultFwdTolerance_;
163 int defaultAdjMaxIterations_;
164 double defaultAdjTolerance_;
165 bool outputEveryRhs_;
172 static Teuchos::RCP<const Teuchos::ParameterList> generateAndGetValidParameters();
173 void updateThisValidParamList();
175 void initializeOp_impl(
176 const Teuchos::RCP<
const LinearOpSourceBase<double> > &fwdOpSrc,
177 const Teuchos::RCP<
const PreconditionerBase<double> > &prec,
178 const Teuchos::RCP<
const LinearOpSourceBase<double> > &approxFwdOpSrc,
179 const bool reusePrec,
180 LinearOpWithSolveBase<double> *Op