MueLu  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Thyra_MueLuMaxwell1PreconditionerFactory_decl.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // MueLu: A package for multigrid based preconditioning
4 //
5 // Copyright 2012 NTESS and the MueLu contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef THYRA_MUELU_MAXWELL1_PRECONDITIONER_FACTORY_DECL_HPP
11 #define THYRA_MUELU_MAXWELL1_PRECONDITIONER_FACTORY_DECL_HPP
12 
13 #include <MueLu_ConfigDefs.hpp>
14 
15 #if defined(HAVE_MUELU_STRATIMIKOS) && defined(HAVE_MUELU_THYRA)
16 
17 #include <Tpetra_KokkosCompat_DefaultNode.hpp>
18 #include "Thyra_DefaultPreconditioner.hpp"
19 #include "Thyra_PreconditionerFactoryBase.hpp"
20 #include "Thyra_XpetraLinearOp.hpp"
22 
23 namespace Thyra {
24 
29 template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
30 class MueLuMaxwell1PreconditionerFactory : public PreconditionerFactoryBase<Scalar> {
31  public:
34 
36  MueLuMaxwell1PreconditionerFactory();
38 
41 
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;
54 
56 
59 
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;
71 
74 
76  std::string description() const;
77 
78  // ToDo: Add an override of describe(...) to give more detail!
79 
81 
82  private:
84 };
85 
86 } // namespace Thyra
87 
88 #endif // #ifdef HAVE_MUELU_STRATIMIKOS
89 
90 #endif // THYRA_MUELU_MAXWELL1_PRECONDITIONER_FACTORY_DECL_HPP
void getValidParameters(Teuchos::ParameterList &params)