10#ifndef THYRA_DELAYED_LINEAR_OP_WITH_SOLVE_FACTORY_HPP 
   11#define THYRA_DELAYED_LINEAR_OP_WITH_SOLVE_FACTORY_HPP 
   14#include "Thyra_DelayedLinearOpWithSolveFactory_decl.hpp" 
   15#include "Thyra_LinearOpWithSolveBase.hpp" 
   16#include "Thyra_DelayedLinearOpWithSolve.hpp" 
   58  std::ostringstream oss;
 
   63    oss << lowsf_->description();
 
 
   79  lowsf_->setParameterList(paramList);
 
 
   87  return lowsf_->getNonconstParameterList();
 
 
   95  return lowsf_->unsetParameterList();
 
 
  103  return lowsf_->getParameterList();
 
 
  107template<
class Scalar>
 
  111  return lowsf_->getValidParameters();
 
 
  118template<
class Scalar>
 
  121  return lowsf_->acceptsPreconditionerFactory();
 
 
  125template<
class Scalar>
 
  128  const std::string &precFactoryName
 
  131  lowsf_->setPreconditionerFactory(precFactory,precFactoryName);
 
 
  135template<
class Scalar>
 
  139  return lowsf_->getPreconditionerFactory();
 
 
  143template<
class Scalar>
 
  149  lowsf_->unsetPreconditionerFactory(precFactory);
 
 
  153template<
class Scalar>
 
  158  return lowsf_->isCompatible(fwdOpSrc);
 
 
  162template<
class Scalar>
 
  168  dlows->setVerbLevel(this->getVerbLevel());
 
  169  dlows->setOStream(this->getOStream());
 
 
  174template<
class Scalar>
 
  188  dlows.
initialize( fwdOpSrc, null, null, supportSolveUse, lowsf_ );
 
 
  192template<
class Scalar>
 
  202template<
class Scalar>
 
  219    &dlows = dyn_cast<DelayedLinearOpWithSolve<Scalar> >(*Op);
 
 
  235template<
class Scalar>
 
  240  return lowsf_->supportsPreconditionerInputType(precOpType);
 
 
  244template<
class Scalar>
 
  259  dlows.
initialize( fwdOpSrc, prec, null, supportSolveUse, lowsf_ );
 
 
  263template<
class Scalar>
 
  278  dlows.
initialize( fwdOpSrc, null, approxFwdOpSrc, supportSolveUse, lowsf_ );
 
 
  285template<
class Scalar>
 
  288  lowsf_->setVerbLevel(this->getVerbLevel());
 
  289  lowsf_->setOStream(this->getOStream());
 
 
virtual std::string description() const
 
General delayed construction LinearOpWithSolveFactoryBase subclass.
 
void setParameterList(RCP< ParameterList > const ¶mList)
 
virtual void initializeApproxPreconditionedOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, const RCP< const LinearOpSourceBase< Scalar > > &approxFwdOpSrc, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const
 
virtual bool acceptsPreconditionerFactory() const
 
RCP< const ParameterList > getValidParameters() const
 
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< const ParameterList > getParameterList() const
 
virtual RCP< LinearOpWithSolveBase< Scalar > > createOp() const
 
virtual void initializeAndReuseOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, LinearOpWithSolveBase< Scalar > *Op) const
 
std::string description() const
 
RCP< ParameterList > unsetParameterList()
 
virtual bool supportsPreconditionerInputType(const EPreconditionerInputType precOpType) const
 
void informUpdatedVerbosityState() const
Overridden from Teuchos::VerboseObjectBase.
 
virtual void initializePreconditionedOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, const RCP< const PreconditionerBase< Scalar > > &prec, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const
 
virtual RCP< PreconditionerFactoryBase< Scalar > > getPreconditionerFactory() const
 
virtual void unsetPreconditionerFactory(RCP< PreconditionerFactoryBase< Scalar > > *precFactory, std::string *precFactoryName)
 
RCP< LinearOpWithSolveFactoryBase< Scalar > > getUnderlyingLOWSF()
 
RCP< ParameterList > getNonconstParameterList()
 
virtual bool isCompatible(const LinearOpSourceBase< Scalar > &fwdOpSrc) const
 
virtual void setPreconditionerFactory(const RCP< PreconditionerFactoryBase< Scalar > > &precFactory, const std::string &precFactoryName)
 
virtual void initializeOp(const RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const
 
Delayed linear solver construction LinearOpWithSolveBase decorator class.
 
ESupportSolveUse getSupportSolveUse() 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)
 
RCP< const LinearOpSourceBase< Scalar > > getFwdOpSrc() const
 
RCP< const PreconditionerBase< Scalar > > getPrec() const
 
RCP< const LinearOpSourceBase< Scalar > > getApproxFwdOpSrc() const
 
Base interface for objects that can return a linear operator.
 
Base class for all linear operators that can support a high-level solve operation.
 
Factory interface for creating LinearOpWithSolveBase objects from compatible LinearOpBase objects.
 
Simple interface class to access a precreated preconditioner as one or more linear operators objects ...
 
Factory interface for creating preconditioner objects from LinearOpBase objects.
 
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)
 
EPreconditionerInputType
Enum defining the status of a preconditioner object.
 
ESupportSolveUse
Enum that specifies how a LinearOpWithSolveBase object will be used for solves after it is constructe...
 
T_To & dyn_cast(T_From &from)
 
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)