Stratimikos Package Browser (Single Doxygen Collection)  Version of the Day
Private Types | List of all members
Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > > Class Template Reference

Specialization of MultiVecTraits using Thyra::MultiVectorBase. More...

#include <BelosThyraAdapter.hpp>

Private Types

typedef Thyra::MultiVectorBase< ScalarType > TMVB
 
typedef Teuchos::ScalarTraits< ScalarType > ST
 
typedef ST::magnitudeType magType
 

Creation methods

static Teuchos::RCP< TMVBClone (const TMVB &mv, const int numvecs)
 Creates a new empty MultiVectorBase containing numvecs columns. More...
 
static Teuchos::RCP< TMVBCloneCopy (const TMVB &mv)
 Creates a new MultiVectorBase and copies contents of mv into the new std::vector (deep copy). More...
 
static Teuchos::RCP< TMVBCloneCopy (const TMVB &mv, const std::vector< int > &index)
 Creates a new MultiVectorBase and copies the selected contents of mv into the new std::vector (deep copy). More...
 
static Teuchos::RCP< TMVBCloneCopy (const TMVB &mv, const Teuchos::Range1D &index)
 
static Teuchos::RCP< TMVBCloneViewNonConst (TMVB &mv, const std::vector< int > &index)
 Creates a new MultiVectorBase that shares the selected contents of mv (shallow copy). More...
 
static Teuchos::RCP< TMVBCloneViewNonConst (TMVB &mv, const Teuchos::Range1D &index)
 
static Teuchos::RCP< const TMVBCloneView (const TMVB &mv, const std::vector< int > &index)
 Creates a new const MultiVectorBase that shares the selected contents of mv (shallow copy). More...
 
static Teuchos::RCP< const TMVBCloneView (const TMVB &mv, const Teuchos::Range1D &index)
 

Attribute methods

static ptrdiff_t GetGlobalLength (const TMVB &mv)
 Obtain the std::vector length of mv. More...
 
static int GetNumberVecs (const TMVB &mv)
 Obtain the number of vectors in mv. More...
 

Update methods

static void MvTimesMatAddMv (const ScalarType alpha, const TMVB &A, const Teuchos::SerialDenseMatrix< int, ScalarType > &B, const ScalarType beta, TMVB &mv)
 Update mv with $ \alpha AB + \beta mv $. More...
 
static void MvAddMv (const ScalarType alpha, const TMVB &A, const ScalarType beta, const TMVB &B, TMVB &mv)
 Replace mv with $\alpha A + \beta B$. More...
 
static void MvScale (TMVB &mv, const ScalarType alpha)
 Scale each element of the vectors in *this with alpha. More...
 
static void MvScale (TMVB &mv, const std::vector< ScalarType > &alpha)
 Scale each element of the i-th vector in *this with alpha[i]. More...
 
static void MvTransMv (const ScalarType alpha, const TMVB &A, const TMVB &mv, Teuchos::SerialDenseMatrix< int, ScalarType > &B)
 Compute a dense matrix B through the matrix-matrix multiply $ \alpha A^Tmv $. More...
 
static void MvDot (const TMVB &mv, const TMVB &A, std::vector< ScalarType > &b)
 Compute a std::vector b where the components are the individual dot-products of the i-th columns of A and mv, i.e. $b[i] = A[i]^Tmv[i]$. More...
 

Norm method

static void MvNorm (const TMVB &mv, std::vector< magType > &normvec, NormType type=TwoNorm)
 Compute the 2-norm of each individual std::vector of mv. Upon return, normvec[i] holds the value of $||mv_i||_2$, the i-th column of mv. More...
 

Initialization methods

static void SetBlock (const TMVB &A, const std::vector< int > &index, TMVB &mv)
 Copy the vectors in A to a set of vectors in mv indicated by the indices given in index. More...
 
static void SetBlock (const TMVB &A, const Teuchos::Range1D &index, TMVB &mv)
 
static void Assign (const TMVB &A, TMVB &mv)
 
static void MvRandom (TMVB &mv)
 Replace the vectors in mv with random vectors. More...
 
static void MvInit (TMVB &mv, ScalarType alpha=Teuchos::ScalarTraits< ScalarType >::zero())
 Replace each element of the vectors in mv with alpha. More...
 

Print method

static void MvPrint (const TMVB &mv, std::ostream &os)
 Print the mv multi-std::vector to the os output stream. More...
 

