NOX::Belos::MultiVector Class Reference

Implementation of Belos::MultiVec using NOX::Abstract::MultiVector. More...

#include <NOX_Belos_MultiVector.H>

Collaboration diagram for NOX::Belos::MultiVector:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 MultiVector (NOX::Abstract::MultiVector &noxMultiVec)
 Constructor.
 MultiVector (const NOX::Belos::MultiVector &source)
 Copy Constructor.
virtual ~MultiVector ()
 Destructor.
virtual NOX::Belos::MultiVectoroperator= (const NOX::Belos::MultiVector &source)
 Assignment.
virtual ::Belos::MultiVec
< double > * 
Clone (const int numvecs)
 Creates a new empty multi-vec containing numvecs columns.
virtual ::Belos::MultiVec
< double > * 
CloneCopy ()
 Creates a new multi-vec and copies contents of *this into the new vector (deep copy).
virtual ::Belos::MultiVec
< double > * 
CloneCopy (int index[], int numvecs)
 Creates a new multi-vec and copies the selected contents of *this into the new vector (deep copy).
virtual ::Belos::MultiVec
< double > * 
CloneView (int index[], int numvecs)
 Creates a new multi-vec that shares the selected contents of *this (shallow copy).
virtual int GetVecLength () const
 Obtain the vector length of *this multivector block.
virtual int GetNumberVecs () const
 Obtain the number of vectors in *this multivector block.
virtual void MvTimesMatAddMv (double alpha,::Belos::MultiVec< double > &A, Teuchos::SerialDenseMatrix< int, double > &B, double beta)
 Update *this with alpha * A * B + beta * (*this).
virtual void MvAddMv (double alpha,::Belos::MultiVec< double > &A, double beta,::Belos::MultiVec< double > &B)
 Replace *this with alpha * A + beta * B.
virtual void MvTransMv (double alpha,::Belos::MultiVec< double > &A, Teuchos::SerialDenseMatrix< int, double > &B)
 Compute a dense matrix B through the matrix-matrix multiply alpha * A^T * (*this).
virtual ::Belos::ReturnType MvNorm (double *normvec,::Belos::NormType norm_type=::Belos::TwoNorm)
 Compute the norm of each individual vector of *this.
virtual void SetBlock (::Belos::MultiVec< double > &A, int index[], int numvecs)
 Copy the vectors in A to a set of vectors in *this.
virtual void MvRandom ()
 Replace the vectors in *this with random vectors.
virtual void MvInit (double alpha=Teuchos::ScalarTraits< double >::zero())
 Replace each element of the vectors in *this with alpha.
virtual void MvPrint (ostream &os)
 Print the *this multivector.
NOX::Abstract::MultiVectorgetNoxMultiVector ()
 Returns reference to underlying NOX::Abstract::MultiVector.
const NOX::Abstract::MultiVectorgetNoxMultiVector () const
 Returns const reference to underlying NOX::Abstract::MultiVector.

Protected Member Functions

 MultiVector (NOX::Abstract::MultiVector &noxMultiVec, bool ownsVecFlag)
 Constructor that sets ownsVec.
::Belos::ReturnType noxReturnTypeToBelos (NOX::Abstract::Group::ReturnType noxStatus) const
 Converts NOX::Abstract::Group::ReturnType to the corresponding Belos type.

Protected Attributes

NOX::Abstract::MultiVectorvecPtr
 Underlying NOX multivector.
bool ownsVec
 Flag indicating whether we own the NOX::Abstract::MultiVector.


Detailed Description

Implementation of Belos::MultiVec using NOX::Abstract::MultiVector.

Definition at line 54 of file NOX_Belos_MultiVector.H.


Constructor & Destructor Documentation

NOX::Belos::MultiVector::MultiVector ( NOX::Abstract::MultiVector noxMultiVec  ) 

Constructor.

Definition at line 44 of file NOX_Belos_MultiVector.C.

Referenced by Clone(), CloneCopy(), and CloneView().

NOX::Belos::MultiVector::MultiVector ( const NOX::Belos::MultiVector source  ) 

Copy Constructor.

Definition at line 50 of file NOX_Belos_MultiVector.C.

NOX::Belos::MultiVector::~MultiVector (  )  [virtual]

Destructor.

Definition at line 63 of file NOX_Belos_MultiVector.C.

References ownsVec, and vecPtr.

NOX::Belos::MultiVector::MultiVector ( NOX::Abstract::MultiVector noxMultiVec,
bool  ownsVecFlag 
) [protected]

Constructor that sets ownsVec.

Definition at line 56 of file NOX_Belos_MultiVector.C.


Member Function Documentation

NOX::Belos::MultiVector & NOX::Belos::MultiVector::operator= ( const NOX::Belos::MultiVector source  )  [virtual]

Assignment.

Definition at line 70 of file NOX_Belos_MultiVector.C.

References vecPtr.

Belos::MultiVec< double > * NOX::Belos::MultiVector::Clone ( const int  numvecs  ) 

Creates a new empty multi-vec containing numvecs columns.

Definition at line 80 of file NOX_Belos_MultiVector.C.

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

