44 #ifndef THYRA_AMESOS2_LINEAR_OP_WITH_SOLVE_FACTORY_DECL_HPP
45 #define THYRA_AMESOS2_LINEAR_OP_WITH_SOLVE_FACTORY_DECL_HPP
47 #include "Thyra_LinearOpWithSolveFactoryBase.hpp"
50 #include "Amesos2.hpp"
51 #include "Amesos2_Version.hpp"
60 template<
typename Scalar>
92 #ifdef HAVE_AMESOS2_KLU2
99 const bool throwOnPrecInput =
true
108 bool isCompatible(
const LinearOpSourceBase<Scalar> &fwdOpSrc )
const;
115 const Teuchos::RCP<
const LinearOpSourceBase<Scalar> > &fwdOpSrc,
116 LinearOpWithSolveBase<Scalar> *Op,
117 const ESupportSolveUse supportSolveUse
127 const Teuchos::RCP<
const LinearOpSourceBase<Scalar> > &fwdOpSrc,
128 const Teuchos::RCP<
const PreconditionerBase<Scalar> > &prec,
129 LinearOpWithSolveBase<Scalar> *Op,
130 const ESupportSolveUse supportSolveUse
137 const Teuchos::RCP<
const LinearOpSourceBase<Scalar> > &fwdOpSrc,
138 const Teuchos::RCP<
const LinearOpSourceBase<Scalar> > &approxFwdOpSrc,
139 LinearOpWithSolveBase<Scalar> *Op,
140 const ESupportSolveUse supportSolveUse
145 LinearOpWithSolveBase<Scalar> *Op,
146 Teuchos::RCP<
const LinearOpSourceBase<Scalar> > *fwdOpSrc,
148 Teuchos::RCP<
const LinearOpSourceBase<Scalar> > *approxFwdOpSrc,
149 ESupportSolveUse *supportSolveUse
198 #endif // THYRA_AMESOS2_LINEAR_OP_WITH_SOLVE_FACTORY_HPP
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList()
static Teuchos::RCP< const Teuchos::ParameterList > generateAndGetValidParameters()
Teuchos::RCP< LinearOpWithSolveBase< Scalar > > createOp() const
typename Amesos2LinearOpWithSolve< Scalar >::ConverterT ConverterT
void initializeOp(const Teuchos::RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const
static const std::string Amesos2_Settings_name
void initializePreconditionedOp(const Teuchos::RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, const Teuchos::RCP< const PreconditionerBase< Scalar > > &prec, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const
Throws exception if this->throwOnPrecInput()==true and calls this->initializeOp(fwdOpSrc,Op) otherwise.
Completely new pivoting will be used on refactorizations!
Amesos2::ESolverType solverType_
std::string description() const
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
ERefactorizationPolicy
The policy used on refactoring a matrix.
typename Amesos2LinearOpWithSolve< Scalar >::MAT MAT
void setParameterList(Teuchos::RCP< Teuchos::ParameterList > const ¶mList)
typename Amesos2LinearOpWithSolve< Scalar >::Solver Solver
typename Amesos2LinearOpWithSolve< Scalar >::MV MV
Tpetra::MultiVector< Scalar > MV
Teuchos::RCP< Teuchos::ParameterList > unsetParameterList()
bool isCompatible(const LinearOpSourceBase< Scalar > &fwdOpSrc) const
Teuchos::RCP< const Teuchos::ParameterList > getParameterList() const
~Amesos2LinearOpWithSolveFactory()
bool supportsPreconditionerInputType(const EPreconditionerInputType precOpType) const
Returns false .
::Amesos2::Solver< MAT, MV > Solver
Amesos2LinearOpWithSolveFactory(const Amesos2::ESolverType solverType=Amesos2::LAPACK, const Amesos2::ERefactorizationPolicy refactorizationPolicy=Amesos2::REPIVOT_ON_REFACTORIZATION, const bool throwOnPrecInput=true)
Constructor which sets the defaults.
Tpetra::CrsMatrix< Scalar > MAT
static const std::string RefactorizationPolicy_name
Teuchos::RCP< Teuchos::ParameterList > paramList_
Amesos2::ERefactorizationPolicy refactorizationPolicy_
static const std::string SolverType_name
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
static const std::string ThrowOnPreconditionerInput_name