34 StratimikosFactory(
const Teuchos::RCP<Stratimikos::DefaultLinearSolverBuilder> & builder,
35 const Teuchos::RCP<Teko::RequestHandler> & rh);
37#ifdef TEKO_HAVE_EPETRA
46 STANDARD_COMPOSITION_MEMBERS(
47 Thyra::EpetraOperatorViewExtractorBase, epetraFwdOpViewExtractor );
56 bool isCompatible(
const Thyra::LinearOpSourceBase<double> &fwdOp )
const;
62 Teuchos::RCP<Thyra::PreconditionerBase<double> >
createPrec()
const;
65 const Teuchos::RCP<
const Thyra::LinearOpSourceBase<double> > &fwdOp,
66 Thyra::PreconditionerBase<double> *prec,
67 const Thyra::ESupportSolveUse supportSolveUse
71 Thyra::PreconditionerBase<double> *prec
72 ,Teuchos::RCP<
const Thyra::LinearOpSourceBase<double> > *fwdOp
73 ,Thyra::ESupportSolveUse *supportSolveUse
83 Teuchos::RCP<Teuchos::ParameterList>
const& paramList);
107 const Teuchos::RCP<
const Thyra::LinearOpSourceBase<double> > &fwdOp,
108 Thyra::PreconditionerBase<double> *prec,
109 const Thyra::ESupportSolveUse supportSolveUse
112#ifdef TEKO_HAVE_EPETRA
115 void initializePrec_Epetra(
116 const Teuchos::RCP<
const Thyra::LinearOpSourceBase<double> > &fwdOp,
117 Thyra::PreconditionerBase<double> *prec,
118 const Thyra::ESupportSolveUse supportSolveUse
125 { reqHandler_ = rh; }
130 {
return reqHandler_; }
138#ifdef TEKO_HAVE_EPETRA
151 Teuchos::RCP<Epetra_Operator> buildWrappedEpetraOperator(
152 const Teuchos::RCP<const Epetra_Operator> & Jac,
153 const Teuchos::RCP<Epetra_Operator> & wrapInput,
154 std::ostream & out)
const;
164 void buildStridedVectors(
const Epetra_Operator & Jac,
165 const std::vector<int> & decomp,
166 std::vector<std::vector<int> > & vars)
const;
169 Teuchos::RCP<Teuchos::ParameterList> paramList_;
171 mutable Teuchos::RCP<Teko::InverseLibrary> invLib_;
172 mutable Teuchos::RCP<Teko::InverseFactory> invFactory_;
173 Teuchos::RCP<Teko::RequestHandler> reqHandler_;
174 mutable std::vector<int> decomp_;
175 Teuchos::RCP<Stratimikos::DefaultLinearSolverBuilder> builder_;