10 #ifndef THYRA_BELOS_LINEAR_OP_WITH_SOLVE_DECL_HPP 
   11 #define THYRA_BELOS_LINEAR_OP_WITH_SOLVE_DECL_HPP 
   13 #include "Thyra_LinearOpWithSolveBase.hpp" 
   14 #include "Thyra_LinearOpSourceBase.hpp" 
   15 #include "BelosSolverManager.hpp" 
   30 template<
class Scalar>
 
   39   typedef MultiVectorBase<Scalar>    
MV_t;
 
   41   typedef LinearOpBase<Scalar>       
LO_t;
 
   91     const RCP<Belos::LinearProblem<Scalar,MV_t,LO_t> > &lp,
 
   93     const RCP<Belos::SolverManager<Scalar,MV_t,LO_t> > &iterativeSolver,
 
   94     const RCP<
const LinearOpSourceBase<Scalar> > &fwdOpSrc,
 
   95     const RCP<
const PreconditionerBase<Scalar> > &prec,
 
   97     const RCP<
const LinearOpSourceBase<Scalar> > &approxFwdOpSrc,
 
   99     const int convergenceTestFrequency
 
  122     RCP<Belos::LinearProblem<Scalar,MV_t,LO_t> > *lp = NULL,
 
  124     RCP<Belos::SolverManager<Scalar,MV_t,LO_t> > *iterativeSolver = NULL,
 
  125     RCP<
const LinearOpSourceBase<Scalar> > *fwdOpSrc = NULL,
 
  126     RCP<
const PreconditionerBase<Scalar> > *prec = NULL,
 
  128     RCP<
const LinearOpSourceBase<Scalar> > *approxFwdOpSrc = NULL,
 
  179     const EOpTransp M_trans,
 
  180     const MultiVectorBase<Scalar> &X,
 
  181     const Ptr<MultiVectorBase<Scalar> > &Y,
 
  193     const Ptr<
const SolveCriteria<Scalar> > solveCriteria) 
const;
 
  196     EOpTransp M_trans, 
const SolveMeasureType& solveMeasureType
 
  200     const EOpTransp transp,
 
  201     const MultiVectorBase<Scalar> &
B,
 
  202     const Ptr<MultiVectorBase<Scalar> > &X,
 
  203     const Ptr<
const SolveCriteria<Scalar> > solveCriteria
 
  237 #endif  // THYRA_BELOS_LINEAR_OP_WITH_SOLVE_DECL_HPP 
virtual bool solveSupportsImpl(EOpTransp M_trans) const 
 
RCP< const VectorSpaceBase< Scalar > > domain() const 
 
RCP< Belos::LinearProblem< Scalar, MV_t, LO_t > > lp_
 
RCP< const Teuchos::ParameterList > getValidParameters() const 
 
virtual SolveStatus< Scalar > solveImpl(const EOpTransp transp, const MultiVectorBase< Scalar > &B, const Ptr< MultiVectorBase< Scalar > > &X, const Ptr< const SolveCriteria< Scalar > > solveCriteria) const 
 
RCP< const LinearOpSourceBase< Scalar > > extract_approxFwdOpSrc()
 
int convergenceTestFrequency_
 
void initialize(const RCP< Belos::LinearProblem< Scalar, MV_t, LO_t > > &lp, const RCP< Teuchos::ParameterList > &solverPL, const RCP< Belos::SolverManager< Scalar, MV_t, LO_t > > &iterativeSolver, const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, const RCP< const PreconditionerBase< Scalar > > &prec, const bool isExternalPrec, const RCP< const LinearOpSourceBase< Scalar > > &approxFwdOpSrc, const ESupportSolveUse &supportSolveUse, const int convergenceTestFrequency)
Initializes given precreated solver objects. 
 
Concrete LinearOpWithSolveBase subclass in terms of Belos. 
 
RCP< const PreconditionerBase< Scalar > > extract_prec()
 
virtual bool solveSupportsNewImpl(EOpTransp transp, const Ptr< const SolveCriteria< Scalar > > solveCriteria) const 
 
RCP< const PreconditionerBase< Scalar > > prec_
 
RCP< const VectorSpaceBase< Scalar > > range() const 
 
RCP< Teuchos::ParameterList > solverPL_
 
virtual void applyImpl(const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const 
 
void setParameterList(RCP< Teuchos::ParameterList > const ¶mList)
 
bool isExternalPrec() const 
 
Thyra specializations of MultiVecTraits and OperatorTraits. 
 
ESupportSolveUse supportSolveUse_
 
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const 
 
LinearOpBase< Scalar > LO_t
 
std::string description() const 
 
ESupportSolveUse supportSolveUse() const 
 
RCP< const LinearOpSourceBase< Scalar > > extract_fwdOpSrc()
 
void assertInitialized() const 
 
Teuchos::ScalarTraits< Scalar >::magnitudeType defaultTol_
 
BelosLinearOpWithSolve()
Construct to unintialize. 
 
MultiVectorBase< Scalar > MV_t
 
void uninitialize(RCP< Belos::LinearProblem< Scalar, MV_t, LO_t > > *lp=NULL, RCP< Teuchos::ParameterList > *solverPL=NULL, RCP< Belos::SolverManager< Scalar, MV_t, LO_t > > *iterativeSolver=NULL, RCP< const LinearOpSourceBase< Scalar > > *fwdOpSrc=NULL, RCP< const PreconditionerBase< Scalar > > *prec=NULL, bool *isExternalPrec=NULL, RCP< const LinearOpSourceBase< Scalar > > *approxFwdOpSrc=NULL, ESupportSolveUse *supportSolveUse=NULL)
Uninitializes and returns stored quantities. 
 
RCP< const LinearOpSourceBase< Scalar > > approxFwdOpSrc_
 
RCP< const LinearOpBase< Scalar > > clone() const 
 
RCP< const Teuchos::ParameterList > getParameterList() const 
 
RCP< Teuchos::ParameterList > unsetParameterList()
 
virtual bool opSupportedImpl(EOpTransp M_trans) const 
 
virtual bool solveSupportsSolveMeasureTypeImpl(EOpTransp M_trans, const SolveMeasureType &solveMeasureType) const 
 
RCP< const LinearOpSourceBase< Scalar > > fwdOpSrc_
 
RCP< Teuchos::ParameterList > getNonconstParameterList()
 
RCP< Belos::SolverManager< Scalar, MV_t, LO_t > > iterativeSolver_