PyTrilinos::Epetra::Epetra_Vector Class Reference

Inheritance diagram for PyTrilinos::Epetra::Epetra_Vector:

Inheritance graph
[legend]
Collaboration diagram for PyTrilinos::Epetra::Epetra_Vector:

Collaboration graph
[legend]

List of all members.

Public Member Functions

def __init__
def __init__

Public Attributes

 this


Detailed Description

Epetra_Vector: A class for constructing and using dense vectors on a
parallel computer.

The Epetra_Vector class enables the construction and use of real-
valued, double- precision dense vectors in a distributed memory
environment. The distribution of the dense vector is determined in
part by a Epetra_Comm object and a Epetra_Map (or Epetra_LocalMap or
Epetra_BlockMap).

This class is derived from the Epetra_MultiVector class. As such, it
has full access to all of the functionality provided in the
Epetra_MultiVector class.

Distributed Global vs. Replicated Local Distributed Global Vectors -
In most instances, a multi-vector will be partitioned across multiple
memory images associated with multiple processors. In this case, there
is a unique copy of each element and elements are spread across all
processors specified by the Epetra_Comm communicator.

Replicated Local Vectors - Some algorithms use vectors that are too
small to be distributed across all processors. Replicated local
vectors handle these types of situation.

Constructing Epetra_Vectors

There are four Epetra_Vector constructors. The first is a basic
constructor that allocates space and sets all values to zero, the
second is a copy constructor. The third and fourth constructors work
with user data. These constructors have two data access modes: Copy
mode - Allocates memory and makes a copy of the user-provided data. In
this case, the user data is not needed after construction.

View mode - Creates a "view" of the user data. In this case, the
user data is required to remain intact for the life of the vector.

WARNING:  View mode is extremely dangerous from a data hiding
perspective. Therefore, we strongly encourage users to develop code
using Copy mode first and only use the View mode in a secondary
optimization phase.  All Epetra_Vector constructors require a map
argument that describes the layout of elements on the parallel
machine. Specifically, map is a Epetra_Map, Epetra_LocalMap or
Epetra_BlockMap object describing the desired memory layout for the
vector.

There are four different Epetra_Vector constructors: Basic - All
values are zero.

Copy - Copy an existing vector.

Copy from or make view of user double array.

Copy or make view of a vector from a Epetra_MultiVector object.

Extracting Data from Epetra_Vectors

Once a Epetra_Vector is constructed, it is possible to extract a copy
of the values or create a view of them.

WARNING:  ExtractView functions are extremely dangerous from a data
hiding perspective. For both ExtractView fuctions, there is a
corresponding ExtractCopy function. We strongly encourage users to
develop code using ExtractCopy functions first and only use the
ExtractView functions in a secondary optimization phase.  There are
two Extract functions: ExtractCopy - Copy values into a user-provided
array.

ExtractView - Set user-provided array to point to Epetra_Vector data.

Vector and Utility Functions

Once a Epetra_Vector is constructed, a variety of mathematical
functions can be applied to the vector. Specifically: Dot Products.

Vector Updates.

p Norms.

Weighted Norms.

Minimum, Maximum and Average Values.

The final useful function is Flops(). Each Epetra_Vector object keep
track of the number of serial floating point operations performed
using the specified object as the this argument to the function. The
Flops() function returns this number as a double precision number.
Using this information, in conjunction with the Epetra_Time class, one
can get accurate parallel performance numbers.

WARNING:  A Epetra_Map, Epetra_LocalMap or Epetra_BlockMap object is
required for all Epetra_Vector constructors.

C++ includes: Epetra_Vector.h 

Member Function Documentation

def PyTrilinos::Epetra::Epetra_Vector::__init__ (   self,
  args 
)

__init__(self, BlockMap Map, bool zeroOut = True) -> Epetra_Vector
__init__(self, Epetra_Vector Source) -> Epetra_Vector
__init__(self, Epetra_DataAccess CV, BlockMap Map, double V) -> Epetra_Vector
__init__(self, Epetra_DataAccess CV, Epetra_MultiVector Source, int Index) -> Epetra_Vector

Epetra_Vector::Epetra_Vector(Epetra_DataAccess CV, const
Epetra_MultiVector &Source, int Index)

Set vector values from a vector in an existing Epetra_MultiVector.

Parameters:
-----------

In:  Epetra_DataAccess - Enumerated type set to Copy or View.

In:  Map - A Epetra_LocalMap, Epetra_Map or Epetra_BlockMap.

In:  Source - An existing fully constructed Epetra_MultiVector.

In:  Index - Index of vector to access.

Integer error code, set to 0 if successful.  See Detailed Description
section for further discussion. 

Reimplemented from PyTrilinos::Epetra::Epetra_MultiVector.

Reimplemented in PyTrilinos::Epetra::Vector, PyTrilinos::Epetra::NumPyVector, PyTrilinos::Epetra::Vector, PyTrilinos::Epetra::Vector, PyTrilinos::Epetra::NumPyVector, and PyTrilinos::Epetra::Vector.

def PyTrilinos::Epetra::Epetra_Vector::__init__ (   self,
  args 
)

__init__(self, BlockMap Map, bool zeroOut = True) -> Epetra_Vector
__init__(self, Epetra_Vector Source) -> Epetra_Vector
__init__(self, Epetra_DataAccess CV, BlockMap Map, double V) -> Epetra_Vector
__init__(self, Epetra_DataAccess CV, Epetra_MultiVector Source, int Index) -> Epetra_Vector

Epetra_Vector::Epetra_Vector(Epetra_DataAccess CV, const
Epetra_MultiVector &Source, int Index)

Set vector values from a vector in an existing Epetra_MultiVector.

Parameters:
-----------

In:  Epetra_DataAccess - Enumerated type set to Copy or View.

In:  Map - A Epetra_LocalMap, Epetra_Map or Epetra_BlockMap.

In:  Source - An existing fully constructed Epetra_MultiVector.

In:  Index - Index of vector to access.

Integer error code, set to 0 if successful.  See Detailed Description
section for further discussion. 

Reimplemented from PyTrilinos::Epetra::Epetra_MultiVector.

Reimplemented in PyTrilinos::Epetra::Vector, PyTrilinos::Epetra::NumPyVector, PyTrilinos::Epetra::Vector, PyTrilinos::Epetra::Vector, PyTrilinos::Epetra::NumPyVector, and PyTrilinos::Epetra::Vector.


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

Generated on Thu Dec 17 11:00:21 2009 for PyTrilinos by  doxygen 1.5.9