NOX::Abstract::MultiVector Class Reference

Abstract interface for multi-vectors used by NOX. More...

#include <NOX_Abstract_MultiVector.H>

Inheritance diagram for NOX::Abstract::MultiVector:

Inheritance graph
[legend]
List of all members.

Public Types

typedef Teuchos::SerialDenseMatrix<
int, double > 
DenseMatrix
 Typename of dense matrices.

Public Member Functions

 MultiVector ()
 Default constructor. Does nothing.
virtual ~MultiVector ()
 Destructor. Does nothing.
virtual int length () const =0
 Return the length of multi-vector.
virtual int numVectors () const =0
 Return the number of vectors in the multi-vector.
virtual void print (std::ostream &stream) const =0
 Print the vector. This is meant for debugging purposes only.
virtual NOX::Abstract::MultiVectorinit (double gamma)=0
 Initialize every element of this multi-vector with gamma.
virtual NOX::Abstract::MultiVectorrandom (bool useSeed=false, int seed=1)=0
 Initialize each element of this multi-vector with a random value.
virtual NOX::Abstract::MultiVectoroperator= (const NOX::Abstract::MultiVector &source)=0
 Copy source multi-vector source into this multi-vector.
virtual NOX::Abstract::MultiVectorsetBlock (const NOX::Abstract::MultiVector &source, const vector< int > &index)=0
 Copy the vectors in source to a set of vectors in *this. The index.size() vectors in source are copied to a subset of vectors in *this indicated by the indices given in index.
virtual NOX::Abstract::MultiVectoraugment (const NOX::Abstract::MultiVector &source)=0
 Append the vectors in source to *this.
virtual NOX::Abstract::Vectoroperator[] (int i)=0
 Return a reference to the i-th column of the multivector as an abstract vector.
virtual const NOX::Abstract::Vectoroperator[] (int i) const =0
 Return a const reference to the i-th column of the multivector as an abstract vector.
virtual NOX::Abstract::MultiVectorscale (double gamma)=0
 Scale each element of this multivector by gamma.
virtual NOX::Abstract::MultiVectorupdate (double alpha, const NOX::Abstract::MultiVector &a, double gamma=0.0)=0
 Compute x = (alpha * a) + (gamma * x) where a is a multi-vector and x = *this.
virtual NOX::Abstract::MultiVectorupdate (double alpha, const NOX::Abstract::MultiVector &a, double beta, const NOX::Abstract::MultiVector &b, double gamma=0.0)=0
 Compute x = (alpha * a) + (beta * b) + (gamma * x) where a and b are multi-vectors and x = *this.
virtual NOX::Abstract::MultiVectorupdate (Teuchos::ETransp transb, double alpha, const NOX::Abstract::MultiVector &a, const DenseMatrix &b, double gamma=0.0)=0
 Compute x = (alpha * a * op(b)) + (gamma * x) where a is a multivector, b is a dense matrix, x = *this, and op(b) = b if transb = Teuchos::NO_TRANS and op(b) is b transpose if transb = Teuchos::TRANS.
virtual Teuchos::RCP< NOX::Abstract::MultiVectorclone (NOX::CopyType type=NOX::DeepCopy) const =0
 Create a new Vector of the same underlying type by cloning "this", and return a pointer to the new vector.
virtual Teuchos::RCP< NOX::Abstract::MultiVectorclone (int numvecs) const =0
 Creates a new multi-vector with numvecs columns.
virtual Teuchos::RCP< NOX::Abstract::MultiVectorsubCopy (const vector< int > &index) const =0
 Creates a new multi-vector with index.size() columns whose columns are copies of the columns of *this given by index.
virtual Teuchos::RCP< NOX::Abstract::MultiVectorsubView (const vector< int > &index) const =0
 Creates a new multi-vector with ndex.size() columns that shares the columns of *this given by index.
virtual void norm (vector< double > &result, NOX::Abstract::Vector::NormType type=NOX::Abstract::Vector::TwoNorm) const =0
 Norm.
virtual void multiply (double alpha, const NOX::Abstract::MultiVector &y, DenseMatrix &b) const =0
 Computes the matrix-matrix product $\alpha * y^T * (*this)$.

Detailed Description

Abstract interface for multi-vectors used by NOX.


Member Function Documentation

virtual Teuchos::RCP<NOX::Abstract::MultiVector> NOX::Abstract::MultiVector::clone ( NOX::CopyType  type = NOX::DeepCopy  )  const [pure virtual]

Create a new Vector of the same underlying type by cloning "this", and return a pointer to the new vector.

If type is NOX::DeepCopy, then we need to create an exact replica of "this". Otherwise, if type is NOX::ShapeCopy, we need only replicate the shape of "this". Note that there is no assumption that a vector created by ShapeCopy is initialized to zeros.

Returns:
Pointer to newly created vector or NULL if clone is not supported.

Implemented in NOX::MultiVector, LOCA::Extended::MultiVector, LOCA::Hopf::ComplexMultiVector, LOCA::Hopf::MooreSpence::ExtendedMultiVector, LOCA::MultiContinuation::ExtendedMultiVector, LOCA::Pitchfork::MooreSpence::ExtendedMultiVector, LOCA::TurningPoint::MooreSpence::ExtendedMultiVector, NOX::Epetra::MultiVector, and NOX::Thyra::MultiVector.

virtual const NOX::Abstract::Vector& NOX::Abstract::MultiVector::operator[] ( int  i  )  const [pure virtual]

Return a const reference to the i-th column of the multivector as an abstract vector.

It is assumed that any implementation of this method returns a vector that has a view of the underlying data in the multivector.

Implemented in NOX::MultiVector, LOCA::Extended::MultiVector, NOX::Epetra::MultiVector, and NOX::Thyra::MultiVector.

virtual NOX::Abstract::Vector& NOX::Abstract::MultiVector::operator[] ( int  i  )  [pure virtual]

Return a reference to the i-th column of the multivector as an abstract vector.

It is assumed that any implementation of this method returns a vector that has a view of the underlying data in the multivector

Implemented in NOX::MultiVector, LOCA::Extended::MultiVector, NOX::Epetra::MultiVector, and NOX::Thyra::MultiVector.


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