47 #ifndef THYRA_MUELU_PRECONDITIONER_FACTORY_DECL_HPP 48 #define THYRA_MUELU_PRECONDITIONER_FACTORY_DECL_HPP 52 #ifdef HAVE_MUELU_STRATIMIKOS 55 #include <MueLu_Utilities.hpp> 57 #include "Thyra_PreconditionerFactoryBase.hpp" 59 #include "Kokkos_DefaultNode.hpp" 69 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node = KokkosClassic::DefaultNode::DefaultNodeType>
84 bool isCompatible(
const LinearOpSourceBase<Scalar>& fwdOp)
const;
86 Teuchos::RCP<PreconditionerBase<Scalar> >
createPrec()
const;
88 void initializePrec(
const Teuchos::RCP<
const LinearOpSourceBase<Scalar> >& fwdOp,
89 PreconditionerBase<Scalar>* prec,
90 const ESupportSolveUse supportSolveUse
94 Teuchos::RCP<
const LinearOpSourceBase<Scalar> >* fwdOp,
95 ESupportSolveUse* supportSolveUse
104 void setParameterList(
const Teuchos::RCP<Teuchos::ParameterList>& paramList);
127 Teuchos::RCP<MueLu::Hierarchy<Scalar,LocalOrdinal,GlobalOrdinal,Node> >
CreateXpetraPreconditioner(Teuchos::RCP<Xpetra::Matrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> > op,
const Teuchos::ParameterList& paramList, Teuchos::RCP<Xpetra::MultiVector<double, LocalOrdinal, GlobalOrdinal, Node> > coords, Teuchos::RCP<Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node> > nullspace)
const;
135 #endif // #ifdef HAVE_MUELU_STRATIMIKOS 137 #endif // THYRA_MUELU_PRECONDITIONER_FACTORY_DECL_HPP void initializePrec(const Teuchos::RCP< const LinearOpSourceBase< Scalar > > &fwdOp, PreconditionerBase< Scalar > *prec, const ESupportSolveUse supportSolveUse) const
void uninitializePrec(PreconditionerBase< Scalar > *prec, Teuchos::RCP< const LinearOpSourceBase< Scalar > > *fwdOp, ESupportSolveUse *supportSolveUse) const
Teuchos::RCP< Teuchos::ParameterList > paramList_
Concrete preconditioner factory subclass for Thyra based on MueLu.Add support for MueLu preconditione...
bool isCompatible(const LinearOpSourceBase< Scalar > &fwdOp) const
Teuchos::RCP< const Teuchos::ParameterList > getParameterList() const
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > ¶mList)
MueLuPreconditionerFactory()
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
std::string description() const
Teuchos::RCP< MueLu::Hierarchy< Scalar, LocalOrdinal, GlobalOrdinal, Node > > CreateXpetraPreconditioner(Teuchos::RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > op, const Teuchos::ParameterList ¶mList, Teuchos::RCP< Xpetra::MultiVector< double, LocalOrdinal, GlobalOrdinal, Node > > coords, Teuchos::RCP< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > nullspace) const
Teuchos::RCP< PreconditionerBase< Scalar > > createPrec() const
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList()
Teuchos::RCP< Teuchos::ParameterList > unsetParameterList()