NOX Development
Public Member Functions
NOX::Petsc::Vector Class Reference

Implementation of NOX::Abstract::Vector for Petsc vectors. More...

#include <NOX_Petsc_Vector.H>

Inheritance diagram for NOX::Petsc::Vector:
Inheritance graph
[legend]
Collaboration diagram for NOX::Petsc::Vector:
Collaboration graph
[legend]

List of all members.

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 NOX::size_type length () const
 Return the length of vector.
std::string Name ()
virtual Vec & getPetscVector ()
 Get reference to underlying Petsc vector.
virtual const Vec & getPetscVector () const
 Get const reference to underlying Petsc vector.
virtual Abstract::Vectorinit (double value)
 Initialize every element of this vector with gamma.
virtual Abstract::Vectoroperator= (const Vec &source)
 Copies source vector into "this".
virtual Abstract::Vectoroperator= (const Vector &source)
virtual Abstract::Vectoroperator= (const Abstract::Vector &source)
 See above.
virtual Abstract::Vectorabs (const Vector &source)
virtual Abstract::Vectorabs (const Abstract::Vector &source)
 See above.
virtual Abstract::Vectorreciprocal (const Vector &source)
virtual Abstract::Vectorreciprocal (const Abstract::Vector &source)
 See above.
virtual Abstract::Vectorscale (double gammaval)
 Scale each element of this vector by gamma.
virtual Abstract::Vectorscale (const Vector &a)
virtual Abstract::Vectorscale (const Abstract::Vector &a)
 See above.
virtual Abstract::Vectorupdate (double alpha, const Vector &a, double gammaval=0.0)
virtual Abstract::Vectorupdate (double alpha, const Abstract::Vector &a, double gammaval=0.0)
 See above.
virtual Abstract::Vectorupdate (double alpha, const Vector &a, double beta, const Vector &b, double gammaval=0.0)
virtual Abstract::Vectorupdate (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.
Vec petscVec
 Pointer to Petsc vector owned by this object.
bool isAlloc
 Flag to indicate if the vector has been allocated.
std::string name
virtual int allocate (const Vec &source, CopyType type=DeepCopy)

Detailed Description

Implementation of NOX::Abstract::Vector for Petsc vectors.


Member Function Documentation

Teuchos::RCP< NOX::Abstract::Vector > Vector::clone ( CopyType  type = DeepCopy) const [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.

Returns:
Pointer to newly created vector or NULL if clone is not supported.

Implements NOX::Abstract::Vector.

References petscVec, and Teuchos::rcp().

Abstract::Vector & Vector::init ( double  gamma) [virtual]

Initialize every element of this vector with gamma.

Here x represents this vector, and we update it as

\[ x_i = \gamma \quad \mbox{for } i=1,\dots,n \]

Returns:
Reference to this object

Implements NOX::Abstract::Vector.

References petscVec.

NOX::size_type Vector::length ( ) const [virtual]

Return the length of vector.

Returns:
The length of this vector
Note:
Even if the vector is distributed across processors, this should return the global length of the vector.

Implements NOX::Abstract::Vector.

References petscVec.

double Vector::norm ( Abstract::Vector::NormType  type = TwoNorm) const [virtual]
Abstract::Vector & Vector::scale ( double  gamma) [virtual]

Scale each element of this vector by gamma.

Here x represents this vector, and we update it as

\[ x_i = \gamma x_i \quad \mbox{for } i=1,\dots,n \]

Returns:
Reference to this object

Implements NOX::Abstract::Vector.

References petscVec.

Referenced by NOX::Petsc::Group::computeNewton(), and scale().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends