Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > > Class Template Reference

Template specialization of Anasazi::MultiVecTraits class using the Thyra::MultiVectorBase class. More...

#include <AnasaziThyraAdapter.hpp>

List of all members.

Static Public Member Functions

Creation methods
static Teuchos::RCP< Thyra::MultiVectorBase<
ScalarType > > 
Clone (const Thyra::MultiVectorBase< ScalarType > &mv, const int numvecs)
 Creates a new empty MultiVectorBase containing numvecs columns.
static Teuchos::RCP< Thyra::MultiVectorBase<
ScalarType > > 
CloneCopy (const Thyra::MultiVectorBase< ScalarType > &mv)
 Creates a new MultiVectorBase and copies contents of mv into the new vector (deep copy).
static Teuchos::RCP< Thyra::MultiVectorBase<
ScalarType > > 
CloneCopy (const Thyra::MultiVectorBase< ScalarType > &mv, const std::vector< int > &index)
 Creates a new MultiVectorBase and copies the selected contents of mv into the new vector (deep copy).
static Teuchos::RCP< Thyra::MultiVectorBase<
ScalarType > > 
CloneView (Thyra::MultiVectorBase< ScalarType > &mv, const std::vector< int > &index)
 Creates a new MultiVectorBase that shares the selected contents of mv (shallow copy).
static Teuchos::RCP< const
Thyra::MultiVectorBase< ScalarType > > 
CloneView (const Thyra::MultiVectorBase< ScalarType > &mv, const std::vector< int > &index)
 Creates a new const MultiVectorBase that shares the selected contents of mv (shallow copy).
Attribute methods
static int GetVecLength (const Thyra::MultiVectorBase< ScalarType > &mv)
 Obtain the vector length of mv.
static int GetNumberVecs (const Thyra::MultiVectorBase< ScalarType > &mv)
 Obtain the number of vectors in mv.
Update methods
static void MvTimesMatAddMv (const ScalarType alpha, const Thyra::MultiVectorBase< ScalarType > &A, const Teuchos::SerialDenseMatrix< int, ScalarType > &B, const ScalarType beta, Thyra::MultiVectorBase< ScalarType > &mv)
 Update mv with $ \alpha AB + \beta mv $.
static void MvAddMv (const ScalarType alpha, const Thyra::MultiVectorBase< ScalarType > &A, const ScalarType beta, const Thyra::MultiVectorBase< ScalarType > &B, Thyra::MultiVectorBase< ScalarType > &mv)
 Replace mv with $\alpha A + \beta B$.
static void MvTransMv (const ScalarType alpha, const Thyra::MultiVectorBase< ScalarType > &A, const Thyra::MultiVectorBase< ScalarType > &mv, Teuchos::SerialDenseMatrix< int, ScalarType > &B)
 Compute a dense matrix B through the matrix-matrix multiply $ \alpha A^Tmv $.
static void MvDot (const Thyra::MultiVectorBase< ScalarType > &mv, const Thyra::MultiVectorBase< ScalarType > &A, std::vector< ScalarType > &b)
 Compute a 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]$.
static void MvScale (Thyra::MultiVectorBase< ScalarType > &mv, const ScalarType alpha)
 Scale each element of the vectors in *this with alpha.
static void MvScale (Thyra::MultiVectorBase< ScalarType > &mv, const std::vector< ScalarType > &alpha)
 Scale each element of the i-th vector in *this with alpha[i].
Norm method
static void MvNorm (const Thyra::MultiVectorBase< ScalarType > &mv, std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &normvec)
 Compute the 2-norm of each individual vector of mv. Upon return, normvec[i] holds the value of $||mv_i||_2$, the i-th column of mv.
Initialization methods
static void SetBlock (const Thyra::MultiVectorBase< ScalarType > &A, const std::vector< int > &index, Thyra::MultiVectorBase< ScalarType > &mv)
 Copy the vectors in A to a set of vectors in mv indicated by the indices given in index.
static void MvRandom (Thyra::MultiVectorBase< ScalarType > &mv)
 Replace the vectors in mv with random vectors.
static void MvInit (Thyra::MultiVectorBase< ScalarType > &mv, ScalarType alpha=Teuchos::ScalarTraits< ScalarType >::zero())
 Replace each element of the vectors in mv with alpha.
Print method
static void MvPrint (const Thyra::MultiVectorBase< ScalarType > &mv, std::ostream &os)
 Print the mv multi-vector to the os output stream.


Detailed Description

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

Template specialization of Anasazi::MultiVecTraits class using the Thyra::MultiVectorBase class.

This interface will ensure that any implementation of MultiVectorBaseClass will be accepted by the Anasazi templated solvers.


Member Function Documentation

