9 #ifndef Thyra_ReusePreconditionerFactory_hpp
10 #define Thyra_ReusePreconditionerFactory_hpp
12 #include "Thyra_PreconditionerFactoryBase.hpp"
19 template<
class Scalar>
21 :
virtual public PreconditionerFactoryBase<Scalar>
32 const RCP<PreconditionerBase<Scalar> > &prec
35 TEUCHOS_TEST_FOR_EXCEPT(is_null(prec));
40 RCP<PreconditionerBase<Scalar> >
43 RCP<const PreconditionerBase<Scalar> >
47 prec_ = Teuchos::null;
55 std::ostringstream oss;
56 oss << this->Teuchos::Describable::description()
60 oss <<
prec_->description();
93 return rcp(
new ParameterList);
110 const RCP<
const LinearOpSourceBase<Scalar> > &,
111 PreconditionerBase<Scalar> * ,
112 const ESupportSolveUse = SUPPORT_SOLVE_UNSPECIFIED
118 PreconditionerBase<Scalar> * ,
119 RCP<
const LinearOpSourceBase<Scalar> > *fwdOpSrc = NULL,
120 ESupportSolveUse *supportSolveUse = NULL
132 RCP< PreconditionerBase<Scalar> >
prec_;
140 template<
class Scalar>
141 RCP<ReusePreconditionerFactory<Scalar> >
151 template<
class Scalar>
152 RCP<ReusePreconditionerFactory<Scalar> >
154 const RCP<PreconditionerBase<Scalar> > &prec
157 RCP<ReusePreconditionerFactory<Scalar> >
159 fac->initialize(prec);
Concrete PreconditionerFactoryBase subclass that just returns an already created/initialized precondi...
RCP< const ParameterList > getParameterList() const
RCP< ReusePreconditionerFactory< Scalar > > reusePreconditionerFactory(const RCP< PreconditionerBase< Scalar > > &prec)
Nonmember constructor function.
void setParameterList(RCP< ParameterList > const &)
RCP< ParameterList > unsetParameterList()
ReusePreconditionerFactory()
Construct to uninitialized.
void initialize(const RCP< PreconditionerBase< Scalar > > &prec)
RCP< ParameterList > getNonconstParameterList()
RCP< const ParameterList > getValidParameters() const
void initializePrec(const RCP< const LinearOpSourceBase< Scalar > > &, PreconditionerBase< Scalar > *, const ESupportSolveUse=SUPPORT_SOLVE_UNSPECIFIED) const
RCP< ReusePreconditionerFactory< Scalar > > reusePreconditionerFactory()
Nonmember constructor function.
RCP< PreconditionerBase< Scalar > > getNonconstPreconditioner()
RCP< PreconditionerBase< Scalar > > createPrec() const
RCP< const PreconditionerBase< Scalar > > getPreconditioner() const
RCP< PreconditionerBase< Scalar > > prec_
bool isCompatible(const LinearOpSourceBase< Scalar > &) const
std::string description() const
void uninitializePrec(PreconditionerBase< Scalar > *, RCP< const LinearOpSourceBase< Scalar > > *fwdOpSrc=NULL, ESupportSolveUse *supportSolveUse=NULL) const