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>
31class 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:
35 typedef Trilinos::Details::LinearSolver<Tpetra::MultiVector<SC, LO, GO, NT>,
36 Tpetra::Operator<SC, LO, GO, NT>,
37 typename Tpetra::MultiVector<SC, LO, GO, NT>::mag_type>
38 solver_type;
39
49 virtual Teuchos::RCP<solver_type>
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
Interface for a "factory" that creates Ifpack2 solvers.
Definition Ifpack2_Details_LinearSolverFactory_decl.hpp:33
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:65
Ifpack2's implementation of Trilinos::Details::LinearSolver interface.
Definition Ifpack2_Details_LinearSolver_decl.hpp:75
Ifpack2 implementation details.
Preconditioners and smoothers for Tpetra sparse matrices.
Definition Ifpack2_AdditiveSchwarz_decl.hpp:40