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

Enumeration of all valid Belos (Mat)OrthoManager classes. More...

#include <BelosOrthoManagerFactory.hpp>

Inheritance diagram for Belos::OrthoManagerFactory< Scalar, MV, OP >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 OrthoManagerFactory ()
 Default constructor.
const std::vector< std::string > & validNames () const
 List of MatOrthoManager subclasses this factory recognizes.
bool isValidName (const std::string &name) const
 Whether this factory recognizes the MatOrthoManager with the given name.
std::ostream & printValidNames (std::ostream &out) const
 Print all recognized MatOrthoManager names to the given ostream.
std::string validNamesString () const
 List (as a string) of recognized MatOrthoManager names.
const std::string & defaultName () const
 Name of the "default" MatOrthoManager subclass.
Teuchos::RCP< const
Teuchos::ParameterList
getDefaultParameters (const std::string &name)
 Default parameters for the given MatOrthoManager subclass.
Teuchos::RCP< const
Teuchos::ParameterList
getFastParameters (const std::string &name)
 "Fast" parameters for the given MatOrthoManager subclass.
Teuchos::RCP
< Belos::MatOrthoManager
< Scalar, MV, OP > > 
makeMatOrthoManager (const std::string &ortho, const Teuchos::RCP< const OP > &M, const Teuchos::RCP< OutputManager< Scalar > > &outMan, const std::string &label, const Teuchos::RCP< const Teuchos::ParameterList > &params)
 Return an instance of the specified MatOrthoManager subclass.
Teuchos::RCP
< Belos::OrthoManager< Scalar,
MV > > 
makeOrthoManager (const std::string &ortho, const Teuchos::RCP< const OP > &M, const Teuchos::RCP< OutputManager< Scalar > > &outMan, const std::string &label, const Teuchos::RCP< const Teuchos::ParameterList > &params)
 Create and return the specified OrthoManager subclass.

Static Public Member Functions

static int numOrthoManagers ()
 Number of MatOrthoManager subclasses this factory recognizes.
static bool isRankRevealing (const std::string &name)
 Is the given MatOrthoManager subclass rank-reealing?

Detailed Description

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

Enumeration of all valid Belos (Mat)OrthoManager classes.

This factory class knows how to initialize any of Belos' MatOrthoManager subclasses, given a short name of the subclass (as would naturally belong in a SolverManager's parameter list). As such, it may be used by any of Belos' SolverManager subclasses that use a (Mat)OrthoManager subclass for orthogonalization.

This class' template parameters are the same as those of MatOrthoManager: Scalar is the scalar type (of entries in the multivector), MV is the multivector type, and OP is the operator type. For example: Scalar=double, MV=Epetra_MultiVector, and OP=Epetra_Operator.

Definition at line 82 of file BelosOrthoManagerFactory.hpp.


Constructor & Destructor Documentation

template<class Scalar, class MV, class OP>
Belos::OrthoManagerFactory< Scalar, MV, OP >::OrthoManagerFactory ( ) [inline]

Default constructor.

Definition at line 112 of file BelosOrthoManagerFactory.hpp.


Member Function Documentation

template<class Scalar, class MV, class OP>
static int Belos::OrthoManagerFactory< Scalar, MV, OP >::numOrthoManagers ( ) [inline, static]

Number of MatOrthoManager subclasses this factory recognizes.

Definition at line 89 of file BelosOrthoManagerFactory.hpp.

template<class Scalar, class MV, class OP>
static bool Belos::OrthoManagerFactory< Scalar, MV, OP >::isRankRevealing ( const std::string &  name) [inline, static]

Is the given MatOrthoManager subclass rank-reealing?

Return true if and only if the given MatOrthoManager name is that of a MatOrthoManager subclass with rank-revealing capability.

Definition at line 102 of file BelosOrthoManagerFactory.hpp.

template<class Scalar, class MV, class OP>
const std::vector<std::string>& Belos::OrthoManagerFactory< Scalar, MV, OP >::validNames ( ) const [inline]

List of MatOrthoManager subclasses this factory recognizes.

This is useful as a list of valid command-line parameter values for choosing a MatOrthoManager subclass to test.

Note:
To implementers: Anasazi and Belos currently implement different sets of (Mat)OrthoManagers. This method returns a valid list of Belos MatOrthoManager subclasses.

Definition at line 133 of file BelosOrthoManagerFactory.hpp.

template<class Scalar, class MV, class OP>
bool Belos::OrthoManagerFactory< Scalar, MV, OP >::isValidName ( const std::string &  name) const [inline]

Whether this factory recognizes the MatOrthoManager with the given name.

Definition at line 137 of file BelosOrthoManagerFactory.hpp.

template<class Scalar, class MV, class OP>
std::ostream& Belos::OrthoManagerFactory< Scalar, MV, OP >::printValidNames ( std::ostream &  out) const [inline]

