10 #ifndef THYRA_MUELU_PRECONDITIONER_FACTORY_DECL_HPP
11 #define THYRA_MUELU_PRECONDITIONER_FACTORY_DECL_HPP
15 #if defined(HAVE_MUELU_STRATIMIKOS) && defined(HAVE_MUELU_THYRA)
18 #include "Thyra_DefaultPreconditioner.hpp"
19 #include "Thyra_BlockedLinearOpBase.hpp"
20 #include "Thyra_DiagonalLinearOpBase.hpp"
22 #include "Thyra_TpetraLinearOp.hpp"
23 #include "Thyra_TpetraThyraWrappers.hpp"
24 #ifdef HAVE_MUELU_EPETRA
25 #include "Thyra_EpetraLinearOp.hpp"
28 #include "Teuchos_Ptr.hpp"
30 #include "Teuchos_Assert.hpp"
33 #include <Xpetra_CrsMatrixWrap.hpp>
38 #include <MueLu_Hierarchy.hpp>
40 #include <MueLu_HierarchyUtils.hpp>
41 #include <MueLu_Utilities.hpp>
42 #include <MueLu_ParameterListInterpreter.hpp>
46 #include <MueLu_TpetraOperator.hpp>
47 #include <Xpetra_TpetraHalfPrecisionOperator.hpp>
48 #ifdef HAVE_MUELU_EPETRA
52 #include "Thyra_PreconditionerFactoryBase.hpp"
54 #include <Tpetra_KokkosCompat_DefaultNode.hpp>
63 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
65 static bool replaceWithXpetra(ParameterList& paramList, std::string parameterName);
68 #ifdef HAVE_MUELU_EPETRA
69 template <
class GlobalOrdinal>
70 struct Converters<double, int,
GlobalOrdinal, Tpetra::KokkosCompat::KokkosSerialWrapperNode> {
71 static bool replaceWithXpetra(ParameterList& paramList, std::string parameterName);
80 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
81 class MueLuPreconditionerFactory :
public PreconditionerFactoryBase<Scalar> {
87 MueLuPreconditionerFactory();
89 ~MueLuPreconditionerFactory();
96 bool isCompatible(
const LinearOpSourceBase<Scalar>& fwdOp)
const;
100 void initializePrec(
const Teuchos::RCP<
const LinearOpSourceBase<Scalar> >& fwdOp,
101 PreconditionerBase<Scalar>* prec,
102 const ESupportSolveUse supportSolveUse)
const;
104 void uninitializePrec(PreconditionerBase<Scalar>* prec,
106 ESupportSolveUse* supportSolveUse)
const;
129 std::string description()
const;
143 #endif // #ifdef HAVE_MUELU_STRATIMIKOS
145 #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)