42 #ifndef THYRA_DELAYED_LINEAR_OP_WITH_SOLVE_FACTORY_HPP 
   43 #define THYRA_DELAYED_LINEAR_OP_WITH_SOLVE_FACTORY_HPP 
   46 #include "Thyra_DelayedLinearOpWithSolveFactory_decl.hpp" 
   47 #include "Thyra_LinearOpWithSolveBase.hpp" 
   48 #include "Thyra_DelayedLinearOpWithSolve.hpp" 
   57 template<
class Scalar>
 
   68 template<
class Scalar>
 
   76 template<
class Scalar>
 
   87 template<
class Scalar>
 
   90   std::ostringstream oss;
 
   95     oss << lowsf_->description();
 
  106 template<
class Scalar>
 
  111   lowsf_->setParameterList(paramList);
 
  115 template<
class Scalar>
 
  119   return lowsf_->getNonconstParameterList();
 
  123 template<
class Scalar>
 
  127   return lowsf_->unsetParameterList();
 
  131 template<
class Scalar>
 
  135   return lowsf_->getParameterList();
 
  139 template<
class Scalar>
 
  143   return lowsf_->getValidParameters();
 
  150 template<
class Scalar>
 
  153   return lowsf_->acceptsPreconditionerFactory();
 
  157 template<
class Scalar>
 
  160   const std::string &precFactoryName
 
  163   lowsf_->setPreconditionerFactory(precFactory,precFactoryName);
 
  167 template<
class Scalar>
 
  171   return lowsf_->getPreconditionerFactory();
 
  175 template<
class Scalar>
 
  181   lowsf_->unsetPreconditionerFactory(precFactory);
 
  185 template<
class Scalar>
 
  190   return lowsf_->isCompatible(fwdOpSrc);
 
  194 template<
class Scalar>
 
  200   dlows->setVerbLevel(this->getVerbLevel());
 
  201   dlows->setOStream(this->getOStream());
 
  206 template<
class Scalar>
 
  220   dlows.
initialize( fwdOpSrc, null, null, supportSolveUse, lowsf_ );
 
  224 template<
class Scalar>
 
  234 template<
class Scalar>
 
  267 template<
class Scalar>
 
  272   return lowsf_->supportsPreconditionerInputType(precOpType);
 
  276 template<
class Scalar>
 
  291   dlows.
initialize( fwdOpSrc, prec, null, supportSolveUse, lowsf_ );
 
  295 template<
class Scalar>
 
  310   dlows.
initialize( fwdOpSrc, null, approxFwdOpSrc, supportSolveUse, lowsf_ );
 
  317 template<
class Scalar>
 
  320   lowsf_->setVerbLevel(this->getVerbLevel());
 
  321   lowsf_->setOStream(this->getOStream());
 
  328 #endif // THYRA_DELAYED_LINEAR_OP_WITH_SOLVE_FACTORY_HPP 
RCP< const PreconditionerBase< Scalar > > getPrec() const 
virtual bool acceptsPreconditionerFactory() const 
Base class for all linear operators that can support a high-level solve operation. 
bool is_null(const boost::shared_ptr< T > &p)
virtual bool supportsPreconditionerInputType(const EPreconditionerInputType precOpType) const 
virtual bool isCompatible(const LinearOpSourceBase< Scalar > &fwdOpSrc) const 
virtual RCP< LinearOpWithSolveBase< Scalar > > createOp() const 
virtual RCP< PreconditionerFactoryBase< Scalar > > getPreconditionerFactory() const 
virtual void setPreconditionerFactory(const RCP< PreconditionerFactoryBase< Scalar > > &precFactory, const std::string &precFactoryName)
virtual void initializeApproxPreconditionedOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, const RCP< const LinearOpSourceBase< Scalar > > &approxFwdOpSrc, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const 
T_To & dyn_cast(T_From &from)
virtual void unsetPreconditionerFactory(RCP< PreconditionerFactoryBase< Scalar > > *precFactory, std::string *precFactoryName)
Simple interface class to access a precreated preconditioner as one or more linear operators objects ...
std::string description() const 
virtual void initializePreconditionedOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, const RCP< const PreconditionerBase< Scalar > > &prec, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const 
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
RCP< const LinearOpSourceBase< Scalar > > getFwdOpSrc() const 
Factory interface for creating LinearOpWithSolveBase objects from compatible LinearOpBase objects...
RCP< ParameterList > getNonconstParameterList()
virtual void initializeOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const 
RCP< const ParameterList > getParameterList() const 
virtual std::string description() const 
void initialize(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, const RCP< const PreconditionerBase< Scalar > > &prec, const RCP< const LinearOpSourceBase< Scalar > > &approxFwdOpSrc, const ESupportSolveUse supportSolveUse, const RCP< LinearOpWithSolveFactoryBase< Scalar > > &lowsf)
Factory interface for creating preconditioner objects from LinearOpBase objects. 
RCP< const ParameterList > getValidParameters() const 
ESupportSolveUse getSupportSolveUse() const 
Base interface for objects that can return a linear operator. 
RCP< const LinearOpSourceBase< Scalar > > getApproxFwdOpSrc() const 
General delayed construction LinearOpWithSolveFactoryBase subclass. 
ESupportSolveUse
Enum that specifies how a LinearOpWithSolveBase object will be used for solves after it is constructe...
void informUpdatedVerbosityState() const 
Overridden from Teuchos::VerboseObjectBase. 
RCP< LinearOpWithSolveFactoryBase< Scalar > > getUnderlyingLOWSF()
virtual void initializeAndReuseOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, LinearOpWithSolveBase< Scalar > *Op) const 
EPreconditionerInputType
Enum defining the status of a preconditioner object. 
void setParameterList(RCP< ParameterList > const ¶mList)
virtual void uninitializeOp(LinearOpWithSolveBase< Scalar > *Op, RCP< const LinearOpSourceBase< Scalar > > *fwdOpSrc, RCP< const PreconditionerBase< Scalar > > *prec, RCP< const LinearOpSourceBase< Scalar > > *approxFwdOpSrc, ESupportSolveUse *supportSolveUse) const 
RCP< ParameterList > unsetParameterList()
Delayed linear solver construction LinearOpWithSolveBase decorator class. 
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)