NOX
Development
|
MultiVector class to hold solution vectors, Newton vectors, etc. for the phase transition tracking algorithm. More...
#include <LOCA_PhaseTransition_ExtendedMultiVector.H>
Public Member Functions | |
ExtendedMultiVector (const Teuchos::RCP< LOCA::GlobalData > &global_data, const NOX::Abstract::Vector &cloneVec, int nColumns) | |
Constructor. More... | |
ExtendedMultiVector (const Teuchos::RCP< LOCA::GlobalData > &global_data, const NOX::Abstract::MultiVector &xVec, const NOX::Abstract::MultiVector &nullVec, const NOX::Abstract::MultiVector::DenseMatrix &bifParams) | |
Constructor. More... | |
ExtendedMultiVector (const ExtendedMultiVector &source, NOX::CopyType type=NOX::DeepCopy) | |
Copy constructor. | |
ExtendedMultiVector (const ExtendedMultiVector &source, int nColumns) | |
Copy constructor that creates a new multivector with nColumns columns. | |
ExtendedMultiVector (const ExtendedMultiVector &source, const std::vector< int > &index, bool view) | |
Copy constructor that creates a sub copy or view of the given multivector. | |
virtual | ~ExtendedMultiVector () |
Destructor. | |
virtual ExtendedMultiVector & | operator= (const ExtendedMultiVector &y) |
Assignment operator. | |
virtual LOCA::Extended::MultiVector & | operator= (const LOCA::Extended::MultiVector &y) |
Assignment operator. | |
virtual NOX::Abstract::MultiVector & | operator= (const NOX::Abstract::MultiVector &y) |
Assignment operator. | |
virtual Teuchos::RCP < NOX::Abstract::MultiVector > | clone (NOX::CopyType type=NOX::DeepCopy) const |
Create a new multi-vector of the same underlying type by cloning "this", and return a pointer to the new vector. | |
virtual Teuchos::RCP < NOX::Abstract::MultiVector > | clone (int numvecs) const |
Creates a new multi-vector with numvecs columns. | |
virtual Teuchos::RCP < NOX::Abstract::MultiVector > | subCopy (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::MultiVector > | subView (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 Teuchos::RCP< const NOX::Abstract::MultiVector > | getXMultiVec () const |
Returns the solution vector component of extended multivector. | |
virtual Teuchos::RCP < NOX::Abstract::MultiVector > | getXMultiVec () |
Returns the solution vector component of extended multivector. | |
virtual Teuchos::RCP< const NOX::Abstract::MultiVector > | getNullMultiVec () const |
Returns the null vector component of extended multivector. | |
virtual Teuchos::RCP < NOX::Abstract::MultiVector > | getNullMultiVec () |
Returns the null vector component of extended multivector. | |
virtual Teuchos::RCP < LOCA::PhaseTransition::ExtendedVector > | getColumn (int i) |
Returns ith column as an extended vector. | |
virtual Teuchos::RCP< const LOCA::PhaseTransition::ExtendedVector > | getColumn (int i) const |
Returns ith column as an extended vector. | |
Public Member Functions inherited from LOCA::Extended::MultiVector | |
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::MultiVector & | init (double gamma) |
Initialize every element of this multi-vector with gamma . | |
virtual NOX::Abstract::MultiVector & | random (bool useSeed=false, int seed=1) |
Initialize each element of this multi-vector with a random value. | |
virtual NOX::Abstract::MultiVector & | setBlock (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::MultiVector & | setBlock (const MultiVector &source, const std::vector< int > &index) |
virtual NOX::Abstract::MultiVector & | augment (const NOX::Abstract::MultiVector &source) |
Append the vectors in source to *this . | |
virtual NOX::Abstract::MultiVector & | augment (const MultiVector &source) |
virtual NOX::Abstract::Vector & | operator[] (int i) |
Return a reference to the i-th column of the multivector as an abstract vector. | |
virtual const NOX::Abstract::Vector & | operator[] (int i) const |
Return a const reference to the i-th column of the multivector as an abstract vector. | |
virtual NOX::Abstract::MultiVector & | scale (double gamma) |
Scale each element of this multivector by gamma . | |
virtual NOX::Abstract::MultiVector & | update (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::MultiVector & | update (double alpha, const MultiVector &a, double gamma=0.0) |
virtual NOX::Abstract::MultiVector & | update (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::MultiVector & | update (double alpha, const MultiVector &a, double beta, const MultiVector &b, double gamma=0.0) |
virtual NOX::Abstract::MultiVector & | update (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::MultiVector & | update (Teuchos::ETransp transb, double alpha, const MultiVector &a, const NOX::Abstract::MultiVector::DenseMatrix &b, double gamma=0.0) |
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 . | |
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::MultiVector > | getMultiVector (int i) const |
Returns const ref-count pointer to the ith multi-vector. | |
virtual Teuchos::RCP < NOX::Abstract::MultiVector > | getMultiVector (int i) |
Returns ref-count pointer to the ith multi-vector. | |
virtual Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrix > | getScalars () const |
Returns const ref-count pointer to scalar matrix. | |
virtual Teuchos::RCP < NOX::Abstract::MultiVector::DenseMatrix > | getScalars () |
Returns ref-count pointer to scalar matrix. | |
virtual Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrix > | getScalarRows (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::DenseMatrix > | getScalarRows (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::Vector > | getVector (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::Vector > | getVector (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 | |
ExtendedMultiVector (const Teuchos::RCP< LOCA::GlobalData > &global_data, int nColumns) | |
Constructor. More... | |
virtual Teuchos::RCP < LOCA::Extended::Vector > | generateVector (int nVecs, int nScalarRows) const |
Generate a derived extended vector. More... | |
Protected Member Functions inherited from LOCA::Extended::MultiVector | |
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. | |
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. | |
Friends | |
class | ExtendedVector |
Declare LOCA::PhaseTransition::MooreSpence::ExtendedVector as a friend class so it can call protected methods. | |
Additional Inherited Members | |
Public Types inherited from NOX::Abstract::MultiVector | |
typedef Teuchos::SerialDenseMatrix < int, double > | DenseMatrix |
Typename of dense matrices. | |
Protected Attributes inherited from LOCA::Extended::MultiVector | |
Teuchos::RCP< LOCA::GlobalData > | globalData |
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::DenseMatrix > | scalarsPtr |
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. | |
MultiVector class to hold solution vectors, Newton vectors, etc. for the phase transition tracking algorithm.
This class uses the LOCA::Extended::MultiVector implementation to store the solution1, solution2, and parameter components of the phase transition multivector and merely provides an interface for naming which components of the multivector these quantities correspond to.
LOCA::PhaseTransition::ExtendedMultiVector::ExtendedMultiVector | ( | const Teuchos::RCP< LOCA::GlobalData > & | global_data, |
const NOX::Abstract::Vector & | cloneVec, | ||
int | nColumns | ||
) |
Constructor.
Generates a multivector with nColumns columns from cloneVec
References NOX::Abstract::Vector::createMultiVector(), LOCA::Extended::MultiVector::setMultiVectorPtr(), and NOX::ShapeCopy.
LOCA::PhaseTransition::ExtendedMultiVector::ExtendedMultiVector | ( | const Teuchos::RCP< LOCA::GlobalData > & | global_data, |
const NOX::Abstract::MultiVector & | xVec, | ||
const NOX::Abstract::MultiVector & | nullVec, | ||
const NOX::Abstract::MultiVector::DenseMatrix & | bifParams | ||
) |
Constructor.
Construct the multivector from xVec, nullVec, and bifParams
References Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::assign(), NOX::Abstract::MultiVector::clone(), NOX::DeepCopy, LOCA::Extended::MultiVector::getScalars(), and LOCA::Extended::MultiVector::setMultiVectorPtr().
|
protected |
Constructor.
Creates an empty multivector with nColumns columns
|
protectedvirtual |
Generate a derived extended vector.
Returns a vector of type LOCA::PhaseTransition::MooreSpence::ExtendedVector
Reimplemented from LOCA::Extended::MultiVector.
References Teuchos::rcp().