MueLu Version of the Day
Loading...
Searching...
No Matches
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"
22
23namespace Thyra {
24
29template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
30class 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;
69 Teuchos::RCP<const Teuchos::ParameterList> getValidParameters() const;
71
74
76 std::string description() const;
77
78 // ToDo: Add an override of describe(...) to give more detail!
79
81
82 private:
83 Teuchos::RCP<Teuchos::ParameterList> paramList_;
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)