NOX Development
Loading...
Searching...
No Matches
LOCA::Extended::MultiVector Class Reference

Implemenatation of the NOX::Abstract::MultiVector class for extended multi-vectors comprised of an arbitrary number of multi-vectors and scalars. More...

#include <LOCA_Extended_MultiVector.H>

Inheritance diagram for LOCA::Extended::MultiVector:
Collaboration diagram for LOCA::Extended::MultiVector:

Public Member Functions

 MultiVector (const MultiVector &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 MultiVector (const MultiVector &source, int nColumns)
 Copy constructor that creates a new multivector with nColumns columns.
 MultiVector (const MultiVector &source, const std::vector< int > &index, bool view)
 Copy constructor that creates a sub copy or view of the given multivector.
virtual ~MultiVector ()
 Vector destructor.
virtual NOX::Abstract::MultiVectorinit (double gamma)
 Initialize every element of this multi-vector with gamma.
virtual NOX::Abstract::MultiVectorrandom (bool useSeed=false, int seed=1)
 Initialize each element of this multi-vector with a random value.
virtual NOX::Abstract::MultiVectoroperator= (const NOX::Abstract::MultiVector &source)
 Copy source multi-vector source into this multi-vector.
virtual MultiVectoroperator= (const MultiVector &y)
 Copy source multi-vector source into this multi-vector.
virtual NOX::Abstract::MultiVectorsetBlock (const NOX::Abstract::MultiVector &source, const std::vector< int > &index)
 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::MultiVectorsetBlock (const MultiVector &source, const std::vector< int > &index)
virtual NOX::Abstract::MultiVectoraugment (const NOX::Abstract::MultiVector &source)
 Append the vectors in source to *this.
virtual NOX::Abstract::MultiVectoraugment (const MultiVector &source)
virtual NOX::Abstract::Vectoroperator[] (int i)
 Return a reference to the i-th column of the multivector as an abstract vector.
virtual const NOX::Abstract::Vectoroperator[] (int i) const
 Return a const reference to the i-th column of the multivector as an abstract vector.
virtual NOX::Abstract::MultiVectorscale (double gamma)
 Scale each element of this multivector by gamma.
virtual NOX::Abstract::MultiVectorupdate (double alpha, const NOX::Abstract::MultiVector &a, double gamma=0.0)
 Compute x = (alpha * a) + (gamma * x) where a is a multi-vector and x = *this.
virtual NOX::Abstract::MultiVectorupdate (double alpha, const MultiVector &a, double gamma=0.0)
virtual NOX::Abstract::MultiVectorupdate (double alpha, const NOX::Abstract::MultiVector &a, double beta, const NOX::Abstract::MultiVector &b, double gamma=0.0)
 Compute x = (alpha * a) + (beta * b) + (gamma * x) where a and b are multi-vectors and x = *this.
virtual NOX::Abstract::MultiVectorupdate (double alpha, const MultiVector &a, double beta, const MultiVector &b, double gamma=0.0)
virtual NOX::Abstract::MultiVectorupdate (Teuchos::ETransp transb, double alpha, const NOX::Abstract::MultiVector &a, const NOX::Abstract::MultiVector::DenseMatrix &b, double gamma=0.0)
 Compute x = (alpha * a * 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 NOX::Abstract::MultiVectorupdate (Teuchos::ETransp transb, double alpha, const MultiVector &a, const NOX::Abstract::MultiVector::DenseMatrix &b, double gamma=0.0)
virtual Teuchos::RCP< NOX::Abstract::MultiVectorclone (NOX::CopyType type=NOX::DeepCopy) const
 Create a new MultiVector 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
 Creates a new multi-vector with numvecs columns.
virtual Teuchos::RCP< NOX::Abstract::MultiVectorsubCopy (const std::vector< int > &index) const
 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 std::vector< int > &index) const
 Creates a new multi-vector with index.size() columns that shares the columns of *this given by index.
virtual void norm (std::vector< double > &result, NOX::Abstract::Vector::NormType type=NOX::Abstract::Vector::TwoNorm) const
 Norm.
virtual void multiply (double alpha, const NOX::Abstract::MultiVector &y, NOX::Abstract::MultiVector::DenseMatrix &b) const
 Computes the matrix-matrix product $\alpha * y^T * (*this)$.
virtual void multiply (double alpha, const MultiVector &y, NOX::Abstract::MultiVector::DenseMatrix &b) const
virtual NOX::size_type length () const
 Return the length of multi-vector.
virtual int numVectors () const
 Return the number of vectors in the multi-vector.
virtual void print (std::ostream &stream) const
 Print the vector. This is meant for debugging purposes only.
virtual Teuchos::RCP< const NOX::Abstract::MultiVectorgetMultiVector (int i) const
 Returns const ref-count pointer to the ith multi-vector.
virtual Teuchos::RCP< NOX::Abstract::MultiVectorgetMultiVector (int i)
 Returns ref-count pointer to the ith multi-vector.
virtual Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrixgetScalars () const
 Returns const ref-count pointer to scalar matrix.
virtual Teuchos::RCP< NOX::Abstract::MultiVector::DenseMatrixgetScalars ()
 Returns ref-count pointer to scalar matrix.
virtual Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrixgetScalarRows (int num_rows, int row) const
 Returns const ref-count pointer to num_rows rows of scalar matrix starting at row row.
virtual Teuchos::RCP< NOX::Abstract::MultiVector::DenseMatrixgetScalarRows (int num_rows, int row)
 Returns ref-count pointer to num_rows rows of scalar matrix starting at row row.
virtual const double & getScalar (int i, int j) const
 Returns const reference to the scalar for row i, column j.
virtual double & getScalar (int i, int j)
 Returns reference to the scalar for row i, column j.
virtual Teuchos::RCP< LOCA::Extended::VectorgetVector (int i)
 Return a ref-count pointer to the i-th column of the multivector as an abstract vector.
virtual Teuchos::RCP< const LOCA::Extended::VectorgetVector (int i) const
 Return a const ref-count pointer to the i-th column of the multivector as an abstract vector.
virtual int getNumScalarRows () const
 Returns number of scalars rows.
virtual int getNumMultiVectors () const
 Returns number of multi vectors.
Public Member Functions inherited from NOX::Abstract::MultiVector
 MultiVector ()
 Default constructor. Does nothing.

Protected Member Functions

 MultiVector (const Teuchos::RCP< LOCA::GlobalData > &global_data, int nColumns, int nVectorRows, int nScalarRows)
 Constructor that creates an empty multivector to be filled in later.
virtual Teuchos::RCP< LOCA::Extended::VectorgenerateVector (int nVecs, int nScalarRows) const
 Generate a derived extended vector.
void setMultiVectorPtr (int i, Teuchos::RCP< NOX::Abstract::MultiVector > v)
 Sets the pointer to the ith multivector.
void checkDimensions (const std::string &callingFunction, const LOCA::Extended::MultiVector &a) const
 Checks multi-vec argument dimensions are consistent.
void checkIndex (const std::string &callingFunction, int i) const
 Checks validity of column index.
void checkVectorRowIndex (const std::string &callingFunction, int i) const
 Checks validity of vector row index.
void checkIndex (const std::string &callingFunction, int i, int j) const
 Checks validity of column and row index for scalars.
bool isContiguous (const std::vector< int > &index) const
 Checks is index array is contiguous.

Protected Attributes

Teuchos::RCP< LOCA::GlobalDataglobalData
 Global data.
int numColumns
 Number of columns in each multivec and number of scalar vector columns.
int numMultiVecRows
 Number of multivec block rows.
int numScalarRows
 Number of scalar rows.
std::vector< Teuchos::RCP< NOX::Abstract::MultiVector > > multiVectorPtrs
 Array of multi-vector pointers, one for each block ROW.
Teuchos::RCP< NOX::Abstract::MultiVector::DenseMatrixscalarsPtr
 Dense matrix of scalars.
std::vector< Teuchos::RCP< LOCA::Extended::Vector > > extendedVectorPtrs
 Pointers to each column as a LOCA::Extended::Vector.
bool isView
 Flag indicating whether this vector is a view.

Friends

class Vector
 Declare LOCA::Extended::Vector as a friend class.

Additional Inherited Members

Public Types inherited from NOX::Abstract::MultiVector
typedef Teuchos::SerialDenseMatrix< int, double > DenseMatrix
 Typename of dense matrices.

Detailed Description

Implemenatation of the NOX::Abstract::MultiVector class for extended multi-vectors comprised of an arbitrary number of multi-vectors and scalars.

Constructor & Destructor Documentation

◆ MultiVector() [1/4]

LOCA::Extended::MultiVector::MultiVector ( const MultiVector & source,
NOX::CopyType type = NOX::DeepCopy )

Copy constructor.

References extendedVectorPtrs, globalData, isView, multiVectorPtrs, numColumns, numMultiVecRows, numScalarRows, and scalarsPtr.

Referenced by LOCA::Hopf::ComplexMultiVector::ComplexMultiVector(), LOCA::Hopf::ComplexMultiVector::ComplexMultiVector(), LOCA::Hopf::ComplexMultiVector::ComplexMultiVector(), LOCA::Hopf::ComplexMultiVector::ComplexMultiVector(), LOCA::Hopf::ComplexMultiVector::ComplexMultiVector(), LOCA::Hopf::ComplexMultiVector::ComplexMultiVector(), LOCA::Hopf::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::Hopf::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::Hopf::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::Hopf::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::Hopf::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::Hopf::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::MultiContinuation::ExtendedMultiVector::ExtendedMultiVector(), LOCA::MultiContinuation::ExtendedMultiVector::ExtendedMultiVector(), LOCA::MultiContinuation::ExtendedMultiVector::ExtendedMultiVector(), LOCA::MultiContinuation::ExtendedMultiVector::ExtendedMultiVector(), LOCA::MultiContinuation::ExtendedMultiVector::ExtendedMultiVector(), LOCA::MultiContinuation::ExtendedMultiVector::ExtendedMultiVector(), LOCA::MultiContinuation::ExtendedMultiVector::ExtendedMultiVector(), LOCA::PhaseTransition::ExtendedMultiVector::ExtendedMultiVector(), LOCA::PhaseTransition::ExtendedMultiVector::ExtendedMultiVector(), LOCA::PhaseTransition::ExtendedMultiVector::ExtendedMultiVector(), LOCA::PhaseTransition::ExtendedMultiVector::ExtendedMultiVector(), LOCA::PhaseTransition::ExtendedMultiVector::ExtendedMultiVector(), LOCA::PhaseTransition::ExtendedMultiVector::ExtendedMultiVector(), LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), and Vector.

