NOX Development
|
Implementation of NOX::Abstract::Vector for Petsc vectors. More...
#include <NOX_Petsc_Vector.H>
Public Member Functions | |
Vector (const Vec &source, CopyType type=DeepCopy) | |
Construct by copying map and/or elements of a Petsc Vec. | |
Vector (const Vec &source, std::string name="Unnamed", CopyType type=DeepCopy) | |
Construct by copying map and/or elements of a Petsc Vec. | |
Vector (const Vector &source, CopyType type=DeepCopy) | |
Construct by copying a NOX::Petsc::Vector. | |
~Vector () | |
Destruct Vector. | |
virtual Vec & | getPetscVector () |
Get reference to underlying Petsc vector. | |
virtual const Vec & | getPetscVector () const |
Get const reference to underlying Petsc vector. | |
virtual Abstract::Vector & | init (double value) |
Initialize every element of this vector with gamma . | |
virtual Abstract::Vector & | operator= (const Vec &source) |
Copies source vector into "this". | |
virtual Abstract::Vector & | operator= (const Vector &source) |
virtual Abstract::Vector & | operator= (const Abstract::Vector &source) |
See above. | |
virtual Abstract::Vector & | abs (const Vector &source) |
virtual Abstract::Vector & | abs (const Abstract::Vector &source) |
See above. | |
virtual Abstract::Vector & | random (bool useSeed=false, int seed=1) |
Initialize each element of this vector with a random value. | |
virtual Abstract::Vector & | reciprocal (const Vector &source) |
virtual Abstract::Vector & | reciprocal (const Abstract::Vector &source) |
See above. | |
virtual Abstract::Vector & | scale (double gammaval) |
Scale each element of this vector by gamma . | |
virtual Abstract::Vector & | scale (const Vector &a) |
virtual Abstract::Vector & | scale (const Abstract::Vector &a) |
See above. | |
virtual Abstract::Vector & | update (double alpha, const Vector &a, double gammaval=0.0) |
virtual Abstract::Vector & | update (double alpha, const Abstract::Vector &a, double gammaval=0.0) |
See above. | |
virtual Abstract::Vector & | update (double alpha, const Vector &a, double beta, const Vector &b, double gammaval=0.0) |
virtual Abstract::Vector & | update (double alpha, const Abstract::Vector &a, double beta, const Abstract::Vector &b, double gammaval=0.0) |
See above. | |
virtual Teuchos::RCP< NOX::Abstract::Vector > | clone (CopyType type=DeepCopy) const |
Create a new Vector of the same underlying type by cloning "this", and return a pointer to the new vector. | |
virtual double | norm (Abstract::Vector::NormType type=TwoNorm) const |
Norm. | |
virtual double | norm (const Vector &weights) const |
virtual double | norm (const Abstract::Vector &weights) const |
See above. | |
virtual double | innerProduct (const Vector &y) const |
virtual double | innerProduct (const Abstract::Vector &y) const |
See above. | |
virtual NOX::size_type | length () const |
Return the length of vector. | |
std::string | Name () |
![]() | |
Vector () | |
Abstract Vector constructor (does nothing) | |
virtual | ~Vector () |
Abstract Vector destructor (does nothing) | |
virtual NOX::Abstract::Vector & | init (double gamma)=0 |
Initialize every element of this vector with gamma . | |
virtual NOX::Abstract::Vector & | random (bool useSeed=false, int seed=1)=0 |
Initialize each element of this vector with a random value. | |
virtual NOX::Abstract::Vector & | abs (const NOX::Abstract::Vector &y)=0 |
Put element-wise absolute values of source vector y into this vector. | |
virtual NOX::Abstract::Vector & | operator= (const NOX::Abstract::Vector &y)=0 |
Copy source vector y into this vector. | |
virtual NOX::Abstract::Vector & | reciprocal (const NOX::Abstract::Vector &y)=0 |
Put element-wise reciprocal of source vector y into this vector. | |
virtual NOX::Abstract::Vector & | scale (double gamma)=0 |
Scale each element of this vector by gamma . | |
virtual NOX::Abstract::Vector & | scale (const NOX::Abstract::Vector &a)=0 |
Scale this vector element-by-element by the vector a. | |
virtual NOX::Abstract::Vector & | update (double alpha, const NOX::Abstract::Vector &a, double gamma=0.0)=0 |
Compute x = (alpha * a) + (gamma * x) where x is this vector. | |
virtual NOX::Abstract::Vector & | update (double alpha, const NOX::Abstract::Vector &a, double beta, const NOX::Abstract::Vector &b, double gamma=0.0)=0 |
Compute x = (alpha * a) + (beta * b) + (gamma * x) where x is this vector. | |
virtual Teuchos::RCP< NOX::Abstract::Vector > | clone (NOX::CopyType type=NOX::DeepCopy) const =0 |
Create a new Vector of the same underlying type by cloning "this", and return a pointer to the new 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 double | norm (NOX::Abstract::Vector::NormType type=NOX::Abstract::Vector::TwoNorm) const =0 |
Norm. | |
virtual double | norm (const NOX::Abstract::Vector &weights) const =0 |
Weighted 2-Norm. | |
virtual double | innerProduct (const NOX::Abstract::Vector &y) const =0 |
Inner product with y . | |
virtual NOX::size_type | length () const =0 |
Return the length of vector. | |
virtual void | print (std::ostream &stream) const |
Print the vector. To be used for debugging only. | |
Protected Member Functions | |
virtual int | allocate (const Vec &source, CopyType type=DeepCopy) |
Protected Attributes | |
Vec | petscVec |
Pointer to Petsc vector owned by this object. | |
bool | isAlloc |
Flag to indicate if the vector has been allocated. | |
std::string | name |
Additional Inherited Members | |
![]() | |
enum | NormType { TwoNorm , OneNorm , MaxNorm } |
Norm types used in norm() calculations. More... | |
Implementation of NOX::Abstract::Vector for Petsc vectors.
|
virtual |
|
virtual |
See above.
Implements NOX::Abstract::Vector.
|
virtual |
Create a new Vector 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" (the memory is allocated for the objects, but the current values are not copied into the vector). Note that there is no assumption that a vector created by ShapeCopy is initialized to zeros.
Implements NOX::Abstract::Vector.
References petscVec.
|
virtual |
Initialize every element of this vector with gamma
.
Here x represents this vector, and we update it as
Implements NOX::Abstract::Vector.
References petscVec.
|
virtual |
See above.
Implements NOX::Abstract::Vector.
|
virtual |
Return the length of vector.
Implements NOX::Abstract::Vector.
References petscVec.
|
virtual |
Norm.
Here x represents this vector, and we compute its norm as follows: for each NOX::Abstract::Vector::NormType:
Implements NOX::Abstract::Vector.
References NOX::Abstract::Vector::MaxNorm, NOX::Abstract::Vector::OneNorm, petscVec, and NOX::Abstract::Vector::TwoNorm.
Referenced by NOX::Petsc::Group::computeF(), and norm().
|
virtual |
|
virtual |
|
virtual |
Initialize each element of this vector with a random value.
If useSeed
is true, uses the value of seed
to seed the random number generator before filling the entries of this vector. So, if two calls are made where useSeed
is true and seed
is the same, then the vectors returned should be the same.
Default implementation throw an error. Only referenced by LOCA methods.
Implements NOX::Abstract::Vector.
References petscVec.
|
virtual |
See above.
Implements NOX::Abstract::Vector.
|
virtual |
|
virtual |
Scale each element of this vector by gamma
.
Here x represents this vector, and we update it as
Implements NOX::Abstract::Vector.
References petscVec.
Referenced by NOX::Petsc::Group::computeNewton(), and scale().
|
virtual |
See above.
Implements NOX::Abstract::Vector.
|
virtual |
See above.
Implements NOX::Abstract::Vector.