59 const int fwdDefaultMaxIterations = 400,
60 const double fwdDefaultTol = 1e-6,
61 const int adjDefaultMaxIterations = 400,
62 const double adjDefaultTol = 1e-6,
63 const bool outputEveryRhs =
false
151 const RCP<
const LinearOpBase<double> > &fwdOp,
152 const RCP<
const LinearOpSourceBase<double> > &fwdOpSrc,
153 const RCP<
const PreconditionerBase<double> > &prec,
155 const RCP<
const LinearOpSourceBase<double> > &approxFwdOpSrc,
156 const RCP<AztecOO> &aztecFwdSolver,
157 const bool allowInexactFwdSolve =
false,
158 const RCP<AztecOO> &aztecAdjSolver = Teuchos::null,
159 const bool allowInexactAdjSolve =
false,
160 const double aztecSolverScalar = 1.0
184 RCP<
const LinearOpBase<double> > *fwdOp = NULL,
185 RCP<
const LinearOpSourceBase<double> > *fwdOpSrc = NULL,
186 RCP<
const PreconditionerBase<double> > *prec = NULL,
188 RCP<
const LinearOpSourceBase<double> > *approxFwdOpSrc = NULL,
189 RCP<AztecOO> *aztecFwdSolver = NULL,
190 bool *allowInexactFwdSolve = NULL,
191 RCP<AztecOO> *aztecAdjSolver = NULL,
192 bool *allowInexactAdjSolve = NULL,
193 double *aztecSolverScalar = NULL
201 RCP< const VectorSpaceBase<double> >
range()
const;
203 RCP< const VectorSpaceBase<double> >
domain()
const;
205 RCP<const LinearOpBase<double> >
clone()
const;
214 Teuchos::FancyOStream &out,
215 const Teuchos::EVerbosityLevel verbLevel
227 const EOpTransp M_trans,
228 const MultiVectorBase<double> &X,
229 const Ptr<MultiVectorBase<double> > &Y,
241 EOpTransp M_trans,
const SolveMeasureType& solveMeasureType
245 const EOpTransp M_trans,
246 const MultiVectorBase<double> &B,
247 const Ptr<MultiVectorBase<double> > &X,
248 const Ptr<
const SolveCriteria<double> > solveCriteria
254 RCP<const LinearOpBase<double> > fwdOp_;
255 RCP<const LinearOpSourceBase<double> > fwdOpSrc_;
256 RCP<const PreconditionerBase<double> > prec_;
257 bool isExternalPrec_;
258 RCP<const LinearOpSourceBase<double> > approxFwdOpSrc_;
259 RCP<AztecOO> aztecFwdSolver_;
260 bool allowInexactFwdSolve_;
261 RCP<AztecOO> aztecAdjSolver_;
262 bool allowInexactAdjSolve_;
263 double aztecSolverScalar_;
265 void assertInitialized()
const;
void initialize(const RCP< const LinearOpBase< double > > &fwdOp, const RCP< const LinearOpSourceBase< double > > &fwdOpSrc, const RCP< const PreconditionerBase< double > > &prec, const bool isExternalPrec, const RCP< const LinearOpSourceBase< double > > &approxFwdOpSrc, const RCP< AztecOO > &aztecFwdSolver, const bool allowInexactFwdSolve=false, const RCP< AztecOO > &aztecAdjSolver=Teuchos::null, const bool allowInexactAdjSolve=false, const double aztecSolverScalar=1.0)
Sets up this object.
void uninitialize(RCP< const LinearOpBase< double > > *fwdOp=NULL, RCP< const LinearOpSourceBase< double > > *fwdOpSrc=NULL, RCP< const PreconditionerBase< double > > *prec=NULL, bool *isExternalPrec=NULL, RCP< const LinearOpSourceBase< double > > *approxFwdOpSrc=NULL, RCP< AztecOO > *aztecFwdSolver=NULL, bool *allowInexactFwdSolve=NULL, RCP< AztecOO > *aztecAdjSolver=NULL, bool *allowInexactAdjSolve=NULL, double *aztecSolverScalar=NULL)
Uninitialize.