Anasazi::MultiVec< ScalarType > Class Template Reference

Anasazi's templated virtual class for constructing a multi-vector that can interface with the MultiVecTraits class used by the eigensolvers. More...

#include <AnasaziMultiVec.hpp>

List of all members.

Public Member Functions

Constructor/Destructor
 MultiVec ()
 Anasazi::MultiVec constructor.
virtual ~MultiVec ()
 Anasazi::MultiVec destructor.
Creation methods
virtual MultiVec< ScalarType > * Clone (const int numvecs) const =0
 Creates a new empty Anasazi::MultiVec containing numvecs columns.
virtual MultiVec< ScalarType > * CloneCopy () const =0
 Creates a new Anasazi::MultiVec and copies contents of *this into the new vector (deep copy).
virtual MultiVec< ScalarType > * CloneCopy (const std::vector< int > &index) const =0
 Creates a new Anasazi::MultiVec and copies the selected contents of *this into the new vector (deep copy). The copied vectors from *this are indicated by the index.size() indices in index.
virtual MultiVec< ScalarType > * CloneView (const std::vector< int > &index)=0
 Creates a new Anasazi::MultiVec that shares the selected contents of *this. The index of the numvecs vectors shallow copied from *this are indicated by the indices given in index.
Attribute methods
virtual int GetVecLength () const =0
 Obtain the vector length of *this.
virtual int GetNumberVecs () const =0
 Obtain the number of vectors in *this.
Update methods
virtual void MvTimesMatAddMv (ScalarType alpha, const MultiVec< ScalarType > &A, const Teuchos::SerialDenseMatrix< int, ScalarType > &B, ScalarType beta)=0
 Update *this with alpha * A * B + beta * (*this).
virtual void MvAddMv (ScalarType alpha, const MultiVec< ScalarType > &A, ScalarType beta, const MultiVec< ScalarType > &B)=0
 Replace *this with alpha * A + beta * B.
virtual void MvTransMv (ScalarType alpha, const MultiVec< ScalarType > &A, Teuchos::SerialDenseMatrix< int, ScalarType > &B) const =0
 Compute a dense matrix B through the matrix-matrix multiply alpha * A^T * (*this).
virtual void MvDot (const MultiVec< ScalarType > &A, std::vector< ScalarType > &b) const =0
 Compute a vector b where the components are the individual dot-products, i.e.b[i] = A[i]^H*this[i] where A[i] is the i-th column of A.
Norm method
virtual void MvNorm (std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &normvec) const =0
 Compute the 2-norm of each individual vector of *this. Upon return, normvec[i] holds the 2-norm of the i-th vector of *this.
Initialization methods
virtual void SetBlock (const MultiVec< ScalarType > &A, const std::vector< int > &index)=0
 Copy the vectors in A to a set of vectors in *this. The numvecs vectors in A are copied to a subset of vectors in *this indicated by the indices given in index.
virtual void MvScale (ScalarType alpha)=0
 Scale each element of the vectors in *this with alpha.
virtual void MvScale (const std::vector< ScalarType > &alpha)=0
 Scale each element of the i-th vector in *this with alpha[i].
virtual void MvRandom ()=0
 Fill the vectors in *this with random numbers.
virtual void MvInit (ScalarType alpha)=0
 Replace each element of the vectors in *this with alpha.
Print method
virtual void MvPrint (std::ostream &os) const =0
 Print *this multivector to the os output stream.


Detailed Description

template<class ScalarType>
class Anasazi::MultiVec< ScalarType >

Anasazi's templated virtual class for constructing a multi-vector that can interface with the MultiVecTraits class used by the eigensolvers.

A concrete implementation of this class is necessary. The user can create their own implementation if those supplied are not suitable for their needs.

Author:
Ulrich Hetmaniuk, Rich Lehoucq, and Heidi Thornquist
Examples:

BlockKrylovSchur/BlockKrylovSchurEpetraExSVD.cpp.

Definition at line 53 of file AnasaziMultiVec.hpp.


Constructor & Destructor Documentation

template<class ScalarType>
Anasazi::MultiVec< ScalarType >::MultiVec (  )  [inline]

Anasazi::MultiVec constructor.

Definition at line 59 of file AnasaziMultiVec.hpp.

template<class ScalarType>
virtual Anasazi::MultiVec< ScalarType >::~MultiVec (  )  [inline, virtual]

Anasazi::MultiVec destructor.

Definition at line 62 of file AnasaziMultiVec.hpp.


