#include <NOX_Belos_MultiVector.H>
Public Member Functions | |
MultiVector (NOX::Abstract::MultiVector &noxMultiVec) | |
Constructor. | |
MultiVector (const NOX::Belos::MultiVector &source) | |
Copy Constructor. | |
virtual | ~MultiVector () |
Destructor. | |
virtual NOX::Belos::MultiVector & | operator= (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::MultiVector & | getNoxMultiVector () |
Returns reference to underlying NOX::Abstract::MultiVector. | |
const NOX::Abstract::MultiVector & | getNoxMultiVector () 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::MultiVector * | vecPtr |
Underlying NOX multivector. | |
bool | ownsVec |
Flag indicating whether we own the NOX::Abstract::MultiVector. |
Definition at line 54 of file NOX_Belos_MultiVector.H.
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 | ) |
NOX::Belos::MultiVector::~MultiVector | ( | ) | [virtual] |
NOX::Belos::MultiVector::MultiVector | ( | NOX::Abstract::MultiVector & | noxMultiVec, | |
bool | ownsVecFlag | |||
) | [protected] |
NOX::Belos::MultiVector & NOX::Belos::MultiVector::operator= | ( | const NOX::Belos::MultiVector & | source | ) | [virtual] |
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 | |||
) |
Compute the norm of each individual vector of *this
.
Definition at line 165 of file NOX_Belos_MultiVector.C.
References NOX::Abstract::Vector::MaxNorm, NOX::Abstract::MultiVector::norm(), NOX::Abstract::MultiVector::numVectors(), NOX::Abstract::Vector::OneNorm, NOX::Abstract::Vector::TwoNorm, and vecPtr.
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] |
Converts NOX::Abstract::Group::ReturnType to the corresponding Belos type.
Definition at line 229 of file NOX_Belos_MultiVector.C.
References NOX::Abstract::Group::NotConverged, NOX::Abstract::Group::NotDefined, and NOX::Abstract::Group::Ok.
Underlying NOX multivector.
Definition at line 163 of file NOX_Belos_MultiVector.H.
Referenced by Clone(), CloneCopy(), CloneView(), getNoxMultiVector(), GetNumberVecs(), GetVecLength(), MvAddMv(), MvInit(), MvNorm(), MvPrint(), MvRandom(), MvTimesMatAddMv(), MvTransMv(), operator=(), SetBlock(), and ~MultiVector().
bool NOX::Belos::MultiVector::ownsVec [protected] |
Flag indicating whether we own the NOX::Abstract::MultiVector.
Definition at line 166 of file NOX_Belos_MultiVector.H.
Referenced by ~MultiVector().