43 #ifndef IFPACK2_DETAILS_ONELEVELFACTORY_DECL_HPP 44 #define IFPACK2_DETAILS_ONELEVELFACTORY_DECL_HPP 46 #include "Ifpack2_ConfigDefs.hpp" 48 #include "Tpetra_RowMatrix.hpp" 49 #include <type_traits> 119 template<
class MatrixType>
122 typedef typename MatrixType::scalar_type scalar_type;
123 typedef typename MatrixType::local_ordinal_type local_ordinal_type;
124 typedef typename MatrixType::global_ordinal_type global_ordinal_type;
125 typedef typename MatrixType::node_type node_type;
126 typedef ::Ifpack2::Preconditioner<scalar_type,
130 typedef ::Tpetra::RowMatrix<scalar_type,
133 node_type> row_matrix_type;
135 static_assert (std::is_same<MatrixType, row_matrix_type>::value,
136 "Ifpack2::Details::OneLevelFactory: MatrixType must be a " 137 "Tpetra::RowMatrix specialization.");
149 Teuchos::RCP<prec_type>
150 create (
const std::string& precType,
151 const Teuchos::RCP<const row_matrix_type>& matrix)
const;
157 #endif // IFPACK2_DETAILS_ONELEVELFACTORY_DECL_HPP Ifpack2 implementation details.
Interface for all Ifpack2 preconditioners.
Definition: Ifpack2_Preconditioner.hpp:107
"Factory" for creating single-level preconditioners.
Definition: Ifpack2_Details_OneLevelFactory_decl.hpp:120
Preconditioners and smoothers for Tpetra sparse matrices.
Definition: Ifpack2_AdditiveSchwarz_decl.hpp:72
Teuchos::RCP< prec_type > create(const std::string &precType, const Teuchos::RCP< const row_matrix_type > &matrix) const
Create an instance of Preconditioner given the string name of the preconditioner type.
Definition: Ifpack2_Details_OneLevelFactory_def.hpp:70