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 ()
 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) const
 Default parameters for the given MatOrthoManager subclass.
Teuchos::RCP< const
Teuchos::ParameterList
getFastParameters (const std::string &name) const
 "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< 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< Teuchos::ParameterList > &params)
 Return an instance of 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]

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 165 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 178 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) const [inline]

Default parameters for the given MatOrthoManager subclass.

Parameters:
name[in] MatOrthoManager subclass short name, for which isValidName(name) returns true.
Note:
This method does not cache its return value, so every time you call this method with the same name argument, a new parameter list will be created. You can save the parameter list yourself if you want to reuse it.

Definition at line 190 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) const [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.
Note:
This method does not cache its return value, so every time you call this method with the same name argument, a new parameter list will be created. You can save the parameter list yourself if you want to reuse it.

Definition at line 241 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< Teuchos::ParameterList > &  params 
) [inline]

Return an instance of the specified MatOrthoManager subclass.

Parameters:
ortho[in] Name of the MatOrthoManager subclass instance to return. 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/out] Optional 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.

Definition at line 298 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< Teuchos::ParameterList > &  params 
) [inline]

Return an instance of the specified OrthoManager subclass.

Parameters:
ortho[in] Name of the OrthoManager subclass instance to return. 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/out] Optional list of parameters for setting up the specific OrthoManager subclass.
Returns:
OrthoManager instance.

Definition at line 363 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