Belos Version of the Day
Public Types | Static Public Member Functions
Belos::GmresBaseFactory< Scalar, MV, OP > Class Template Reference

Factory for creating GmresBase subclass instances. More...

#include <BelosGmresBaseFactory.hpp>

List of all members.

Public Types

typedef GmresBase< Scalar, MV, OP > base_type
typedef LinearProblem< Scalar,
MV, OP > 
lp_type
typedef OrthoManager< Scalar, MV > ortho_type

Static Public Member Functions

static Teuchos::RCP< base_typecreate (const Teuchos::RCP< lp_type > &lp, const Teuchos::RCP< const ortho_type > &ortho, const Teuchos::RCP< OutputManager< Scalar > > &outMan, const Teuchos::RCP< const Teuchos::ParameterList > &params)
 Instantiate the appropriate GmresBase subclass instance.

Detailed Description

template<class Scalar, class MV, class OP>
class Belos::GmresBaseFactory< Scalar, MV, OP >

Factory for creating GmresBase subclass instances.

Author:
Mark Hoemmen GmresBase describes a general GMRES or Flexible GMRES (FGMRES) iteration, and leaves the specifics up to the subclasses. GmresBaseFactory is a factory class that generates subclass instances. The factory is responsible for:
  • Picking the appropriate subclass of GmresBase (which may depend upon the static type of OP (and MV), as well as what information the caller provides in the parameter list
  • Reading and validating parameters from the given parameter list, and filling in missing parameters with default values. (The parameter list will indicate whether or not Flexible GMRES is to be used, and also other information that the factory may use to help pick the subclass.)
  • Constructing specialized kernels that depend on the operator(s), such as the matrix powers kernel (if applicable). This should actually be delegated to a matrix powers kernel factory class that "does the right thing," depending on the types and any additional information available.

Definition at line 72 of file BelosGmresBaseFactory.hpp.


Member Typedef Documentation

template<class Scalar , class MV , class OP >
typedef GmresBase<Scalar, MV, OP> Belos::GmresBaseFactory< Scalar, MV, OP >::base_type

Definition at line 74 of file BelosGmresBaseFactory.hpp.

template<class Scalar , class MV , class OP >
typedef LinearProblem<Scalar, MV, OP> Belos::GmresBaseFactory< Scalar, MV, OP >::lp_type

Definition at line 75 of file BelosGmresBaseFactory.hpp.

template<class Scalar , class MV , class OP >
typedef OrthoManager<Scalar, MV> Belos::GmresBaseFactory< Scalar, MV, OP >::ortho_type

Definition at line 76 of file BelosGmresBaseFactory.hpp.


Member Function Documentation

template<class Scalar , class MV , class OP >
static Teuchos::RCP<base_type> Belos::GmresBaseFactory< Scalar, MV, OP >::create ( const Teuchos::RCP< lp_type > &  lp,
const Teuchos::RCP< const ortho_type > &  ortho,
const Teuchos::RCP< OutputManager< Scalar > > &  outMan,
const Teuchos::RCP< const Teuchos::ParameterList > &  params 
) [inline, static]

Instantiate the appropriate GmresBase subclass instance.

Parameters:
lp[in/out] The linear problem to solve.
ortho[in] The orthogonalization method that (F)GMRES should use when solving the linear problem.
params[in] Optional parameters; if null, defaults are used.
Returns:
GmresBase subclass instance for solving the linear system.

Definition at line 89 of file BelosGmresBaseFactory.hpp.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines