MueLu  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MueLu_MHDRAPFactory_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 MUELU_MHDRAPFACTORY_DECL_HPP
11 #define MUELU_MHDRAPFACTORY_DECL_HPP
12 
13 #include <string>
14 
15 #include <Xpetra_Matrix_fwd.hpp>
16 
17 #include "MueLu_ConfigDefs.hpp"
19 //#include "MueLu_MHDRAPFactory_fwd.hpp"
20 
21 #include "MueLu_Level_fwd.hpp"
23 
24 namespace MueLu {
29 template <class Scalar = DefaultScalar,
32  class Node = DefaultNode>
34 #undef MUELU_MHDRAPFACTORY_SHORT
35 #include "MueLu_UseShortNames.hpp"
36 
37  public:
39 
40 
41  MHDRAPFactory();
42 
43  virtual ~MHDRAPFactory() {}
44 
46 
48 
49 
50  void DeclareInput(Level &fineLevel, Level &coarseLevel) const;
51 
53 
55 
56  void Build(Level &fineLevel, Level &coarseLevel) const;
58 
60 
61 
63  void SetImplicitTranspose(bool const &implicit) {
64  implicitTranspose_ = implicit;
65  }
66 
68 
70  // static std::string PerfUtils::PrintMatrixInfo(const Matrix & Ac, const std::string & msgTag);
71 
72  static std::string PrintLoadBalancingInfo(const Matrix &Ac, const std::string &msgTag);
73 
74  private:
77 
78 }; // class MHDRAPFactory
79 
80 } // namespace MueLu
81 
82 #define MUELU_MHDRAPFACTORY_SHORT
83 #endif // MUELU_MHDRAPFACTORY_DECL_HPP
MueLu::DefaultLocalOrdinal LocalOrdinal
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
bool implicitTranspose_
If true, the action of the restriction operator action is implicitly defined by the transpose of the ...
Base class for factories that use two levels (fineLevel and coarseLevel).
void Build(Level &fineLevel, Level &coarseLevel) const
Build an object with this factory.
void SetImplicitTranspose(bool const &implicit)
Indicate that the restriction operator action should be implicitly defined by the transpose of the pr...
MueLu::DefaultNode Node
MueLu::DefaultScalar Scalar
Tpetra::Details::DefaultTypes::scalar_type DefaultScalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Class that holds all level-specific information.
Definition: MueLu_Level.hpp:63
static std::string PrintLoadBalancingInfo(const Matrix &Ac, const std::string &msgTag)
Factory for building coarse matrices.
void DeclareInput(Level &fineLevel, Level &coarseLevel) const
Input.