Belos::MultiVec< double > * NOX::Belos::MultiVector::CloneCopy (  ) 

Creates a new multi-vec and copies contents of *this into the new vector (deep copy).

Definition at line 87 of file NOX_Belos_MultiVector.C.

References NOX::Abstract::MultiVector::clone(), MultiVector(), NOX::ShapeCopy, and vecPtr.

Belos::MultiVec< double > * NOX::Belos::MultiVector::CloneCopy ( int  index[],
int  numvecs 
)

Creates a new multi-vec and copies the selected contents of *this into the new vector (deep copy).

Definition at line 94 of file NOX_Belos_MultiVector.C.

References MultiVector(), NOX::Abstract::MultiVector::subCopy(), and vecPtr.

Belos::MultiVec< double > * NOX::Belos::MultiVector::CloneView ( int  index[],
int  numvecs 
)

Creates a new multi-vec that shares the selected contents of *this (shallow copy).

Definition at line 102 of file NOX_Belos_MultiVector.C.

References MultiVector(), NOX::Abstract::MultiVector::subView(), and vecPtr.

int NOX::Belos::MultiVector::GetVecLength (  )  const [virtual]

Obtain the vector length of *this multivector block.

Definition at line 110 of file NOX_Belos_MultiVector.C.

References NOX::Abstract::MultiVector::length(), and vecPtr.

int NOX::Belos::MultiVector::GetNumberVecs (  )  const [virtual]

Obtain the number of vectors in *this multivector block.

Definition at line 116 of file NOX_Belos_MultiVector.C.

References NOX::Abstract::MultiVector::numVectors(), and vecPtr.

void NOX::Belos::MultiVector::MvTimesMatAddMv ( double  alpha,
::Belos::MultiVec< double > &  A,
Teuchos::SerialDenseMatrix< int, double > &  B,
double  beta 
) [virtual]

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

Definition at line 122 of file NOX_Belos_MultiVector.C.

References NOX::Abstract::MultiVector::update(), and vecPtr.

void NOX::Belos::MultiVector::MvAddMv ( double  alpha,
::Belos::MultiVec< double > &  A,
double  beta,
::Belos::MultiVec< double > &  B 
) [virtual]

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

Definition at line 135 of file NOX_Belos_MultiVector.C.

References NOX::Abstract::MultiVector::update(), and vecPtr.

void NOX::Belos::MultiVector::MvTransMv ( double  alpha,
::Belos::MultiVec< double > &  A,
Teuchos::SerialDenseMatrix< int, double > &  B 
) [virtual]

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

Definition at line 153 of file NOX_Belos_MultiVector.C.

References NOX::Abstract::MultiVector::multiply(), and vecPtr.

Belos::ReturnType NOX::Belos::MultiVector::MvNorm ( double *  normvec,
::Belos::NormType  norm_type = ::Belos::TwoNorm 
)

void NOX::Belos::MultiVector::SetBlock ( ::Belos::MultiVec< double > &  A,
int  index[],
int  numvecs 
) [virtual]

Copy the vectors in A to a set of vectors in *this.

Definition at line 186 of file NOX_Belos_MultiVector.C.

References NOX::Abstract::MultiVector::setBlock(), and vecPtr.

void NOX::Belos::MultiVector::MvRandom (  )  [virtual]

Replace the vectors in *this with random vectors.

Definition at line 199 of file NOX_Belos_MultiVector.C.

References NOX::Abstract::MultiVector::random(), and vecPtr.

void NOX::Belos::MultiVector::MvInit ( double  alpha = Teuchos::ScalarTraits<double>::zero()  )  [virtual]

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

Definition at line 205 of file NOX_Belos_MultiVector.C.

References NOX::Abstract::MultiVector::init(), and vecPtr.

void NOX::Belos::MultiVector::MvPrint ( ostream &  os  )  [virtual]

Print the *this multivector.

Definition at line 211 of file NOX_Belos_MultiVector.C.

References NOX::Abstract::MultiVector::print(), and vecPtr.

NOX::Abstract::MultiVector & NOX::Belos::MultiVector::getNoxMultiVector (  ) 

Returns reference to underlying NOX::Abstract::MultiVector.

Definition at line 217 of file NOX_Belos_MultiVector.C.

References vecPtr.

Referenced by NOX::Belos::PreconditionOperator::Apply(), and NOX::Belos::JacobianOperator::Apply().

const NOX::Abstract::MultiVector & NOX::Belos::MultiVector::getNoxMultiVector (  )  const

Returns const reference to underlying NOX::Abstract::MultiVector.

Definition at line 223 of file NOX_Belos_MultiVector.C.

References vecPtr.

Belos::ReturnType NOX::Belos::MultiVector::noxReturnTypeToBelos ( NOX::Abstract::Group::ReturnType  noxStatus  )  const [protected]


Member Data Documentation

Flag indicating whether we own the NOX::Abstract::MultiVector.

Definition at line 166 of file NOX_Belos_MultiVector.H.

Referenced by ~MultiVector().


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

Generated on Thu Dec 17 11:03:04 2009 for Nonlinear Solver Project by  doxygen 1.5.9