45 #ifndef THYRA_BELOS_LINEAR_OP_WITH_SOLVE_FACTORY_DECL_HPP 46 #define THYRA_BELOS_LINEAR_OP_WITH_SOLVE_FACTORY_DECL_HPP 48 #include "Thyra_LinearOpWithSolveFactoryBase.hpp" 49 #include "Teuchos_StandardMemberCompositionMacros.hpp" 50 #include "Teuchos_StandardCompositionMacros.hpp" 52 namespace Teuchos {
class ParameterList; }
85 template<
class Scalar>
93 typedef typename Teuchos::ScalarTraits<Scalar>::magnitudeType
MagnitudeType;
137 const Teuchos::RCP<PreconditionerFactoryBase<Scalar> > &precFactory
148 const Teuchos::RCP<PreconditionerFactoryBase<Scalar> > &precFactory
149 ,
const std::string &precFactoryName
155 Teuchos::RCP<PreconditionerFactoryBase<Scalar> > *precFactory
156 ,std::string *precFactoryName
159 bool isCompatible(
const LinearOpSourceBase<Scalar> &fwdOpSrc )
const;
161 Teuchos::RCP<LinearOpWithSolveBase<Scalar> >
createOp()
const;
164 const Teuchos::RCP<
const LinearOpSourceBase<Scalar> > &fwdOpSrc
165 ,LinearOpWithSolveBase<Scalar> *Op
166 ,
const ESupportSolveUse supportSolveUse
170 const Teuchos::RCP<
const LinearOpSourceBase<Scalar> > &fwdOpSrc
171 ,LinearOpWithSolveBase<Scalar> *Op
175 LinearOpWithSolveBase<Scalar> *Op
176 ,Teuchos::RCP<
const LinearOpSourceBase<Scalar> > *fwdOpSrc
177 ,Teuchos::RCP<
const PreconditionerBase<Scalar> > *prec
178 ,Teuchos::RCP<
const LinearOpSourceBase<Scalar> > *approxFwdOpSrc
179 ,ESupportSolveUse *supportSolveUse
185 const Teuchos::RCP<
const LinearOpSourceBase<Scalar> > &fwdOpSrc
186 ,
const Teuchos::RCP<
const PreconditionerBase<Scalar> > &prec
187 ,LinearOpWithSolveBase<Scalar> *Op
188 ,
const ESupportSolveUse supportSolveUse
192 const Teuchos::RCP<
const LinearOpSourceBase<Scalar> > &fwdOpSrc
193 ,
const Teuchos::RCP<
const LinearOpSourceBase<Scalar> > &approxFwdOpSrc
194 ,LinearOpWithSolveBase<Scalar> *Op
195 ,
const ESupportSolveUse supportSolveUse
203 void setParameterList(Teuchos::RCP<Teuchos::ParameterList>
const& paramList);
247 const Teuchos::RCP<
const LinearOpSourceBase<Scalar> > &fwdOpSrc
248 ,
const Teuchos::RCP<
const LinearOpSourceBase<Scalar> > &approxFwdOpSrc
249 ,
const Teuchos::RCP<
const PreconditionerBase<Scalar> > &prec
250 ,
const bool reusePrec
251 ,LinearOpWithSolveBase<Scalar> *Op
252 ,
const ESupportSolveUse supportSolveUse
261 #endif // THYRA_BELOS_LINEAR_OP_WITH_SOLVE_FACTORY_DECL_HPP
void updateThisValidParamList()
static const std::string BlockGMRES_name
bool isCompatible(const LinearOpSourceBase< Scalar > &fwdOpSrc) const
static const std::string RCG_name
static const std::string MINRES_name
EBelosSolverType solverType_
std::istream & operator>>(std::istream &is, EBelosSolverType &sType)
void initializeAndReuseOp(const Teuchos::RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, LinearOpWithSolveBase< Scalar > *Op) const
bool supportsPreconditionerInputType(const EPreconditionerInputType precOpType) const
static Teuchos::RCP< const Teuchos::ParameterList > generateAndGetValidParameters()
static const std::string SolverTypes_name
void unsetPreconditionerFactory(Teuchos::RCP< PreconditionerFactoryBase< Scalar > > *precFactory, std::string *precFactoryName)
void setParameterList(Teuchos::RCP< Teuchos::ParameterList > const ¶mList)
static const std::string ConvergenceTestFrequency_name
void initializePreconditionedOp(const Teuchos::RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, const Teuchos::RCP< const PreconditionerBase< Scalar > > &prec, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const
static const std::string BlockCG_name
static const std::string PseudoBlockGMRES_name
int convergenceTestFrequency_
static const std::string PseudoBlockCG_name
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList()
void initializeOpImpl(const Teuchos::RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, const Teuchos::RCP< const LinearOpSourceBase< Scalar > > &approxFwdOpSrc, const Teuchos::RCP< const PreconditionerBase< Scalar > > &prec, const bool reusePrec, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const
void setPreconditionerFactory(const Teuchos::RCP< PreconditionerFactoryBase< Scalar > > &precFactory, const std::string &precFactoryName)
Teuchos::RCP< const Teuchos::ParameterList > getParameterList() const
bool acceptsPreconditionerFactory() const
Returns true .
Teuchos::RCP< PreconditionerFactoryBase< Scalar > > getPreconditionerFactory() const
LinearOpWithSolveFactoryBase subclass implemented in terms of Belos.
Teuchos::ScalarTraits< Scalar >::magnitudeType MagnitudeType
Teuchos::RCP< Teuchos::ParameterList > thisValidParamList_
static const std::string PseudoBlockStochasticCG_name
static const std::string SolverType_default
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
std::string description() const
Teuchos::RCP< Teuchos::ParameterList > paramList_
BelosLinearOpWithSolveFactory()
Construct without preconditioner factory.
Teuchos::RCP< PreconditionerFactoryBase< Scalar > > precFactory_
Teuchos::RCP< LinearOpWithSolveBase< Scalar > > createOp() const
void uninitializeOp(LinearOpWithSolveBase< Scalar > *Op, Teuchos::RCP< const LinearOpSourceBase< Scalar > > *fwdOpSrc, Teuchos::RCP< const PreconditionerBase< Scalar > > *prec, Teuchos::RCP< const LinearOpSourceBase< Scalar > > *approxFwdOpSrc, ESupportSolveUse *supportSolveUse) const
std::string precFactoryName_
Teuchos::RCP< Teuchos::ParameterList > unsetParameterList()
static const std::string SolverType_name
static const std::string TFQMR_name
void initializeApproxPreconditionedOp(const Teuchos::RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, const Teuchos::RCP< const LinearOpSourceBase< Scalar > > &approxFwdOpSrc, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const
void initializeOp(const Teuchos::RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const
static const std::string GCRODR_name