Belos Version of the Day
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
Belos::details::StubTsqrAdapter< MultiVectorType, DM > Class Template Reference

"Stub" TSQR adaptor for unsupported multivector types. More...

#include <BelosStubTsqrAdapter.hpp>

Inherits Teuchos::ParameterListAcceptorDefaultBase.

Public Types

typedef MultiVectorType MV
 
typedef double scalar_type
 
typedef int ordinal_type
 
typedef int node_type
 
typedef Teuchos::ScalarTraits< scalar_type >::magnitudeType magnitude_type
 

Public Member Functions

 StubTsqrAdapter (const Teuchos::RCP< Teuchos::ParameterList > &plist)
 Constructor (that accepts a parameter list).
 
 StubTsqrAdapter ()
 Default constructor (stub; throws std::logic_error).
 
 StubTsqrAdapter (const StubTsqrAdapter &rhs)
 Copy constructor (throws std::logic_error).
 
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters () const
 Get list of valid default parameters (stub; throws std::logic_error).
 
void setParameterList (const Teuchos::RCP< Teuchos::ParameterList > &plist)
 Set parameters (stub; throws std::logic_error).
 
void factorExplicit (MV &A, MV &Q, DM &R, const bool forceNonnegativeDiagonal=false)
 Compute QR factorization [Q,R] = qr(A,0) (stub; throws std::logic_error).
 
int revealRank (MV &Q, DM &R, const magnitude_type &tol)
 Rank-revealing decomposition (stub; does nothing).
 

Detailed Description

template<class MultiVectorType, class DM = DefaultDenseMatrix<int,double>>
class Belos::details::StubTsqrAdapter< MultiVectorType, DM >

"Stub" TSQR adaptor for unsupported multivector types.

TSQR (Tall Skinny QR factorization) is an orthogonalization kernel that is as accurate as Householder QR, yet requires only $2 \log P$ messages between $P$ MPI processes, independently of the number of columns in the multivector.

TSQR works independently of the particular multivector implementation, and interfaces to the latter via an adapter class. Each multivector type MV needs its own adapter class. The specialization of MultiVecTraits for MV refers to its corresponding adapter class as its tsqr_adaptor_type [sic; sorry about the lack of standard spelling of "adapter"] typedef. For examples, please refer to the Epetra_MultiVector and Tpetra::MultiVector specializations of Belos::MultiVecTraits.

Nevertheless, there may be multivector types for which a TSQR adapter has not yet been written. This "stub" adapter implements the interface that TSQR adapters must implement, but all of its methods throw std::logic_error to indicate that this is a stub. Thus, it allows Belos classes like TsqrOrthoManagerImpl to compile successfully for unsupported MV types. This in turn allows OrthoManagerFactory to be templated on the MV type.

Definition at line 51 of file BelosStubTsqrAdapter.hpp.

Member Typedef Documentation

◆ MV

template<class MultiVectorType , class DM = DefaultDenseMatrix<int,double>>
typedef MultiVectorType Belos::details::StubTsqrAdapter< MultiVectorType, DM >::MV

Definition at line 53 of file BelosStubTsqrAdapter.hpp.

◆ scalar_type

template<class MultiVectorType , class DM = DefaultDenseMatrix<int,double>>
typedef double Belos::details::StubTsqrAdapter< MultiVectorType, DM >::scalar_type

Definition at line 54 of file BelosStubTsqrAdapter.hpp.

◆ ordinal_type

template<class MultiVectorType , class DM = DefaultDenseMatrix<int,double>>
typedef int Belos::details::StubTsqrAdapter< MultiVectorType, DM >::ordinal_type

Definition at line 55 of file BelosStubTsqrAdapter.hpp.

◆ node_type

template<class MultiVectorType , class DM = DefaultDenseMatrix<int,double>>
typedef int Belos::details::StubTsqrAdapter< MultiVectorType, DM >::node_type

Definition at line 56 of file BelosStubTsqrAdapter.hpp.

◆ magnitude_type

template<class MultiVectorType , class DM = DefaultDenseMatrix<int,double>>
typedef Teuchos::ScalarTraits<scalar_type>::magnitudeType Belos::details::StubTsqrAdapter< MultiVectorType, DM >::magnitude_type

Definition at line 57 of file BelosStubTsqrAdapter.hpp.

Constructor & Destructor Documentation

◆ StubTsqrAdapter() [1/3]

template<class MultiVectorType , class DM = DefaultDenseMatrix<int,double>>
Belos::details::StubTsqrAdapter< MultiVectorType, DM >::StubTsqrAdapter ( const Teuchos::RCP< Teuchos::ParameterList > &  plist)
inline

Constructor (that accepts a parameter list).

Parameters
plist[in] List of parameters for configuring TSQR. The specific parameter keys that are read depend on the TSQR implementation. For details, call getValidParameters() and examine the documentation embedded therein.

Definition at line 65 of file BelosStubTsqrAdapter.hpp.

◆ StubTsqrAdapter() [2/3]

template<class MultiVectorType , class DM = DefaultDenseMatrix<int,double>>
Belos::details::StubTsqrAdapter< MultiVectorType, DM >::StubTsqrAdapter ( )
inline

Default constructor (stub; throws std::logic_error).

Definition at line 73 of file BelosStubTsqrAdapter.hpp.

◆ StubTsqrAdapter() [3/3]

template<class MultiVectorType , class DM = DefaultDenseMatrix<int,double>>
Belos::details::StubTsqrAdapter< MultiVectorType, DM >::StubTsqrAdapter ( const StubTsqrAdapter< MultiVectorType, DM > &  rhs)
inline

Copy constructor (throws std::logic_error).

Definition at line 81 of file BelosStubTsqrAdapter.hpp.

Member Function Documentation

◆ getValidParameters()

template<class MultiVectorType , class DM = DefaultDenseMatrix<int,double>>
Teuchos::RCP< const Teuchos::ParameterList > Belos::details::StubTsqrAdapter< MultiVectorType, DM >::getValidParameters ( ) const
inline

Get list of valid default parameters (stub; throws std::logic_error).

Definition at line 91 of file BelosStubTsqrAdapter.hpp.

◆ setParameterList()

template<class MultiVectorType , class DM = DefaultDenseMatrix<int,double>>
void Belos::details::StubTsqrAdapter< MultiVectorType, DM >::setParameterList ( const Teuchos::RCP< Teuchos::ParameterList > &  plist)
inline

Set parameters (stub; throws std::logic_error).

Definition at line 100 of file BelosStubTsqrAdapter.hpp.

◆ factorExplicit()

template<class MultiVectorType , class DM = DefaultDenseMatrix<int,double>>
void Belos::details::StubTsqrAdapter< MultiVectorType, DM >::factorExplicit ( MV A,
MV Q,
DM &  R,
const bool  forceNonnegativeDiagonal = false 
)
inline

Compute QR factorization [Q,R] = qr(A,0) (stub; throws std::logic_error).

Definition at line 109 of file BelosStubTsqrAdapter.hpp.

◆ revealRank()

template<class MultiVectorType , class DM = DefaultDenseMatrix<int,double>>
int Belos::details::StubTsqrAdapter< MultiVectorType, DM >::revealRank ( MV Q,
DM &  R,
const magnitude_type tol 
)
inline

Rank-revealing decomposition (stub; does nothing).

Definition at line 121 of file BelosStubTsqrAdapter.hpp.


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

Generated for Belos by doxygen 1.9.8