◆ MultiVector() [2/4]

LOCA::Extended::MultiVector::MultiVector ( const MultiVector & source,
int nColumns )

Copy constructor that creates a new multivector with nColumns columns.

References extendedVectorPtrs, globalData, isView, multiVectorPtrs, numColumns, numMultiVecRows, numScalarRows, and scalarsPtr.

◆ MultiVector() [3/4]

LOCA::Extended::MultiVector::MultiVector ( const MultiVector & source,
const std::vector< int > & index,
bool view )

Copy constructor that creates a sub copy or view of the given multivector.

References checkIndex(), extendedVectorPtrs, globalData, isContiguous(), isView, multiVectorPtrs, numColumns, numMultiVecRows, numScalarRows, and scalarsPtr.

◆ ~MultiVector()

LOCA::Extended::MultiVector::~MultiVector ( )
virtual

Vector destructor.

Reimplemented from NOX::Abstract::MultiVector.

◆ MultiVector() [4/4]

LOCA::Extended::MultiVector::MultiVector ( const Teuchos::RCP< LOCA::GlobalData > & global_data,
int nColumns,
int nVectorRows,
int nScalarRows )
protected

Constructor that creates an empty multivector to be filled in later.

References extendedVectorPtrs, globalData, isView, multiVectorPtrs, numColumns, numMultiVecRows, numScalarRows, and scalarsPtr.

