Ifpack2 Templated Preconditioning Package Version 1.0
Loading...
Searching...
No Matches
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
16namespace Ifpack2 {
17namespace Details {
18
19template <class SC, class LO, class GO, class NT>
20class 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 typedef typename Teuchos::ScalarTraits<SC>::magnitudeType magnitude_type;
25 typedef Tpetra::MultiVector<magnitude_type, LO, GO, NT> coord_type;
26
36 Teuchos::RCP<prec_type>
37 create(const std::string& precType,
38 const Teuchos::RCP<const row_matrix_type>& matrix);
39
54 Teuchos::RCP<prec_type>
55 create(const std::string& precType,
56 const Teuchos::RCP<const row_matrix_type>& matrix,
57 const Teuchos::RCP<const coord_type>& coordinates);
58
74 Teuchos::RCP<prec_type>
75 create(const std::string& precType,
76 const Teuchos::RCP<const row_matrix_type>& matrix,
77 const int overlap);
78
79 std::vector<std::string>
80 getSupportedNames() const;
81
82 bool
83 isSupported(const std::string& precType);
84};
85
86} // namespace Details
87} // namespace Ifpack2
88
89#endif // IFPACK2_DETAILS_FACTORY_DECL_HPP
Ifpack2 implementation details.
Preconditioners and smoothers for Tpetra sparse matrices.
Definition Ifpack2_AdditiveSchwarz_decl.hpp:40