Belos Package Browser (Single Doxygen Collection)
Development
|
Simple OrthoManager implementation for benchmarks. More...
#include <BelosSimpleOrthoManager.hpp>
Public Types | |
typedef Scalar | scalar_type |
typedef Teuchos::ScalarTraits < Scalar >::magnitudeType | magnitude_type |
typedef Teuchos::SerialDenseMatrix < int, Scalar > | mat_type |
typedef Teuchos::RCP < Teuchos::SerialDenseMatrix < int, Scalar > > | mat_ptr |
Public Member Functions | |
Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () const |
Get a default list of parameters. More... | |
Teuchos::RCP< const Teuchos::ParameterList > | getFastParameters () |
Get a "fast" list of parameters. More... | |
void | setParameterList (const Teuchos::RCP< Teuchos::ParameterList > &plist) |
SimpleOrthoManager (const Teuchos::RCP< OutputManager< Scalar > > &outMan, const std::string &label, const Teuchos::RCP< Teuchos::ParameterList > ¶ms) | |
Constructor. More... | |
SimpleOrthoManager (const std::string &label="Belos") | |
Constructor. More... | |
virtual | ~SimpleOrthoManager () |
Virtual destructor for memory safety of derived classes. More... | |
void | innerProd (const MV &X, const MV &Y, mat_type &Z) const |
Provides the inner product defining the orthogonality concepts. More... | |
void | norm (const MV &X, std::vector< magnitude_type > &normVec) const |
void | project (MV &X, Teuchos::Array< mat_ptr > C, Teuchos::ArrayView< Teuchos::RCP< const MV > > Q) const |
int | normalize (MV &X, mat_ptr B) const |
magnitude_type | orthonormError (const MV &X) const |
This method computes the error in orthonormality of a multivector. More... | |
magnitude_type | orthogError (const MV &X1, const MV &X2) const |
This method computes the error in orthogonality of two multivectors. More... | |
void | setLabel (const std::string &label) |
This method sets the label used by the timers in the orthogonalization manager. More... | |
const std::string & | getLabel () const |
This method returns the label being used by the timers in the orthogonalization manager. More... | |
Public Member Functions inherited from Belos::OrthoManager< Scalar, MV > | |
OrthoManager () | |
Default constructor. More... | |
virtual | ~OrthoManager () |
Destructor. More... | |
virtual void | norm (const MV &X, std::vector< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &normvec) const =0 |
Compute the norm(s) of the column(s) of X. More... | |
virtual void | project (MV &X, Teuchos::Array< Teuchos::RCP< Teuchos::SerialDenseMatrix< int, Scalar > > > C, Teuchos::ArrayView< Teuchos::RCP< const MV > > Q) const =0 |
Project X against the (orthogonal) entries of Q. More... | |
virtual int | normalize (MV &X, Teuchos::RCP< Teuchos::SerialDenseMatrix< int, Scalar > > B) const =0 |
This method takes a multivector X and attempts to compute an orthonormal basis for , with respect to innerProd(). More... | |
int | projectAndNormalize (MV &X, Teuchos::Array< Teuchos::RCP< Teuchos::SerialDenseMatrix< int, Scalar > > > C, Teuchos::RCP< Teuchos::SerialDenseMatrix< int, Scalar > > B, Teuchos::ArrayView< Teuchos::RCP< const MV > > Q) const |
Project X against the Q[i] and normalize X. More... | |
Public Member Functions inherited from Teuchos::ParameterListAcceptorDefaultBase | |
RCP< ParameterList > | getNonconstParameterList () |
RCP< ParameterList > | unsetParameterList () |
RCP< const ParameterList > | getParameterList () const |
Protected Member Functions | |
virtual int | projectAndNormalizeImpl (MV &X, Teuchos::Array< mat_ptr > C, mat_ptr B, Teuchos::ArrayView< Teuchos::RCP< const MV > > Q) const |
Protected Member Functions inherited from Belos::OrthoManager< Scalar, MV > | |
virtual int | projectAndNormalizeImpl (MV &X, Teuchos::Array< Teuchos::RCP< Teuchos::SerialDenseMatrix< int, Scalar > > > C, Teuchos::RCP< Teuchos::SerialDenseMatrix< int, Scalar > > B, Teuchos::ArrayView< Teuchos::RCP< const MV > > Q) const =0 |
Protected Member Functions inherited from Teuchos::ParameterListAcceptorDefaultBase | |
void | setMyParamList (const RCP< ParameterList > ¶mList) |
RCP< ParameterList > | getMyNonconstParamList () |
RCP< const ParameterList > | getMyParamList () const |
Private Types | |
typedef MultiVecTraits< Scalar, MV > | MVT |
typedef Teuchos::ScalarTraits < Scalar > | STS |
typedef Teuchos::ScalarTraits < magnitude_type > | STM |
Private Member Functions | |
int | normalizeMgs (MV &X, Teuchos::RCP< Teuchos::SerialDenseMatrix< int, Scalar > > B) const |
int | normalizeCgs (MV &X, mat_ptr B) const |
void | allocateProjectionCoefficients (Teuchos::Array< mat_ptr > &C, Teuchos::ArrayView< Teuchos::RCP< const MV > > Q, const MV &X, const bool attemptToRecycle=true) const |
void | rawProject (MV &X, Teuchos::ArrayView< Teuchos::RCP< const MV > > Q, Teuchos::ArrayView< mat_ptr > C) const |
Private Attributes | |
std::string | label_ |
Label for Belos timer display. More... | |
Teuchos::RCP< OutputManager < Scalar > > | outMan_ |
Output manager (used mainly for debugging). More... | |
bool | reorthogonalize_ |
Whether or not to do (unconditional) reorthogonalization. More... | |
bool | useMgs_ |
Whether to use MGS or CGS in the normalize() step. More... | |
Teuchos::RCP < Teuchos::ParameterList > | defaultParams_ |
Default parameter list. More... | |
Simple OrthoManager implementation for benchmarks.
This is a very simple orthogonalization method and should only be used for benchmarks. It performs optional unconditional reorthogonalization (no norm tests), but has no rank-revealing features.
Definition at line 35 of file BelosSimpleOrthoManager.hpp.
typedef Scalar Belos::SimpleOrthoManager< Scalar, MV >::scalar_type |
Definition at line 39 of file BelosSimpleOrthoManager.hpp.
typedef Teuchos::ScalarTraits<Scalar>::magnitudeType Belos::SimpleOrthoManager< Scalar, MV >::magnitude_type |
Definition at line 40 of file BelosSimpleOrthoManager.hpp.
typedef Teuchos::SerialDenseMatrix<int, Scalar> Belos::SimpleOrthoManager< Scalar, MV >::mat_type |
Definition at line 41 of file BelosSimpleOrthoManager.hpp.
typedef Teuchos::RCP<Teuchos::SerialDenseMatrix<int, Scalar> > Belos::SimpleOrthoManager< Scalar, MV >::mat_ptr |
Definition at line 42 of file BelosSimpleOrthoManager.hpp.
|
private |
Definition at line 45 of file BelosSimpleOrthoManager.hpp.
|
private |
Definition at line 46 of file BelosSimpleOrthoManager.hpp.
|
private |
Definition at line 47 of file BelosSimpleOrthoManager.hpp.
|
inline |
Constructor.
outMan | [in/out] Output manager. If not null, use for various kinds of status output (in particular, for debugging). |
label | [in] Label for Belos timers. |
params | [in/out] List of configuration parameters. Call getDefaultParameters() or getFastParameters() for valid parameter lists. |
Definition at line 185 of file BelosSimpleOrthoManager.hpp.
|
inline |
Constructor.
label | [in] Label for Belos timers. |
Definition at line 212 of file BelosSimpleOrthoManager.hpp.
|
inlinevirtual |
Virtual destructor for memory safety of derived classes.
Definition at line 225 of file BelosSimpleOrthoManager.hpp.
|
inlinevirtual |
Get a default list of parameters.
The "default" parameter list sets reasonably safe options in terms of accuracy of the computed orthogonalization. Call getFastParameters()
if you prefer to sacrifice some accuracy for speed.
Reimplemented from Teuchos::ParameterListAcceptor.
Definition at line 95 of file BelosSimpleOrthoManager.hpp.
|
inline |
Get a "fast" list of parameters.
The "fast" parameter list favors speed of orthogonalization, but sacrifices some safety and accuracy. Call getDefaultParameters()
for safer and more accurate options.
Definition at line 124 of file BelosSimpleOrthoManager.hpp.
|
inlinevirtual |
Implements Teuchos::ParameterListAcceptor.
Definition at line 143 of file BelosSimpleOrthoManager.hpp.
|
inlinevirtual |
Provides the inner product defining the orthogonality concepts.
All concepts of orthogonality discussed in this class are with respect to this inner product.
M
, then this might be the M
inner product ( ). Implements Belos::OrthoManager< Scalar, MV >.
Definition at line 227 of file BelosSimpleOrthoManager.hpp.
|
inline |
Definition at line 231 of file BelosSimpleOrthoManager.hpp.
|
inline |
Definition at line 242 of file BelosSimpleOrthoManager.hpp.
|
inline |
Definition at line 262 of file BelosSimpleOrthoManager.hpp.
|
inlineprotectedvirtual |
Definition at line 278 of file BelosSimpleOrthoManager.hpp.
|
inlinevirtual |
This method computes the error in orthonormality of a multivector.
Implements Belos::OrthoManager< Scalar, MV >.
Definition at line 292 of file BelosSimpleOrthoManager.hpp.
|
inlinevirtual |
This method computes the error in orthogonality of two multivectors.
Implements Belos::OrthoManager< Scalar, MV >.
Definition at line 305 of file BelosSimpleOrthoManager.hpp.
|
inlinevirtual |
This method sets the label used by the timers in the orthogonalization manager.
Implements Belos::OrthoManager< Scalar, MV >.
Definition at line 314 of file BelosSimpleOrthoManager.hpp.
|
inlinevirtual |
This method returns the label being used by the timers in the orthogonalization manager.
Implements Belos::OrthoManager< Scalar, MV >.
Definition at line 315 of file BelosSimpleOrthoManager.hpp.
|
inlineprivate |
Definition at line 320 of file BelosSimpleOrthoManager.hpp.
|
inlineprivate |
Definition at line 375 of file BelosSimpleOrthoManager.hpp.
|
inlineprivate |
Definition at line 450 of file BelosSimpleOrthoManager.hpp.
|
inlineprivate |
Definition at line 501 of file BelosSimpleOrthoManager.hpp.
|
private |
Label for Belos timer display.
Definition at line 50 of file BelosSimpleOrthoManager.hpp.
|
private |
Output manager (used mainly for debugging).
Definition at line 52 of file BelosSimpleOrthoManager.hpp.
|
private |
Whether or not to do (unconditional) reorthogonalization.
Definition at line 54 of file BelosSimpleOrthoManager.hpp.
|
private |
Whether to use MGS or CGS in the normalize() step.
Definition at line 56 of file BelosSimpleOrthoManager.hpp.
|
mutableprivate |
Default parameter list.
Definition at line 58 of file BelosSimpleOrthoManager.hpp.