42 #ifndef THYRA_LINEAR_OP_WITH_SOLVE_FACTORY_BASE_DECL_HPP 
   43 #define THYRA_LINEAR_OP_WITH_SOLVE_FACTORY_BASE_DECL_HPP 
   45 #include "Thyra_LinearOpWithSolveBase.hpp" 
   46 #include "Thyra_PreconditionerFactoryBase.hpp" 
   47 #include "Teuchos_ParameterListAcceptor.hpp" 
   48 #include "Teuchos_VerboseObject.hpp" 
  403 template<
class Scalar>
 
  443     const std::string &precFactoryName
 
  463     std::string *precFactoryName = NULL
 
  886 #endif // THYRA_LINEAR_OP_WITH_SOLVE_FACTORY_BASE_DECL_HPP 
How the output LOWSB object will be useded for solves in unspecified. 
 
Base class for all linear operators that can support a high-level solve operation. 
 
virtual void initializePreconditionedOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, const RCP< const PreconditionerBase< Scalar > > &prec, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse=SUPPORT_SOLVE_UNSPECIFIED) const 
Initialize a pre-created LinearOpWithSolveBase object given a "compatible" LinearOpBase object and an...
 
virtual void initializeOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse=SUPPORT_SOLVE_UNSPECIFIED) const =0
Initialize a pre-created LinearOpWithSolveBase object given a "compatible" LinearOpBase object...
 
virtual bool acceptsPreconditionerFactory() const 
Determines if *this accepts external preconditioner factories. 
 
Simple interface class to access a precreated preconditioner as one or more linear operators objects ...
 
virtual void unsetPreconditionerFactory(RCP< PreconditionerFactoryBase< Scalar > > *precFactory=NULL, std::string *precFactoryName=NULL)
Unset the preconditioner factory (if one is set). 
 
virtual void initializeAndReuseOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, LinearOpWithSolveBase< Scalar > *Op) const 
Initialize a pre-created LinearOpWithSolveBase object given a "compatible" LinearOpBase object but al...
 
virtual void initializeApproxPreconditionedOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, const RCP< const LinearOpSourceBase< Scalar > > &approxFwdOpSrc, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse=SUPPORT_SOLVE_UNSPECIFIED) const 
Initialize a pre-created LinearOpWithSolveBase object given a "compatible" forward LinearOpBase objec...
 
virtual RCP< LinearOpWithSolveBase< Scalar > > createOp() const =0
Create an (uninitialized) LinearOpWithSolveBase object to be initialized later in this->initializeOp(...
 
Factory interface for creating LinearOpWithSolveBase objects from compatible LinearOpBase objects...
 
Factory interface for creating preconditioner objects from LinearOpBase objects. 
 
Base interface for objects that can return a linear operator. 
 
ESupportSolveUse
Enum that specifies how a LinearOpWithSolveBase object will be used for solves after it is constructe...
 
virtual bool isCompatible(const LinearOpSourceBase< Scalar > &fwdOpSrc) const =0
Check that a LinearOpBase object is compatible with *this factory object. 
 
virtual void uninitializeOp(LinearOpWithSolveBase< Scalar > *Op, RCP< const LinearOpSourceBase< Scalar > > *fwdOpSrc=NULL, RCP< const PreconditionerBase< Scalar > > *prec=NULL, RCP< const LinearOpSourceBase< Scalar > > *approxFwdOpSrc=NULL, ESupportSolveUse *supportSolveUse=NULL) const =0
Uninitialize a LinearOpWithSolveBase object and return its remembered forward linear operator and pot...
 
EPreconditionerInputType
Enum defining the status of a preconditioner object. 
 
virtual bool supportsPreconditionerInputType(const EPreconditionerInputType precOpType) const 
Determines if *this supports given preconditioner type. 
 
virtual RCP< PreconditionerFactoryBase< Scalar > > getPreconditionerFactory() const 
Get a preconditioner factory object. 
 
virtual void setPreconditionerFactory(const RCP< PreconditionerFactoryBase< Scalar > > &precFactory, const std::string &precFactoryName)
Set a preconditioner factory object.