Member Function Documentation

◆ augment()

NOX::Abstract::MultiVector & LOCA::Extended::MultiVector::augment ( const NOX::Abstract::MultiVector & source)
virtual

Append the vectors in source to *this.

Implements NOX::Abstract::MultiVector.

References augment().

Referenced by augment(), and Vector.

◆ checkDimensions()

void LOCA::Extended::MultiVector::checkDimensions ( const std::string & callingFunction,
const LOCA::Extended::MultiVector & a ) const
protected

Checks multi-vec argument dimensions are consistent.

References globalData, numColumns, numMultiVecRows, and numScalarRows.

Referenced by operator=(), and Vector.

◆ checkIndex() [1/2]

void LOCA::Extended::MultiVector::checkIndex ( const std::string & callingFunction,
int i ) const
protected

Checks validity of column index.

References globalData, and numColumns.

Referenced by getScalar(), getScalar(), getVector(), getVector(), MultiVector(), and Vector.

◆ checkIndex() [2/2]

void LOCA::Extended::MultiVector::checkIndex ( const std::string & callingFunction,
int i,
int j ) const
protected

Checks validity of column and row index for scalars.

References globalData, numColumns, and numScalarRows.

◆ checkVectorRowIndex()

void LOCA::Extended::MultiVector::checkVectorRowIndex ( const std::string & callingFunction,
int i ) const
protected

