10 #ifndef THYRA_AMESOS2_LINEAR_OP_WITH_SOLVE_FACTORY_DECL_HPP
11 #define THYRA_AMESOS2_LINEAR_OP_WITH_SOLVE_FACTORY_DECL_HPP
13 #include "Thyra_LinearOpWithSolveFactoryBase.hpp"
16 #include "Amesos2.hpp"
17 #include "Amesos2_Version.hpp"
26 template<
typename Scalar>
58 #ifdef HAVE_AMESOS2_KLU2
65 const bool throwOnPrecInput =
true
74 bool isCompatible(
const LinearOpSourceBase<Scalar> &fwdOpSrc )
const;
81 const Teuchos::RCP<
const LinearOpSourceBase<Scalar> > &fwdOpSrc,
82 LinearOpWithSolveBase<Scalar> *Op,
83 const ESupportSolveUse supportSolveUse
93 const Teuchos::RCP<
const LinearOpSourceBase<Scalar> > &fwdOpSrc,
94 const Teuchos::RCP<
const PreconditionerBase<Scalar> > &prec,
95 LinearOpWithSolveBase<Scalar> *Op,
96 const ESupportSolveUse supportSolveUse
103 const Teuchos::RCP<
const LinearOpSourceBase<Scalar> > &fwdOpSrc,
104 const Teuchos::RCP<
const LinearOpSourceBase<Scalar> > &approxFwdOpSrc,
105 LinearOpWithSolveBase<Scalar> *Op,
106 const ESupportSolveUse supportSolveUse
111 LinearOpWithSolveBase<Scalar> *Op,
112 Teuchos::RCP<
const LinearOpSourceBase<Scalar> > *fwdOpSrc,
114 Teuchos::RCP<
const LinearOpSourceBase<Scalar> > *approxFwdOpSrc,
115 ESupportSolveUse *supportSolveUse
164 #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