10#ifndef THYRA_MUELU_MAXWELL1_PRECONDITIONER_FACTORY_DECL_HPP
11#define THYRA_MUELU_MAXWELL1_PRECONDITIONER_FACTORY_DECL_HPP
15#if defined(HAVE_MUELU_STRATIMIKOS) && defined(HAVE_MUELU_THYRA)
17#include <Tpetra_KokkosCompat_DefaultNode.hpp>
18#include "Thyra_DefaultPreconditioner.hpp"
19#include "Thyra_PreconditionerFactoryBase.hpp"
29template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
30class MueLuMaxwell1PreconditionerFactory :
public PreconditionerFactoryBase<Scalar> {
36 MueLuMaxwell1PreconditionerFactory();
43 bool isCompatible(
const LinearOpSourceBase<Scalar>& fwdOp)
const;
45 Teuchos::RCP<PreconditionerBase<Scalar> > createPrec()
const;
47 void initializePrec(
const Teuchos::RCP<
const LinearOpSourceBase<Scalar> >& fwdOp,
48 PreconditionerBase<Scalar>* prec,
49 const ESupportSolveUse supportSolveUse)
const;
51 void uninitializePrec(PreconditionerBase<Scalar>* prec,
52 Teuchos::RCP<
const LinearOpSourceBase<Scalar> >* fwdOp,
53 ESupportSolveUse* supportSolveUse)
const;
61 void setParameterList(
const Teuchos::RCP<Teuchos::ParameterList>& paramList);
63 Teuchos::RCP<Teuchos::ParameterList> unsetParameterList();
65 Teuchos::RCP<Teuchos::ParameterList> getNonconstParameterList();
67 Teuchos::RCP<const Teuchos::ParameterList> getParameterList()
const;
76 std::string description()
const;
83 Teuchos::RCP<Teuchos::ParameterList> paramList_;
void getValidParameters(Teuchos::ParameterList ¶ms)