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"
48#include "Thyra_TpetraThyraWrappers.hpp"
51#include "Amesos2_Version.hpp"
52#include "Teuchos_StandardMemberCompositionMacros.hpp"
53#include "Teuchos_StandardCompositionMacros.hpp"
54#include "Trilinos_Details_LinearSolver.hpp"
55#include "Trilinos_Details_LinearSolverFactory.hpp"
60template<
typename Scalar>
92#ifdef HAVE_AMESOS2_KLU2
99 const bool throwOnPrecInput =
true
108 bool isCompatible(
const LinearOpSourceBase<Scalar> &fwdOpSrc )
const;
111 Teuchos::RCP<LinearOpWithSolveBase<Scalar> >
createOp()
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,
147 Teuchos::RCP<
const PreconditionerBase<Scalar> > *prec,
148 Teuchos::RCP<
const LinearOpSourceBase<Scalar> > *approxFwdOpSrc,
149 ESupportSolveUse *supportSolveUse
158 void setParameterList(Teuchos::RCP<Teuchos::ParameterList>
const& paramList);
191 static Teuchos::RCP<const Teuchos::ParameterList>
Teuchos::RCP< Teuchos::ParameterList > unsetParameterList()
Amesos2::ERefactorizationPolicy refactorizationPolicy_
Teuchos::RCP< LinearOpWithSolveBase< Scalar > > createOp() const
static Teuchos::RCP< const Teuchos::ParameterList > generateAndGetValidParameters()
Teuchos::RCP< Teuchos::ParameterList > paramList_
Amesos2::ESolverType solverType_
static const std::string ThrowOnPreconditionerInput_name
Teuchos::RCP< const Teuchos::ParameterList > getParameterList() const
static const std::string SolverType_name
~Amesos2LinearOpWithSolveFactory()
typename Amesos2LinearOpWithSolve< Scalar >::MV MV
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
typename Amesos2LinearOpWithSolve< Scalar >::MAT MAT
static const std::string RefactorizationPolicy_name
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList()
static const std::string Amesos2_Settings_name
bool isCompatible(const LinearOpSourceBase< Scalar > &fwdOpSrc) const
void initializeOp(const Teuchos::RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const
std::string description() const
bool supportsPreconditionerInputType(const EPreconditionerInputType precOpType) const
Returns false .
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,...
typename Amesos2LinearOpWithSolve< Scalar >::Solver Solver
void setParameterList(Teuchos::RCP< Teuchos::ParameterList > const ¶mList)
typename Amesos2LinearOpWithSolve< Scalar >::ConverterT ConverterT
void initializePreconditionedOp(const Teuchos::RCP< const LinearOpSourceBase< Scalar > > &fwdOpSrc, const Teuchos::RCP< const LinearOpSourceBase< Scalar > > &approxFwdOpSrc, LinearOpWithSolveBase< Scalar > *Op, const ESupportSolveUse supportSolveUse) const
Throws exception if this->throwOnPrecInput()==true and calls this->initializeOp(fwdOpSrc,...
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
::Amesos2::Solver< MAT, MV > Solver
Tpetra::CrsMatrix< Scalar > MAT
Tpetra::MultiVector< Scalar > MV
TpetraOperatorVectorExtraction< Scalar > ConverterT
ERefactorizationPolicy
The policy used on refactoring a matrix.
@ REPIVOT_ON_REFACTORIZATION
Completely new pivoting will be used on refactorizations!