47 #ifndef THYRA_MUELU_PRECONDITIONER_FACTORY_DECL_HPP
48 #define THYRA_MUELU_PRECONDITIONER_FACTORY_DECL_HPP
52 #if defined(HAVE_MUELU_STRATIMIKOS) && defined(HAVE_MUELU_THYRA)
55 #include "Thyra_DefaultPreconditioner.hpp"
56 #include "Thyra_BlockedLinearOpBase.hpp"
57 #include "Thyra_DiagonalLinearOpBase.hpp"
59 #include "Thyra_TpetraLinearOp.hpp"
60 #include "Thyra_TpetraThyraWrappers.hpp"
61 #ifdef HAVE_MUELU_EPETRA
62 #include "Thyra_EpetraLinearOp.hpp"
65 #include "Teuchos_Ptr.hpp"
67 #include "Teuchos_Assert.hpp"
70 #include <Xpetra_CrsMatrixWrap.hpp>
75 #include <MueLu_Hierarchy.hpp>
77 #include <MueLu_HierarchyUtils.hpp>
78 #include <MueLu_Utilities.hpp>
79 #include <MueLu_ParameterListInterpreter.hpp>
83 #include <MueLu_TpetraOperator.hpp>
84 #include <Xpetra_TpetraHalfPrecisionOperator.hpp>
85 #ifdef HAVE_MUELU_EPETRA
89 #include "Thyra_PreconditionerFactoryBase.hpp"
91 #include <Tpetra_KokkosCompat_DefaultNode.hpp>
100 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
102 static bool replaceWithXpetra(ParameterList& paramList, std::string parameterName);
105 #ifdef HAVE_MUELU_EPETRA
106 template <
class GlobalOrdinal>
107 struct Converters<double, int,
GlobalOrdinal, Tpetra::KokkosCompat::KokkosSerialWrapperNode> {
108 static bool replaceWithXpetra(ParameterList& paramList, std::string parameterName);
117 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
118 class MueLuPreconditionerFactory :
public PreconditionerFactoryBase<Scalar> {
124 MueLuPreconditionerFactory();
131 bool isCompatible(
const LinearOpSourceBase<Scalar>& fwdOp)
const;
135 void initializePrec(
const Teuchos::RCP<
const LinearOpSourceBase<Scalar> >& fwdOp,
136 PreconditionerBase<Scalar>* prec,
137 const ESupportSolveUse supportSolveUse)
const;
139 void uninitializePrec(PreconditionerBase<Scalar>* prec,
141 ESupportSolveUse* supportSolveUse)
const;
164 std::string description()
const;
178 #endif // #ifdef HAVE_MUELU_STRATIMIKOS
180 #endif // THYRA_MUELU_PRECONDITIONER_FACTORY_DECL_HPP
Various adapters that will create a MueLu preconditioner that is an Xpetra::Matrix.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
MueLu::DefaultGlobalOrdinal GlobalOrdinal
void getValidParameters(Teuchos::ParameterList ¶ms)