Ifpack2 Templated Preconditioning Package  Version 1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Ifpack2_Details_Factory_decl.hpp
1 // @HEADER
2 // *****************************************************************************
3 // Ifpack2: Templated Object-Oriented Algebraic Preconditioner Package
4 //
5 // Copyright 2009 NTESS and the Ifpack2 contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef IFPACK2_DETAILS_FACTORY_DECL_HPP
11 #define IFPACK2_DETAILS_FACTORY_DECL_HPP
12 
13 #include "Ifpack2_ConfigDefs.hpp"
15 
16 namespace Ifpack2 {
17 namespace Details {
18 
19 template <class SC, class LO, class GO, class NT>
20 class Factory {
21  public:
22  typedef Tpetra::RowMatrix<SC, LO, GO, NT> row_matrix_type;
23  typedef ::Ifpack2::Preconditioner<SC, LO, GO, NT> prec_type;
24 
35  create(const std::string& precType,
37 
54  create(const std::string& precType,
56  const int overlap);
57 
58  std::vector<std::string>
59  getSupportedNames() const;
60 
61  bool
62  isSupported(const std::string& precType);
63 };
64 
65 } // namespace Details
66 } // namespace Ifpack2
67 
68 #endif // IFPACK2_DETAILS_FACTORY_DECL_HPP