Print all recognized MatOrthoManager names to the given ostream.

Definition at line 144 of file BelosOrthoManagerFactory.hpp.

template<class Scalar, class MV, class OP>
std::string Belos::OrthoManagerFactory< Scalar, MV, OP >::validNamesString ( ) const [inline]

List (as a string) of recognized MatOrthoManager names.

This is useful for generating help for command-line arguments, when writing a test that uses different orthogonalizations.

Definition at line 166 of file BelosOrthoManagerFactory.hpp.

template<class Scalar, class MV, class OP>
const std::string& Belos::OrthoManagerFactory< Scalar, MV, OP >::defaultName ( ) const [inline]

Name of the "default" MatOrthoManager subclass.

This is the name of the MatOrthoManager subclass that serves as a reasonable default for all Belos solvers that use general orthogonalizations. It may not be the fastest or the most accurate, but it should be the most reasonable.

Definition at line 179 of file BelosOrthoManagerFactory.hpp.

template<class Scalar, class MV, class OP>
Teuchos::RCP<const Teuchos::ParameterList> Belos::OrthoManagerFactory< Scalar, MV, OP >::getDefaultParameters ( const std::string &  name) [inline]

Default parameters for the given MatOrthoManager subclass.

Parameters:
name[in] MatOrthoManager subclass short name, for which isValidName(name) returns true.
Warning:
This method may not be thread-safe or reentrant, depending on the MatOrthoManager subclass. This is because different subclasses may choose to cache the default parameter list as static method data.

Definition at line 191 of file BelosOrthoManagerFactory.hpp.

template<class Scalar, class MV, class OP>
Teuchos::RCP<const Teuchos::ParameterList> Belos::OrthoManagerFactory< Scalar, MV, OP >::getFastParameters ( const std::string &  name) [inline]

"Fast" parameters for the given MatOrthoManager subclass.

"Fast" usually means that accuracy and/or robustness (with respect to rank deficiency) might be compromised in order to improve performance.

Parameters:
name[in] MatOrthoManager subclass short name, for which isValidName(name) returns true.
Warning:
This method may not be thread-safe or reentrant, depending on the MatOrthoManager subclass. This is because different subclasses may choose to cache the default parameter list as static method data.

Definition at line 238 of file BelosOrthoManagerFactory.hpp.

template<class Scalar, class MV, class OP>
Teuchos::RCP< Belos::MatOrthoManager<Scalar, MV, OP> > Belos::OrthoManagerFactory< Scalar, MV, OP >::makeMatOrthoManager ( const std::string &  ortho,
const Teuchos::RCP< const OP > &  M,
const Teuchos::RCP< OutputManager< Scalar > > &  outMan,
const std::string &  label,
const Teuchos::RCP< const Teuchos::ParameterList > &  params 
) [inline]

Return an instance of the specified MatOrthoManager subclass.

Parameters:
ortho[in] Name of the MatOrthoManager subclass. The validNames() method returns a list of the supported names.
M[in] Inner product operator. If Teuchos::null, orthogonalize with respect to the standard Euclidean inner product.
outMan[in/out] Output manager, which the OrthoManager instance may use (but is not required to use) for various kinds of status output.
label[in] Label for Belos-specific timers, if Belos timers were enabled at compile time. Otherwise, this parameter's value doesn't matter.
params[in] Optional (null) list of parameters for setting up the specific MatOrthoManager subclass. A default parameter list with embedded documentation is available for each MatOrthoManager subclass that this factory knows how to make.
Returns:
(Smart pointer to a) MatOrthoManager instance.

Definition at line 293 of file BelosOrthoManagerFactory.hpp.

template<class Scalar, class MV, class OP>
Teuchos::RCP<Belos::OrthoManager<Scalar, MV> > Belos::OrthoManagerFactory< Scalar, MV, OP >::makeOrthoManager ( const std::string &  ortho,
const Teuchos::RCP< const OP > &  M,
const Teuchos::RCP< OutputManager< Scalar > > &  outMan,
const std::string &  label,
const Teuchos::RCP< const Teuchos::ParameterList > &  params 
) [inline]

Create and return the specified OrthoManager subclass.

Parameters:
ortho[in] Name of OrthoManager subclass. The validNames() method returns a list of the supported names.
M[in] Inner product operator. If Teuchos::null, orthogonalize with respect to the standard Euclidean inner product.
outMan[in/out] Output manager, which the OrthoManager instance may use (but is not required to use) for various kinds of status output
label[in] Label for timers
params[in] Optional list of parameters for setting up the specific OrthoManager subclass
Returns:
(Smart pointer to a) OrthoManager instance

Definition at line 369 of file BelosOrthoManagerFactory.hpp.


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