NOX
Development
|
Implemenatation of the NOX::Abstract::Vector class for extended vectors comprised of an arbitrary number of vectors and scalars. More...
#include <LOCA_Extended_Vector.H>
Public Member Functions | |
Vector (const Vector &source, NOX::CopyType type=NOX::DeepCopy) | |
Copy constructor. | |
virtual | ~Vector () |
Vector destructor. | |
virtual NOX::Abstract::Vector & | operator= (const NOX::Abstract::Vector &y) |
Assignment operator. | |
virtual Vector & | operator= (const Vector &y) |
Assignment operator. | |
virtual Teuchos::RCP < NOX::Abstract::Vector > | clone (NOX::CopyType type=NOX::DeepCopy) const |
Clone function. Applies clone to each stored vector. | |
virtual Teuchos::RCP < NOX::Abstract::MultiVector > | createMultiVector (const NOX::Abstract::Vector *const *vecs, int numVecs, NOX::CopyType type=NOX::DeepCopy) const |
Create a MultiVector with numVecs+1 columns out of an array of Vectors. The vector stored under this will be the first column with the remaining numVecs columns given by vecs . | |
virtual Teuchos::RCP < NOX::Abstract::MultiVector > | createMultiVector (int numVecs, NOX::CopyType type=NOX::DeepCopy) const |
Create a MultiVector with numVecs columns. | |
virtual NOX::Abstract::Vector & | init (double gamma) |
NOX::Abstract::Vector init function. Initializes each stored vector and scalar. | |
virtual NOX::Abstract::Vector & | random (bool useSeed=false, int seed=1) |
Initialize every element of this vector with random values. | |
virtual NOX::Abstract::Vector & | abs (const NOX::Abstract::Vector &y) |
NOX::Abstract::Vector abs function. Compues absolute value of each stored vector and scalar. | |
virtual NOX::Abstract::Vector & | reciprocal (const NOX::Abstract::Vector &y) |
NOX::Abstract::Vector reciprocal function. Computes reciprocal of each stored vector and scalar. | |
virtual NOX::Abstract::Vector & | scale (double gamma) |
NOX::Abstract::Vector scale function. Scales each stored vector and scalar. | |
virtual NOX::Abstract::Vector & | scale (const NOX::Abstract::Vector &a) |
NOX::Abstract::Vector scale function. Scales each stored vector and scalar. | |
virtual NOX::Abstract::Vector & | update (double alpha, const NOX::Abstract::Vector &a, double gamma=0.0) |
NOX::Abstract::Vector update function. Applies vector update to each stored vector and scalar. | |
virtual NOX::Abstract::Vector & | update (double alpha, const NOX::Abstract::Vector &a, double beta, const NOX::Abstract::Vector &b, double gamma=0.0) |
NOX::Abstract::Vector update function. Applies vector update to each stored vector and scalar. | |
virtual double | norm (NormType type=TwoNorm) const |
NOX::Abstract::Vector norm function. Computes norm of each stored vector and combines to compute appropriate norm. | |
virtual double | norm (const NOX::Abstract::Vector &weights) const |
NOX::Abstract::Vector weighted norm function. Computes weighted norm of each stored vector and combines to compute appropriate norm. | |
virtual double | innerProduct (const NOX::Abstract::Vector &y) const |
NOX::Abstract::Vector innerProduct function. Computes inner product * of each stored vector and combines to compute inner product. | |
virtual NOX::size_type | length () const |
NOX::Abstract::Vector length function. Computes sum of lengths of stored vectors plus number of scalars. | |
virtual void | print (std::ostream &stream) const |
NOX::Abstract::Vector print function. For debugging purposes. | |
virtual void | setVector (int i, const NOX::Abstract::Vector &v) |
Sets the ith vector. | |
virtual void | setVectorView (int i, const Teuchos::RCP< NOX::Abstract::Vector > &v) |
Sets the ith vector as a view. | |
virtual void | setScalar (int i, double s) |
Sets the ith scalar. | |
virtual void | setScalarArray (double *sv) |
Sets the scalar array. | |
virtual Teuchos::RCP< const NOX::Abstract::Vector > | getVector (int i) const |
Returns const ref-count pointer to the ith vector. | |
virtual Teuchos::RCP < NOX::Abstract::Vector > | getVector (int i) |
Returns ref-count pointer to the ith vector. | |
virtual double | getScalar (int i) const |
Returns copy of the ith scalar. | |
virtual double & | getScalar (int i) |
Returns reference to the ith scalar. | |
virtual Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrix > | getScalars () const |
Returns array of scalars. | |
virtual Teuchos::RCP < NOX::Abstract::MultiVector::DenseMatrix > | getScalars () |
Returns array of scalars. | |
virtual int | getNumScalars () const |
Returns number of scalars. | |
virtual int | getNumVectors () const |
Returns number of vectors. | |
Public Member Functions inherited from NOX::Abstract::Vector | |
Vector () | |
Abstract Vector constructor (does nothing) | |
Protected Member Functions | |
Vector (const Teuchos::RCP< LOCA::GlobalData > &global_data, int nvecs, int nscalars) | |
Vector constructor. | |
virtual Teuchos::RCP < LOCA::Extended::MultiVector > | generateMultiVector (int nColumns, int nVectorRows, int nScalarRows) const |
generate an extended multi-vector More... | |
Protected Attributes | |
Teuchos::RCP< LOCA::GlobalData > | globalData |
Global data. | |
std::vector< Teuchos::RCP < NOX::Abstract::Vector > > | vectorPtrs |
Array of vector pointers. | |
std::vector< bool > | isView |
Array indicating if each vector is a view. | |
int | numScalars |
Number of scalars. | |
Teuchos::RCP < NOX::Abstract::MultiVector::DenseMatrix > | scalarsPtr |
Scalars. | |
Friends | |
class | LOCA::Extended::MultiVector |
Declare LOCA::Extended::MultiVector as a friend class. | |
Additional Inherited Members | |
Public Types inherited from NOX::Abstract::Vector | |
enum | NormType { TwoNorm, OneNorm, MaxNorm } |
Norm types used in norm() calculations. More... | |
Implemenatation of the NOX::Abstract::Vector class for extended vectors comprised of an arbitrary number of vectors and scalars.
Many continuation and bifurcation calculations can be viewed as the solution to an extended set of equations. For example, calculating a turning point can be viewed as computing a solution to where and
The extended vector is comprised of the two vectors and as well as the scalar . This class provides an implementation of the NOX::Abstract::Vector interface for such extended vectors. It stores an array of pointers to NOX::Abstract::Vector's as well as an array of scalars using the STL vector class.
The implementations of the NOX::Abstract::Vector methods are defined in terms of the implementations of each stored abstract vector.
|
protectedvirtual |
generate an extended multi-vector
Extended vectors derived from this class should implement this method and return a multivector of the appropriate type so that the createMultiVectors method returns a multivector of the appropriate type.
Reimplemented in LOCA::Hopf::MooreSpence::ExtendedVector, LOCA::Pitchfork::MooreSpence::ExtendedVector, LOCA::TurningPoint::MooreSpence::ExtendedVector, LOCA::PhaseTransition::ExtendedVector, LOCA::Hopf::ComplexVector, and LOCA::MultiContinuation::ExtendedVector.
References Teuchos::rcp().