Detailed Description

template<class ScalarType>
class Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >

Specialization of MultiVecTraits using Thyra::MultiVectorBase.

This is a partial specialization of Belos::MultiVecTraits class using the Thyra::MultiVectorBase class. It will ensure that any implementation of Thyra::MultiVectorBase will be accepted by the Belos templated solvers.

Definition at line 81 of file BelosThyraAdapter.hpp.

Member Typedef Documentation

◆ TMVB

template<class ScalarType >
typedef Thyra::MultiVectorBase<ScalarType> Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::TMVB
private

Definition at line 84 of file BelosThyraAdapter.hpp.

◆ ST

template<class ScalarType >
typedef Teuchos::ScalarTraits<ScalarType> Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::ST
private

Definition at line 85 of file BelosThyraAdapter.hpp.

◆ magType

template<class ScalarType >
typedef ST::magnitudeType Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::magType
private

Definition at line 86 of file BelosThyraAdapter.hpp.

Member Function Documentation

◆ Clone()

template<class ScalarType >
static Teuchos::RCP<TMVB> Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::Clone ( const TMVB mv,
const int  numvecs 
)
inlinestatic

Creates a new empty MultiVectorBase containing numvecs columns.

Returns
Reference-counted pointer to the new MultiVectorBase.

Definition at line 97 of file BelosThyraAdapter.hpp.

◆ CloneCopy() [1/3]

template<class ScalarType >
static Teuchos::RCP<TMVB> Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::CloneCopy ( const TMVB mv)
inlinestatic

Creates a new MultiVectorBase and copies contents of mv into the new std::vector (deep copy).

Returns
Reference-counted pointer to the new MultiVectorBase.

Definition at line 107 of file BelosThyraAdapter.hpp.

◆ CloneCopy() [2/3]

template<class ScalarType >
static Teuchos::RCP<TMVB> Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::CloneCopy ( const TMVB mv,
const std::vector< int > &  index 
)
inlinestatic

Creates a new MultiVectorBase and copies the selected contents of mv into the new std::vector (deep copy).

The copied vectors from mv are indicated by the indeX.size() indices in index.

Returns
Reference-counted pointer to the new MultiVectorBase.

Definition at line 122 of file BelosThyraAdapter.hpp.

◆ CloneCopy() [3/3]

template<class ScalarType >
static Teuchos::RCP<TMVB> Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::CloneCopy ( const TMVB mv,
const Teuchos::Range1D &  index 
)
inlinestatic

Definition at line 135 of file BelosThyraAdapter.hpp.

◆ CloneViewNonConst() [1/2]

template<class ScalarType >
static Teuchos::RCP<TMVB> Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::CloneViewNonConst ( TMVB mv,
const std::vector< int > &  index 
)
inlinestatic

Creates a new MultiVectorBase that shares the selected contents of mv (shallow copy).

The index of the numvecs vectors shallow copied from mv are indicated by the indices given in index.

Returns
Reference-counted pointer to the new MultiVectorBase.

Definition at line 152 of file BelosThyraAdapter.hpp.

◆ CloneViewNonConst() [2/2]

template<class ScalarType >
static Teuchos::RCP<TMVB> Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::CloneViewNonConst ( TMVB mv,
const Teuchos::Range1D &  index 
)
inlinestatic

Definition at line 188 of file BelosThyraAdapter.hpp.

◆ CloneView() [1/2]

template<class ScalarType >
static Teuchos::RCP<const TMVB> Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::CloneView ( const TMVB mv,
const std::vector< int > &  index 
)
inlinestatic

Creates a new const MultiVectorBase that shares the selected contents of mv (shallow copy).

The index of the numvecs vectors shallow copied from mv are indicated by the indices given in index.

Returns
Reference-counted pointer to the new const MultiVectorBase.

Definition at line 204 of file BelosThyraAdapter.hpp.

◆ CloneView() [2/2]

template<class ScalarType >
static Teuchos::RCP<const TMVB> Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::CloneView ( const TMVB mv,
const Teuchos::Range1D &  index 
)
inlinestatic

Definition at line 240 of file BelosThyraAdapter.hpp.

◆ GetGlobalLength()

template<class ScalarType >
static ptrdiff_t Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::GetGlobalLength ( const TMVB mv)
inlinestatic

Obtain the std::vector length of mv.

Definition at line 256 of file BelosThyraAdapter.hpp.