template<class ScalarType>
static Teuchos::RCP< Thyra::MultiVectorBase<ScalarType> > Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::Clone ( const Thyra::MultiVectorBase< ScalarType > &  mv,
const int  numvecs 
) [inline, static]

Creates a new empty MultiVectorBase containing numvecs columns.

Returns:
Reference-counted pointer to the new MultiVectorBase.

template<class ScalarType>
static Teuchos::RCP< Thyra::MultiVectorBase<ScalarType> > Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::CloneCopy ( const Thyra::MultiVectorBase< ScalarType > &  mv  )  [inline, static]

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

Returns:
Reference-counted pointer to the new MultiVectorBase.

template<class ScalarType>
static Teuchos::RCP< Thyra::MultiVectorBase< ScalarType > > Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::CloneCopy ( const Thyra::MultiVectorBase< ScalarType > &  mv,
const std::vector< int > &  index 
) [inline, static]

Creates a new MultiVectorBase and copies the selected contents of mv into the new 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.

template<class ScalarType>
static Teuchos::RCP< Thyra::MultiVectorBase< ScalarType > > Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::CloneView ( Thyra::MultiVectorBase< ScalarType > &  mv,
const std::vector< int > &  index 
) [inline, static]

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.

template<class ScalarType>
static Teuchos::RCP<const Thyra::MultiVectorBase< ScalarType > > Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::CloneView ( const Thyra::MultiVectorBase< ScalarType > &  mv,
const std::vector< int > &  index 
) [inline, static]

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.

template<class ScalarType>
static int Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::GetVecLength ( const Thyra::MultiVectorBase< ScalarType > &  mv  )  [inline, static]

Obtain the vector length of mv.

template<class ScalarType>
static int Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::GetNumberVecs ( const Thyra::MultiVectorBase< ScalarType > &  mv  )  [inline, static]

Obtain the number of vectors in mv.

template<class ScalarType>
static void Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvTimesMatAddMv ( const ScalarType  alpha,
const Thyra::MultiVectorBase< ScalarType > &  A,
const Teuchos::SerialDenseMatrix< int, ScalarType > &  B,
const ScalarType  beta,
Thyra::MultiVectorBase< ScalarType > &  mv 
) [inline, static]

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

template<class ScalarType>
static void Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvAddMv ( const ScalarType  alpha,
const Thyra::MultiVectorBase< ScalarType > &  A,
const ScalarType  beta,
const Thyra::MultiVectorBase< ScalarType > &  B,
Thyra::MultiVectorBase< ScalarType > &  mv 
) [inline, static]

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

template<class ScalarType>
static void Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvTransMv ( const ScalarType  alpha,
const Thyra::MultiVectorBase< ScalarType > &  A,
const Thyra::MultiVectorBase< ScalarType > &  mv,
Teuchos::SerialDenseMatrix< int, ScalarType > &  B 
) [inline, static]

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

template<class ScalarType>
static void Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvDot ( const Thyra::MultiVectorBase< ScalarType > &  mv,
const Thyra::MultiVectorBase< ScalarType > &  A,
std::vector< ScalarType > &  b 
) [inline, static]

Compute a 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]$.

template<class ScalarType>
static void Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvScale ( Thyra::MultiVectorBase< ScalarType > &  mv,
const ScalarType  alpha 
) [inline, static]

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

template<class ScalarType>
static void Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvScale ( Thyra::MultiVectorBase< ScalarType > &  mv,
const std::vector< ScalarType > &  alpha 
) [inline, static]

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

template<class ScalarType>
static void Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvNorm ( const Thyra::MultiVectorBase< ScalarType > &  mv,
std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &  normvec 
) [inline, static]

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

template<class ScalarType>
static void Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::SetBlock ( const Thyra::MultiVectorBase< ScalarType > &  A,
const std::vector< int > &  index,
Thyra::MultiVectorBase< ScalarType > &  mv 
) [inline, static]

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

template<class ScalarType>
static void Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvRandom ( Thyra::MultiVectorBase< ScalarType > &  mv  )  [inline, static]

Replace the vectors in mv with random vectors.

template<class ScalarType>
static void Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvInit ( Thyra::MultiVectorBase< ScalarType > &  mv,
ScalarType  alpha = Teuchos::ScalarTraits<ScalarType>::zero() 
) [inline, static]

Replace each element of the vectors in mv with alpha.

template<class ScalarType>
static void Anasazi::MultiVecTraits< ScalarType, Thyra::MultiVectorBase< ScalarType > >::MvPrint ( const Thyra::MultiVectorBase< ScalarType > &  mv,
std::ostream &  os 
) [inline, static]

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


The documentation for this class was generated from the following file:
Generated on Sat Nov 21 01:07:53 2009 for Anasazi by  doxygen 1.4.7