Ifpack2 Templated Preconditioning Package Version 1.0
Loading...
Searching...
No Matches
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"
18#include "Trilinos_Details_LinearSolverFactory.hpp"
19#include "Tpetra_Operator.hpp"
20
21namespace Ifpack2 {
22namespace Details {
23
30template<class SC, class LO, class GO, class NT>
32 public Trilinos::Details::LinearSolverFactory<Tpetra::MultiVector<SC, LO, GO, NT>,
33 Tpetra::Operator<SC, LO, GO, NT>,
34 typename Tpetra::MultiVector<SC, LO, GO, NT>::mag_type>
35{
36public:
37 typedef Trilinos::Details::LinearSolver<Tpetra::MultiVector<SC, LO, GO, NT>,
38 Tpetra::Operator<SC, LO, GO, NT>,
39 typename Tpetra::MultiVector<SC, LO, GO, NT>::mag_type> solver_type;
40
50 virtual Teuchos::RCP<solver_type>
51 getLinearSolver (const std::string& solverName);
52
66 static void registerLinearSolverFactory ();
67};
68
69} // namespace Details
70} // namespace Ifpack2
71
72#endif // IFPACK2_DETAILS_LINEARSOLVERFACTORY_DECL_HPP
Interface for a "factory" that creates Ifpack2 solvers.
Definition Ifpack2_Details_LinearSolverFactory_decl.hpp:35
virtual Teuchos::RCP< solver_type > getLinearSolver(const std::string &solverName)
Get an instance of a Ifpack2 solver.
Definition Ifpack2_Details_LinearSolverFactory_def.hpp:30
static void registerLinearSolverFactory()
Register this LinearSolverFactory with the central registry.
Definition Ifpack2_Details_LinearSolverFactory_def.hpp:76
Preconditioners and smoothers for Tpetra sparse matrices.
Definition Ifpack2_AdditiveSchwarz_decl.hpp:41