Member Function Documentation

template<class ScalarType>
virtual MultiVec<ScalarType>* Anasazi::MultiVec< ScalarType >::Clone ( const int  numvecs  )  const [pure virtual]

Creates a new empty Anasazi::MultiVec containing numvecs columns.

Returns:
Pointer to the new multivector

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
virtual MultiVec<ScalarType>* Anasazi::MultiVec< ScalarType >::CloneCopy (  )  const [pure virtual]

Creates a new Anasazi::MultiVec and copies contents of *this into the new vector (deep copy).

Returns:
Pointer to the new multivector

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
virtual MultiVec<ScalarType>* Anasazi::MultiVec< ScalarType >::CloneCopy ( const std::vector< int > &  index  )  const [pure virtual]

Creates a new Anasazi::MultiVec and copies the selected contents of *this into the new vector (deep copy). The copied vectors from *this are indicated by the index.size() indices in index.

Returns:
Pointer to the new multivector

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
virtual MultiVec<ScalarType>* Anasazi::MultiVec< ScalarType >::CloneView ( const std::vector< int > &  index  )  [pure virtual]

Creates a new Anasazi::MultiVec that shares the selected contents of *this. The index of the numvecs vectors shallow copied from *this are indicated by the indices given in index.

Returns:
Pointer to the new multivector

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
virtual int Anasazi::MultiVec< ScalarType >::GetVecLength (  )  const [pure virtual]

Obtain the vector length of *this.

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
virtual int Anasazi::MultiVec< ScalarType >::GetNumberVecs (  )  const [pure virtual]

Obtain the number of vectors in *this.

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
virtual void Anasazi::MultiVec< ScalarType >::MvTimesMatAddMv ( ScalarType  alpha,
const MultiVec< ScalarType > &  A,
const Teuchos::SerialDenseMatrix< int, ScalarType > &  B,
ScalarType  beta 
) [pure virtual]

Update *this with alpha * A * B + beta * (*this).

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
virtual void Anasazi::MultiVec< ScalarType >::MvAddMv ( ScalarType  alpha,
const MultiVec< ScalarType > &  A,
ScalarType  beta,
const MultiVec< ScalarType > &  B 
) [pure virtual]

Replace *this with alpha * A + beta * B.

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
virtual void Anasazi::MultiVec< ScalarType >::MvTransMv ( ScalarType  alpha,
const MultiVec< ScalarType > &  A,
Teuchos::SerialDenseMatrix< int, ScalarType > &  B 
) const [pure virtual]

Compute a dense matrix B through the matrix-matrix multiply alpha * A^T * (*this).

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
virtual void Anasazi::MultiVec< ScalarType >::MvDot ( const MultiVec< ScalarType > &  A,
std::vector< ScalarType > &  b 
) const [pure virtual]

Compute a vector b where the components are the individual dot-products, i.e.b[i] = A[i]^H*this[i] where A[i] is the i-th column of A.

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
virtual void Anasazi::MultiVec< ScalarType >::MvNorm ( std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &  normvec  )  const [pure virtual]

Compute the 2-norm of each individual vector of *this. Upon return, normvec[i] holds the 2-norm of the i-th vector of *this.

template<class ScalarType>
virtual void Anasazi::MultiVec< ScalarType >::SetBlock ( const MultiVec< ScalarType > &  A,
const std::vector< int > &  index 
) [pure virtual]

Copy the vectors in A to a set of vectors in *this. The numvecs vectors in A are copied to a subset of vectors in *this indicated by the indices given in index.

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
virtual void Anasazi::MultiVec< ScalarType >::MvScale ( ScalarType  alpha  )  [pure virtual]

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

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
virtual void Anasazi::MultiVec< ScalarType >::MvScale ( const std::vector< ScalarType > &  alpha  )  [pure virtual]

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

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
virtual void Anasazi::MultiVec< ScalarType >::MvRandom (  )  [pure virtual]

Fill the vectors in *this with random numbers.

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
virtual void Anasazi::MultiVec< ScalarType >::MvInit ( ScalarType  alpha  )  [pure virtual]

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

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
virtual void Anasazi::MultiVec< ScalarType >::MvPrint ( std::ostream &  os  )  const [pure virtual]

Print *this multivector to the os output stream.

Implemented in Anasazi::EpetraMultiVec.


The documentation for this class was generated from the following file:
Generated on Wed May 12 21:40:24 2010 for Anasazi by  doxygen 1.4.7