Belos Package Browser (Single Doxygen Collection)  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
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]

Public Member Functions

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

Static Public Member Functions

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

Private Attributes

std::vector< std::string > theList_
 List of valid OrthoManager names. More...
 

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 50 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 80 of file BelosOrthoManagerFactory.hpp.

Member Function Documentation

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

Number of MatOrthoManager subclasses this factory recognizes.

Definition at line 57 of file BelosOrthoManagerFactory.hpp.

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

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 70 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 101 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 105 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 112 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 133 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 146 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 158 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 206 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 > > &  ,
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 260 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 324 of file BelosOrthoManagerFactory.hpp.

Member Data Documentation

template<class Scalar, class MV, class OP>
std::vector<std::string> Belos::OrthoManagerFactory< Scalar, MV, OP >::theList_
private

List of valid OrthoManager names.

Definition at line 53 of file BelosOrthoManagerFactory.hpp.


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