Amesos2 - Direct Sparse Solver Interfaces  Version of the Day
Public Member Functions | Static Public Member Functions | List of all members
Amesos2::Details::LinearSolverFactory< MV, OP, NormType > Class Template Reference

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...
 

Detailed Description

template<class MV, class OP, class NormType>
class Amesos2::Details::LinearSolverFactory< MV, OP, NormType >

Interface for a "factory" that creates Amesos2 solvers.

Template Parameters
MVType 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.
OPType 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.
NormTypeType of the norm of a residual.

Member Function Documentation

template<class MV , class OP , class NormType >
Teuchos::RCP< Trilinos::Details::LinearSolver< MV, OP, NormType > > Amesos2::Details::LinearSolverFactory< MV, OP, NormType >::getLinearSolver ( const std::string &  solverName)
virtual

Get an instance of a Amesos2 solver.

The solver is wrapped in a Trilinos::Details::LinearSolver interface.

Parameters
solverName[in] The solver's name. Names are case sensitive.
Returns
A pointer to the solver, if the name was valid; else, a null pointer (Teuchos::null).
template<class MV , class OP , class NormType >
void Amesos2::Details::LinearSolverFactory< MV, OP, NormType >::registerLinearSolverFactory ( )
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.


The documentation for this class was generated from the following files: