Ifpack2 Templated Preconditioning Package  Version 1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Static Public Member Functions | List of all members
Ifpack2::Details::LinearSolverFactory< SC, LO, GO, NT > Class Template Reference

Interface for a "factory" that creates Ifpack2 solvers. More...

#include <Ifpack2_Details_LinearSolverFactory_decl.hpp>

Inheritance diagram for Ifpack2::Details::LinearSolverFactory< SC, LO, GO, NT >:
Inheritance graph
[legend]

Public Member Functions

virtual Teuchos::RCP< solver_typegetLinearSolver (const std::string &solverName)
 Get an instance of a Ifpack2 solver. More...
 

Static Public Member Functions

static void registerLinearSolverFactory ()
 Register this LinearSolverFactory with the central registry. More...
 

Detailed Description

template<class SC, class LO, class GO, class NT>
class Ifpack2::Details::LinearSolverFactory< SC, LO, GO, NT >

Interface for a "factory" that creates Ifpack2 solvers.

We use Tpetra's template parameters here, instead of MV, OP, and NormType, because this is not a public-facing class. We also want to avoid mix-ups between MV and OP.

Member Function Documentation

template<class SC , class LO , class GO , class NT >
Teuchos::RCP< typename LinearSolverFactory< SC, LO, GO, NT >::solver_type > Ifpack2::Details::LinearSolverFactory< SC, LO, GO, NT >::getLinearSolver ( const std::string &  solverName)
virtual

Get an instance of a Ifpack2 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).

Implements Trilinos::Details::LinearSolverFactory< Tpetra::MultiVector< SC, LO, GO, NT >, Tpetra::Operator< SC, LO, GO, NT >, Tpetra::MultiVector< SC, LO, GO, NT >::mag_type >.

template<class SC , class LO , class GO , class NT >
void Ifpack2::Details::LinearSolverFactory< SC, LO, GO, NT >::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 Ifpack2 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. Ifpack2 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: