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 
20 template<class SC, class LO, class GO, class NT>
21 class Factory {
22 public:
23  typedef Tpetra::RowMatrix<SC, LO, GO, NT> row_matrix_type;
24  typedef ::Ifpack2::Preconditioner<SC, LO, GO, NT> prec_type;
25 
36  create (const std::string& precType,
38 
55  create (const std::string& precType,
57  const int overlap);
58 
59  std::vector<std::string>
60  getSupportedNames () const;
61 
62  bool
63  isSupported (const std::string& precType);
64 };
65 
66 } // namespace Details
67 } // namespace Ifpack2
68 
69 #endif // IFPACK2_DETAILS_FACTORY_DECL_HPP