Loading [MathJax]/extensions/tex2jax.js
Ifpack2 Templated Preconditioning Package  Version 1.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Ifpack2_Details_LinearSolverFactory_decl.hpp
Go to the documentation of this file.
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 
13 
14 #ifndef IFPACK2_DETAILS_LINEARSOLVERFACTORY_DECL_HPP
15 #define IFPACK2_DETAILS_LINEARSOLVERFACTORY_DECL_HPP
16 
17 #include "Ifpack2_ConfigDefs.hpp"
19 #include "Tpetra_Operator.hpp"
20 
21 namespace Ifpack2 {
22 namespace Details {
23 
30 template <class SC, class LO, class GO, class NT>
31 class LinearSolverFactory : public Trilinos::Details::LinearSolverFactory<Tpetra::MultiVector<SC, LO, GO, NT>,
32  Tpetra::Operator<SC, LO, GO, NT>,
33  typename Tpetra::MultiVector<SC, LO, GO, NT>::mag_type> {
34  public:
36  Tpetra::Operator<SC, LO, GO, NT>,
37  typename Tpetra::MultiVector<SC, LO, GO, NT>::mag_type>
39 
50  getLinearSolver(const std::string& solverName);
51 
65  static void registerLinearSolverFactory();
66 };
67 
68 } // namespace Details
69 } // namespace Ifpack2
70 
71 #endif // IFPACK2_DETAILS_LINEARSOLVERFACTORY_DECL_HPP
Definition: Ifpack2_AdditiveSchwarz_decl.hpp:36
static void registerLinearSolverFactory()
Register this LinearSolverFactory with the central registry.
Definition: Ifpack2_Details_LinearSolverFactory_def.hpp:65
Interface for a &quot;factory&quot; that creates Ifpack2 solvers.
Definition: Ifpack2_Details_LinearSolverFactory_decl.hpp:31
virtual Teuchos::RCP< solver_type > getLinearSolver(const std::string &solverName)
Get an instance of a Ifpack2 solver.
Definition: Ifpack2_Details_LinearSolverFactory_def.hpp:30