MueLu  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MueLu_SmootherFactoryBase.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_SMOOTHERFACTORYBASE_HPP
11 #define MUELU_SMOOTHERFACTORYBASE_HPP
12 
13 #include "MueLu_ConfigDefs.hpp"
15 
16 #include "MueLu_Types.hpp"
17 
18 namespace MueLu {
19 class Level;
20 
31  public:
34 
35  virtual ~SmootherFactoryBase() {}
37 
39 
40 
42  virtual void Build(Level& currentLevel) const = 0;
43 
44  virtual void BuildSmoother(Level& currentLevel, PreOrPost const preOrPost = BOTH) const = 0;
46 
47 }; // class SmootherFactoryBase
48 
49 } // namespace MueLu
50 
51 #define MUELU_SMOOTHERFACTORYBASE_SHORT
52 
53 #endif // ifndef MUELU_SMOOTHERFACTORYBASE_HPP
54 
55 // TODO: remove this interface?
virtual void Build(Level &currentLevel) const =0
Build pre-smoother and/or post-smoother.
virtual void BuildSmoother(Level &currentLevel, PreOrPost const preOrPost=BOTH) const =0
Class that holds all level-specific information.
Definition: MueLu_Level.hpp:63
Base class for factories that use one level (currentLevel).