Amesos2 - Direct Sparse Solver Interfaces
Version of the Day
|
Interface for a "factory" that creates Amesos2 solvers. More...
#include <Amesos2_Details_LinearSolverFactory_decl.hpp>
Inherits LinearSolverFactory< MV, OP, NormType >.
Public Member Functions | |
virtual Teuchos::RCP < Trilinos::Details::LinearSolver < MV, OP, NormType > > | getLinearSolver (const std::string &solverName) |
Get an instance of a Amesos2 solver. More... | |
Static Public Member Functions | |
static void | registerLinearSolverFactory () |
Register this LinearSolverFactory with the central registry. More... | |
Interface for a "factory" that creates Amesos2 solvers.
MV | Type of a (multi)vector, representing either the solution(s) X or the right-hand side(s) B of a linear system AX=B. For example, with Tpetra, use a Tpetra::MultiVector specialization. A multivector is a single data structure containing zero or more vectors with the same dimensions and layout. |
OP | Type of a matrix or linear operator that this Solver understands. For example, for Tpetra, use a Tpetra::Operator specialization. Always use the most abstract interface possible; solvers should dynamic_cast to the subclass they need. Also, be consistent: using different classes here (e.g., Tpetra::RowMatrix instead of Tpetra::Operator) means more expensive explicit template instantiation. |
NormType | Type of the norm of a residual. |
|
virtual |
Get an instance of a Amesos2 solver.
The solver is wrapped in a Trilinos::Details::LinearSolver interface.
solverName | [in] The solver's name. Names are case sensitive. |
|
static |
Register this LinearSolverFactory with the central registry.
Register this LinearSolverFactory with the central registry, for the given SC, LO, GO, NT template parameters. This will let any clients of Trilinos::Details::getLinearSolver create Amesos2 solvers with those template parameters.
You may call this function multiple times; it will only have an effect the first time (it is idempotent).
Users do not normally have to call this function. Amesos2 automatically registers its LinearSolverFactory with the central repository, for all enabled template parameter combinations.