Checks validity of vector row index.

References globalData, and numMultiVecRows.

Referenced by getMultiVector(), getMultiVector(), setMultiVectorPtr(), and Vector.

◆ clone() [1/2]

◆ clone() [2/2]

Teuchos::RCP< NOX::Abstract::MultiVector > LOCA::Extended::MultiVector::clone ( NOX::CopyType type = NOX::DeepCopy) const
virtual

Create a new MultiVector 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.

Implements NOX::Abstract::MultiVector.

Reimplemented in LOCA::Hopf::ComplexMultiVector, LOCA::Hopf::MooreSpence::ExtendedMultiVector, LOCA::MultiContinuation::ExtendedMultiVector, LOCA::PhaseTransition::ExtendedMultiVector, LOCA::Pitchfork::MooreSpence::ExtendedMultiVector, and LOCA::TurningPoint::MooreSpence::ExtendedMultiVector.

Referenced by Vector.

◆ generateVector()

Teuchos::RCP< LOCA::Extended::Vector > LOCA::Extended::MultiVector::generateVector ( int nVecs,
int nScalarRows ) const
protectedvirtual

Generate a derived extended vector.

Extended multi-vectors derived from this class should implement this method and return a vector of the appropriate type. This allows the operator[] methods to work correctly for derived classes.

Reimplemented in LOCA::Hopf::ComplexMultiVector, LOCA::Hopf::MooreSpence::ExtendedMultiVector, LOCA::MultiContinuation::ExtendedMultiVector, LOCA::PhaseTransition::ExtendedMultiVector, LOCA::Pitchfork::MooreSpence::ExtendedMultiVector, and LOCA::TurningPoint::MooreSpence::ExtendedMultiVector.

References globalData.

Referenced by getVector(), getVector(), and Vector.

◆ getMultiVector() [1/2]

Teuchos::RCP< NOX::Abstract::MultiVector > LOCA::Extended::MultiVector::getMultiVector ( int i)
virtual

Returns ref-count pointer to the ith multi-vector.

References checkVectorRowIndex(), and multiVectorPtrs.

◆ getMultiVector() [2/2]

Teuchos::RCP< const NOX::Abstract::MultiVector > LOCA::Extended::MultiVector::getMultiVector ( int i) const
virtual

Returns const ref-count pointer to the ith multi-vector.

