MueLu  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MueLu_FacadeClassFactory_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 PACKAGES_MUELU_SRC_INTERFACE_FACADECLASSES_MUELU_FACADECLASSFACTORY_DECL_HPP_
11 #define PACKAGES_MUELU_SRC_INTERFACE_FACADECLASSES_MUELU_FACADECLASSFACTORY_DECL_HPP_
12 
14 
15 #include "MueLu_BaseClass.hpp"
16 #include "MueLu_FacadeClassBase.hpp"
17 
18 #include "MueLu_ConfigDefs.hpp"
19 
20 namespace MueLu {
21 
22 template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
24  : public virtual BaseClass {
25 #undef MUELU_FACADECLASSFACTORY_SHORT
26 #include "MueLu_UseShortNames.hpp"
27 
28  public:
30 
31 
34 
36  virtual ~FacadeClassFactory() {}
37 
39 
45 
53  void RegisterFacadeClass(std::string name, Teuchos::RCP<FacadeClassBase> facadeclass) {
54  facadeClasses_[name] = facadeclass;
55  }
56 
57  private:
58  std::map<std::string, Teuchos::RCP<FacadeClassBase> > facadeClasses_;
59 };
60 
61 } // namespace MueLu
62 
63 #define MUELU_FACADECLASSFACTORY_SHORT
64 
65 #endif /* PACKAGES_MUELU_SRC_INTERFACE_FACADECLASSES_MUELU_FACADECLASSFACTORY_DECL_HPP_ */
void RegisterFacadeClass(std::string name, Teuchos::RCP< FacadeClassBase > facadeclass)
Register new facade class.
Teuchos::RCP< Teuchos::ParameterList > SetParameterList(const Teuchos::ParameterList &paramList)
Set parameter list for FacadeClassFactory interpreter.
Base class for MueLu classes.
std::map< std::string, Teuchos::RCP< FacadeClassBase > > facadeClasses_