◆ GetNumberVecs()

template<class ScalarType >
static int Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::GetNumberVecs ( const TMVB mv)
inlinestatic

Obtain the number of vectors in mv.

Definition at line 261 of file BelosThyraAdapter.hpp.

◆ MvTimesMatAddMv()

template<class ScalarType >
static void Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvTimesMatAddMv ( const ScalarType  alpha,
const TMVB A,
const Teuchos::SerialDenseMatrix< int, ScalarType > &  B,
const ScalarType  beta,
TMVB mv 
)
inlinestatic

Update mv with $ \alpha AB + \beta mv $.

Definition at line 271 of file BelosThyraAdapter.hpp.

◆ MvAddMv()

template<class ScalarType >
static void Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvAddMv ( const ScalarType  alpha,
const TMVB A,
const ScalarType  beta,
const TMVB B,
TMVB mv 
)
inlinestatic

Replace mv with $\alpha A + \beta B$.

Definition at line 293 of file BelosThyraAdapter.hpp.

◆ MvScale() [1/2]

template<class ScalarType >
static void Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvScale ( TMVB mv,
const ScalarType  alpha 
)
inlinestatic

Scale each element of the vectors in *this with alpha.

Definition at line 305 of file BelosThyraAdapter.hpp.

◆ MvScale() [2/2]

template<class ScalarType >
static void Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvScale ( TMVB mv,
const std::vector< ScalarType > &  alpha 
)
inlinestatic

Scale each element of the i-th vector in *this with alpha[i].

Definition at line 310 of file BelosThyraAdapter.hpp.

◆ MvTransMv()

template<class ScalarType >
static void Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvTransMv ( const ScalarType  alpha,
const TMVB A,
const TMVB mv,
Teuchos::SerialDenseMatrix< int, ScalarType > &  B 
)
inlinestatic

Compute a dense matrix B through the matrix-matrix multiply $ \alpha A^Tmv $.

Definition at line 319 of file BelosThyraAdapter.hpp.

◆ MvDot()

template<class ScalarType >
static void Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvDot ( const TMVB mv,
const TMVB A,
std::vector< ScalarType > &  b 
)
inlinestatic

Compute a std::vector b where the components are the individual dot-products of the i-th columns of A and mv, i.e. $b[i] = A[i]^Tmv[i]$.

Definition at line 341 of file BelosThyraAdapter.hpp.

◆ MvNorm()

template<class ScalarType >
static void Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvNorm ( const TMVB mv,
std::vector< magType > &  normvec,
NormType  type = TwoNorm 
)
inlinestatic

Compute the 2-norm of each individual std::vector of mv. Upon return, normvec[i] holds the value of $||mv_i||_2$, the i-th column of mv.

Definition at line 352 of file BelosThyraAdapter.hpp.

◆ SetBlock() [1/2]

template<class ScalarType >
static void Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::SetBlock ( const TMVB A,
const std::vector< int > &  index,
TMVB mv 
)
inlinestatic

Copy the vectors in A to a set of vectors in mv indicated by the indices given in index.

Definition at line 373 of file BelosThyraAdapter.hpp.

◆ SetBlock() [2/2]

template<class ScalarType >
static void Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::SetBlock ( const TMVB A,
const Teuchos::Range1D &  index,
TMVB mv 
)
inlinestatic

Definition at line 402 of file BelosThyraAdapter.hpp.

◆ Assign()

template<class ScalarType >
static void Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::Assign ( const TMVB A,
TMVB mv 
)
inlinestatic

Definition at line 453 of file BelosThyraAdapter.hpp.

◆ MvRandom()

template<class ScalarType >
static void Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvRandom ( TMVB mv)
inlinestatic

Replace the vectors in mv with random vectors.

Definition at line 480 of file BelosThyraAdapter.hpp.

◆ MvInit()

template<class ScalarType >
static void Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvInit ( TMVB mv,
ScalarType  alpha = Teuchos::ScalarTraits<ScalarType>::zero() 
)
inlinestatic

Replace each element of the vectors in mv with alpha.

Definition at line 492 of file BelosThyraAdapter.hpp.

◆ MvPrint()

template<class ScalarType >
static void Belos::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvPrint ( const TMVB mv,
std::ostream &  os 
)
inlinestatic

Print the mv multi-std::vector to the os output stream.

Definition at line 504 of file BelosThyraAdapter.hpp.


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