References checkVectorRowIndex(), and multiVectorPtrs.

Referenced by LOCA::Hopf::MooreSpence::ExtendedMultiVector::getImagEigenMultiVec(), LOCA::Hopf::MooreSpence::ExtendedMultiVector::getImagEigenMultiVec(), LOCA::Hopf::ComplexMultiVector::getImagMultiVec(), LOCA::Hopf::ComplexMultiVector::getImagMultiVec(), LOCA::PhaseTransition::ExtendedMultiVector::getNullMultiVec(), LOCA::PhaseTransition::ExtendedMultiVector::getNullMultiVec(), LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::getNullMultiVec(), LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::getNullMultiVec(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getNullMultiVec(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getNullMultiVec(), LOCA::Hopf::MooreSpence::ExtendedMultiVector::getRealEigenMultiVec(), LOCA::Hopf::MooreSpence::ExtendedMultiVector::getRealEigenMultiVec(), LOCA::Hopf::ComplexMultiVector::getRealMultiVec(), LOCA::Hopf::ComplexMultiVector::getRealMultiVec(), LOCA::Hopf::MooreSpence::ExtendedMultiVector::getXMultiVec(), LOCA::Hopf::MooreSpence::ExtendedMultiVector::getXMultiVec(), LOCA::MultiContinuation::ExtendedMultiVector::getXMultiVec(), LOCA::MultiContinuation::ExtendedMultiVector::getXMultiVec(), LOCA::PhaseTransition::ExtendedMultiVector::getXMultiVec(), LOCA::PhaseTransition::ExtendedMultiVector::getXMultiVec(), LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::getXMultiVec(), LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::getXMultiVec(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getXMultiVec(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getXMultiVec(), and Vector.

◆ getNumMultiVectors()

int LOCA::Extended::MultiVector::getNumMultiVectors ( ) const
virtual

Returns number of multi vectors.

References numMultiVecRows.

Referenced by Vector.

◆ getNumScalarRows()

int LOCA::Extended::MultiVector::getNumScalarRows ( ) const
virtual

Returns number of scalars rows.

References numScalarRows.

Referenced by Vector.

◆ getScalar() [1/2]

double & LOCA::Extended::MultiVector::getScalar ( int i,
int j )
virtual

Returns reference to the scalar for row i, column j.

References checkIndex(), and scalarsPtr.

◆ getScalar() [2/2]

◆ getScalarRows() [1/2]

Teuchos::RCP< NOX::Abstract::MultiVector::DenseMatrix > LOCA::Extended::MultiVector::getScalarRows ( int num_rows,
int row )
virtual

Returns ref-count pointer to num_rows rows of scalar matrix starting at row row.

References numColumns, and scalarsPtr.

◆ getScalarRows() [2/2]

◆ getScalars() [1/2]

Teuchos::RCP< NOX::Abstract::MultiVector::DenseMatrix > LOCA::Extended::MultiVector::getScalars ( )
virtual

Returns ref-count pointer to scalar matrix.

References scalarsPtr.

◆ getScalars() [2/2]

Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrix > LOCA::Extended::MultiVector::getScalars ( ) const
virtual

Returns const ref-count pointer to scalar matrix.

References scalarsPtr.

Referenced by LOCA::Homotopy::DeflatedGroup::applyJacobianInverseMultiVector(), LOCA::Hopf::MinimallyAugmented::ExtendedGroup::applyJacobianInverseMultiVector(), LOCA::MultiContinuation::ConstrainedGroup::applyJacobianInverseMultiVector(), LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup::applyJacobianInverseMultiVector(), LOCA::Homotopy::DeflatedGroup::applyJacobianMultiVector(), LOCA::Hopf::MinimallyAugmented::ExtendedGroup::applyJacobianMultiVector(), LOCA::MultiContinuation::ConstrainedGroup::applyJacobianMultiVector(), LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup::applyJacobianMultiVector(), LOCA::TurningPoint::MooreSpence::ExtendedGroup::applyJacobianMultiVector(), LOCA::MultiContinuation::ConstrainedGroup::applyJacobianTransposeInverseMultiVector(), LOCA::Homotopy::DeflatedGroup::applyJacobianTransposeMultiVector(), LOCA::Hopf::MinimallyAugmented::ExtendedGroup::applyJacobianTransposeMultiVector(), LOCA::MultiContinuation::ConstrainedGroup::applyJacobianTransposeMultiVector(), LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup::applyJacobianTransposeMultiVector(), LOCA::TurningPoint::MooreSpence::ExtendedGroup::applyJacobianTransposeMultiVector(), LOCA::Homotopy::DeflatedGroup::computeDfDpMulti(), LOCA::Hopf::MinimallyAugmented::ExtendedGroup::computeDfDpMulti(), LOCA::MultiContinuation::ConstrainedGroup::computeDfDpMulti(), LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup::computeDfDpMulti(), LOCA::MultiContinuation::ExtendedMultiVector::ExtendedMultiVector(), LOCA::PhaseTransition::ExtendedMultiVector::ExtendedMultiVector(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(), LOCA::Homotopy::DeflatedGroup::extractParameterComponent(), LOCA::Hopf::MinimallyAugmented::ExtendedGroup::extractParameterComponent(), LOCA::MultiContinuation::ConstrainedGroup::extractParameterComponent(), LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup::extractParameterComponent(), LOCA::Homotopy::DeflatedGroup::loadNestedComponents(), LOCA::Hopf::MinimallyAugmented::ExtendedGroup::loadNestedComponents(), LOCA::MultiContinuation::ConstrainedGroup::loadNestedComponents(), LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup::loadNestedComponents(), LOCA::TurningPoint::MooreSpence::PhippsBordering::solve(), LOCA::TurningPoint::MooreSpence::SalingerBordering::solve(), LOCA::TurningPoint::MooreSpence::PhippsBordering::solveTranspose(), LOCA::TurningPoint::MooreSpence::SalingerBordering::solveTranspose(), and Vector.

◆ getVector() [1/2]

◆ getVector() [2/2]

Teuchos::RCP< const LOCA::Extended::Vector > LOCA::Extended::MultiVector::getVector ( int i) const
virtual

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

References checkIndex(), extendedVectorPtrs, generateVector(), multiVectorPtrs, numMultiVecRows, numScalarRows, and scalarsPtr.

◆ init()

NOX::Abstract::MultiVector & LOCA::Extended::MultiVector::init ( double gamma)
virtual

Initialize every element of this multi-vector with gamma.

Implements NOX::Abstract::MultiVector.

References init(), multiVectorPtrs, numMultiVecRows, and scalarsPtr.

Referenced by init(), and Vector.

◆ isContiguous()

bool LOCA::Extended::MultiVector::isContiguous ( const std::vector< int > & index) const
protected

Checks is index array is contiguous.

Referenced by MultiVector(), and Vector.

◆ length()

NOX::size_type LOCA::Extended::MultiVector::length ( ) const
virtual

◆ multiply()

void LOCA::Extended::MultiVector::multiply ( double alpha,
const NOX::Abstract::MultiVector & y,
NOX::Abstract::MultiVector::DenseMatrix & b ) const
virtual

Computes the matrix-matrix product $\alpha * y^T * (*this)$.

Implements NOX::Abstract::MultiVector.

References multiply().

Referenced by multiply(), and Vector.

◆ norm()

void LOCA::Extended::MultiVector::norm ( std::vector< double > & result,
NOX::Abstract::Vector::NormType type = NOX::Abstract::Vector::TwoNorm ) const
virtual

◆ numVectors()

◆ operator=() [1/2]

◆ operator=() [2/2]

◆ operator[]() [1/2]

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

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

Implements NOX::Abstract::MultiVector.

References getVector().

◆ operator[]() [2/2]

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

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

Implements NOX::Abstract::MultiVector.

References getVector().

◆ print()

void LOCA::Extended::MultiVector::print ( std::ostream & stream) const
virtual

Print the vector. This is meant for debugging purposes only.

Implements NOX::Abstract::MultiVector.

References multiVectorPtrs, numMultiVecRows, print(), and scalarsPtr.

Referenced by print(), and Vector.

◆ random()

NOX::Abstract::MultiVector & LOCA::Extended::MultiVector::random ( bool useSeed = false,
int seed = 1 )
virtual

Initialize each element of this multi-vector with a random value.

Implements NOX::Abstract::MultiVector.

References multiVectorPtrs, numMultiVecRows, random(), NOX::Abstract::MultiVector::random(), and scalarsPtr.

Referenced by random(), and Vector.

◆ scale()

NOX::Abstract::MultiVector & LOCA::Extended::MultiVector::scale ( double gamma)
virtual

◆ setBlock()

NOX::Abstract::MultiVector & LOCA::Extended::MultiVector::setBlock ( const NOX::Abstract::MultiVector & source,
const std::vector< int > & index )
virtual

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.

Implements NOX::Abstract::MultiVector.

References setBlock().

Referenced by setBlock(), and Vector.

◆ setMultiVectorPtr()

◆ subCopy()

Teuchos::RCP< NOX::Abstract::MultiVector > LOCA::Extended::MultiVector::subCopy ( const std::vector< int > & index) const
virtual

◆ subView()

Teuchos::RCP< NOX::Abstract::MultiVector > LOCA::Extended::MultiVector::subView ( const std::vector< int > & index) const
virtual

◆ update() [1/3]

NOX::Abstract::MultiVector & LOCA::Extended::MultiVector::update ( double alpha,
const NOX::Abstract::MultiVector & a,
double beta,
const NOX::Abstract::MultiVector & b,
double gamma = 0.0 )
virtual

Compute x = (alpha * a) + (beta * b) + (gamma * x) where a and b are multi-vectors and x = *this.

Implements NOX::Abstract::MultiVector.

References update().

◆ update() [2/3]

NOX::Abstract::MultiVector & LOCA::Extended::MultiVector::update ( double alpha,
const NOX::Abstract::MultiVector & a,
double gamma = 0.0 )
virtual

Compute x = (alpha * a) + (gamma * x) where a is a multi-vector and x = *this.

Implements NOX::Abstract::MultiVector.

References update().

Referenced by update(), update(), update(), and Vector.

◆ update() [3/3]

NOX::Abstract::MultiVector & LOCA::Extended::MultiVector::update ( Teuchos::ETransp transb,
double alpha,
const NOX::Abstract::MultiVector & a,
const NOX::Abstract::MultiVector::DenseMatrix & b,
double gamma = 0.0 )
virtual

Compute x = (alpha * a * 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.

Implements NOX::Abstract::MultiVector.

References update().

◆ Vector

Member Data Documentation

◆ extendedVectorPtrs

std::vector< Teuchos::RCP<LOCA::Extended::Vector> > LOCA::Extended::MultiVector::extendedVectorPtrs
mutableprotected

◆ globalData

◆ isView

bool LOCA::Extended::MultiVector::isView
protected

Flag indicating whether this vector is a view.

Referenced by MultiVector(), MultiVector(), MultiVector(), and MultiVector().

◆ multiVectorPtrs

std::vector< Teuchos::RCP<NOX::Abstract::MultiVector> > LOCA::Extended::MultiVector::multiVectorPtrs
protected

◆ numColumns

int LOCA::Extended::MultiVector::numColumns
protected

Number of columns in each multivec and number of scalar vector columns.

Referenced by checkDimensions(), checkIndex(), checkIndex(), getScalarRows(), getScalarRows(), MultiVector(), MultiVector(), MultiVector(), MultiVector(), norm(), and numVectors().

◆ numMultiVecRows

int LOCA::Extended::MultiVector::numMultiVecRows
protected

◆ numScalarRows

int LOCA::Extended::MultiVector::numScalarRows
protected

◆ scalarsPtr


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