Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector > Class Template Reference

Implementation of the Anasazi::MultiVecTraits for NOX::Abstract::MultiVectors. More...

#include <Anasazi_LOCA_MultiVecTraits.H>

List of all members.

Public Types

typedef double ScalarType
 Synony for double.
typedef NOX::Abstract::MultiVector MV
 Synonym for NOX::Abstract::MultiVector.

Static Public Member Functions

static Teuchos::RCP< MVClone (const MV &mv, const int numvecs)
 Creates a new empty MV containing numvecs columns.
static Teuchos::RCP< MVCloneCopy (const MV &mv)
 Creates a new MV and copies contents of mv into the new vector (deep copy).
static Teuchos::RCP< MVCloneCopy (const MV &mv, const std::vector< int > &index)
 Creates a new MV and copies the selected contents of mv into the new vector (deep copy).
static Teuchos::RCP< MVCloneView (MV &mv, const std::vector< int > &index)
 Creates a new MV that shares the selected contents of mv (shallow copy).
static Teuchos::RCP< const MVCloneView (const MV &mv, const std::vector< int > &index)
 Creates a new const MV that shares the selected contents of mv (shallow copy).
static int GetVecLength (const MV &mv)
 Obtain the vector length of mv.
static int GetNumberVecs (const MV &mv)
 Obtain the number of vectors in mv.
static void MvTimesMatAddMv (const ScalarType alpha, const MV &A, const Teuchos::SerialDenseMatrix< int, ScalarType > &B, const ScalarType beta, MV &mv)
 Update mv with $ \alpha AB + \beta mv $.
static void MvAddMv (const ScalarType alpha, const MV &A, const ScalarType beta, const MV &B, MV &mv)
 Replace mv with $\alpha A + \beta B$.
static void MvTransMv (const ScalarType alpha, const MV &A, const MV &mv, Teuchos::SerialDenseMatrix< int, ScalarType > &B)
 Compute a dense matrix B through the matrix-matrix multiply $ \alpha A^Hmv $.
static void MvDot (const MV &mv, const MV &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]^Hmv[i]$.
static void MvScale (MV &mv, const ScalarType alpha)
 Scale each element of the vectors in *this with alpha.
static void MvScale (MV &mv, const std::vector< ScalarType > &alpha)
 Scale each element of the i-th vector in *this with alpha[i].
static void MvNorm (const MV &mv, std::vector< double > &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.
static void SetBlock (const MV &A, const std::vector< int > &index, MV &mv)
 Copy the vectors in A to a set of vectors in mv indicated by the indices given in index.
static void MvRandom (MV &mv)
 Replace the vectors in mv with random vectors.
static void MvInit (MV &mv, const ScalarType alpha=0.0)
 Replace each element of the vectors in mv with alpha.
static void MvPrint (const MV &mv, ostream &os)
 Print the mv multi-vector to the os output stream.


Detailed Description

template<>
class Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >

Implementation of the Anasazi::MultiVecTraits for NOX::Abstract::MultiVectors.

This class provides an implementation of the Anasazi::MultiVecTraits class for NOX::Abstract::MultiVector's, to be used in conjunction with the Anasazi::LOCA::Matrix class.

Definition at line 63 of file Anasazi_LOCA_MultiVecTraits.H.


Member Typedef Documentation

typedef double Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::ScalarType

Synony for double.

Definition at line 67 of file Anasazi_LOCA_MultiVecTraits.H.

typedef NOX::Abstract::MultiVector Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::MV

Synonym for NOX::Abstract::MultiVector.

Definition at line 70 of file Anasazi_LOCA_MultiVecTraits.H.


Member Function Documentation

static Teuchos::RCP<MV> Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::Clone ( const MV mv,
const int  numvecs 
) [inline, static]

Creates a new empty MV containing numvecs columns.

Returns:
Reference-counted pointer to the new multivector of type MV.

Definition at line 79 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::clone().

static Teuchos::RCP<MV> Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::CloneCopy ( const MV mv  )  [inline, static]

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

Returns:
Reference-counted pointer to the new multivector of type MV.

Definition at line 90 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::clone(), and NOX::DeepCopy.

static Teuchos::RCP<MV> Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::CloneCopy ( const MV mv,
const std::vector< int > &  index 
) [inline, static]

Creates a new MV 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 multivector of type MV.

Definition at line 103 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::subCopy().

static Teuchos::RCP<MV> Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::CloneView ( MV mv,
const std::vector< int > &  index 
) [inline, static]

Creates a new MV 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 multivector of type MV.

Definition at line 117 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::subView().

static Teuchos::RCP<const MV> Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::CloneView ( const MV mv,
const std::vector< int > &  index 
) [inline, static]

Creates a new const MV 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 multivector of type MV.

Definition at line 132 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::subView().

static int Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::GetVecLength ( const MV mv  )  [inline, static]

Obtain the vector length of mv.

Definition at line 143 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::length().

static int Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::GetNumberVecs ( const MV mv  )  [inline, static]

Obtain the number of vectors in mv.

Definition at line 149 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::numVectors().

static void Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::MvTimesMatAddMv ( const ScalarType  alpha,
const MV A,
const Teuchos::SerialDenseMatrix< int, ScalarType > &  B,
const ScalarType  beta,
MV mv 
) [inline, static]

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

Definition at line 161 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::update().

static void Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::MvAddMv ( const ScalarType  alpha,
const MV A,
const ScalarType  beta,
const MV B,
MV mv 
) [inline, static]

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

Definition at line 171 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::update().

static void Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::MvTransMv ( const ScalarType  alpha,
const MV A,
const MV mv,
Teuchos::SerialDenseMatrix< int, ScalarType > &  B 
) [inline, static]

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

Definition at line 181 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::multiply().

static void Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::MvDot ( const MV mv,
const MV 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]^Hmv[i]$.

Definition at line 192 of file Anasazi_LOCA_MultiVecTraits.H.

static void Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::MvScale ( MV mv,
const ScalarType  alpha 
) [inline, static]

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

Definition at line 202 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::scale().

static void Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::MvScale ( MV mv,
const std::vector< ScalarType > &  alpha 
) [inline, static]

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

Definition at line 211 of file Anasazi_LOCA_MultiVecTraits.H.

static void Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::MvNorm ( const MV mv,
std::vector< double > &  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.

Definition at line 225 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::norm().

static void Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::SetBlock ( const MV A,
const std::vector< int > &  index,
MV mv 
) [inline, static]

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

The numvecs vectors in A are copied to a subset of vectors in mv indicated by the indices given in index, i.e. mv[index[i]] = A[i].

Definition at line 243 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::setBlock().

static void Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::MvRandom ( MV mv  )  [inline, static]

Replace the vectors in mv with random vectors.

Definition at line 251 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::random().

static void Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::MvInit ( MV mv,
const ScalarType  alpha = 0.0 
) [inline, static]

Replace each element of the vectors in mv with alpha.

Definition at line 259 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::init().

static void Anasazi::MultiVecTraits< double, NOX::Abstract::MultiVector >::MvPrint ( const MV mv,
ostream &  os 
) [inline, static]

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

Definition at line 272 of file Anasazi_LOCA_MultiVecTraits.H.

References NOX::Abstract::MultiVector::print().


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

Generated on Thu Dec 17 11:02:44 2009 for Nonlinear Solver Project by  doxygen 1.5.9