47#ifndef THYRA_MUELU_MAXWELL1_PRECONDITIONER_FACTORY_DECL_HPP
48#define THYRA_MUELU_MAXWELL1_PRECONDITIONER_FACTORY_DECL_HPP
52#if defined(HAVE_MUELU_STRATIMIKOS) && defined(HAVE_MUELU_THYRA)
54#include "KokkosCompat_DefaultNode.hpp"
55#include "Thyra_DefaultPreconditioner.hpp"
56#include "Thyra_PreconditionerFactoryBase.hpp"
67 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node = KokkosClassic::DefaultNode::DefaultNodeType>
68 class MueLuMaxwell1PreconditionerFactory :
public PreconditionerFactoryBase<Scalar> {
75 MueLuMaxwell1PreconditionerFactory();
82 bool isCompatible(
const LinearOpSourceBase<Scalar>& fwdOp)
const;
84 Teuchos::RCP<PreconditionerBase<Scalar> > createPrec()
const;
86 void initializePrec(
const Teuchos::RCP<
const LinearOpSourceBase<Scalar> >& fwdOp,
87 PreconditionerBase<Scalar>* prec,
88 const ESupportSolveUse supportSolveUse
91 void uninitializePrec(PreconditionerBase<Scalar>* prec,
92 Teuchos::RCP<
const LinearOpSourceBase<Scalar> >* fwdOp,
93 ESupportSolveUse* supportSolveUse
102 void setParameterList(
const Teuchos::RCP<Teuchos::ParameterList>& paramList);
104 Teuchos::RCP<Teuchos::ParameterList> unsetParameterList();
106 Teuchos::RCP<Teuchos::ParameterList> getNonconstParameterList();
108 Teuchos::RCP<const Teuchos::ParameterList> getParameterList()
const;
117 std::string description()
const;
125 Teuchos::RCP<Teuchos::ParameterList> paramList_;
void getValidParameters(Teuchos::ParameterList ¶ms)