Epetra Package Browser (Single Doxygen Collection) Development
Public Member Functions | Protected Member Functions | Protected Attributes
Epetra_FEVector Class Reference

Epetra Finite-Element Vector. More...

#include <Epetra_FEVector.h>

Inheritance diagram for Epetra_FEVector:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 Epetra_FEVector (const Epetra_BlockMap &Map, int numVectors=1, bool ignoreNonLocalEntries=false)
 Constructor that requires a map specifying a non-overlapping data layout.
 Epetra_FEVector (const Epetra_FEVector &source)
 Copy constructor.
virtual ~Epetra_FEVector ()
 Destructor.
int SumIntoGlobalValues (int numIDs, const int *GIDs, const double *values, int vectorIndex=0)
 Accumulate values into the vector, adding them to any values that already exist for the specified indices.
int SumIntoGlobalValues (const Epetra_IntSerialDenseVector &GIDs, const Epetra_SerialDenseVector &values, int vectorIndex=0)
 Accumulate values into the vector, adding them to any values that already exist for the specified GIDs.
int ReplaceGlobalValues (int numIDs, const int *GIDs, const double *values, int vectorIndex=0)
 Copy values into the vector overwriting any values that already exist for the specified indices.
int ReplaceGlobalValues (const Epetra_IntSerialDenseVector &GIDs, const Epetra_SerialDenseVector &values, int vectorIndex=0)
 Copy values into the vector, replacing any values that already exist for the specified GIDs.
int SumIntoGlobalValues (int numIDs, const int *GIDs, const int *numValuesPerID, const double *values, int vectorIndex=0)
int ReplaceGlobalValues (int numIDs, const int *GIDs, const int *numValuesPerID, const double *values, int vectorIndex=0)
int GlobalAssemble (Epetra_CombineMode mode=Add, bool reuse_map_and_exporter=false)
 Gather any overlapping/shared data into the non-overlapping partitioning defined by the Map that was passed to this vector at construction time.
void setIgnoreNonLocalEntries (bool flag)
 Set whether or not non-local data values should be ignored.
Epetra_FEVectoroperator= (const Epetra_FEVector &source)

Protected Member Functions

int inputValues (int numIDs, const int *GIDs, const double *values, bool suminto, int vectorIndex)
int inputValues (int numIDs, const int *GIDs, const int *numValuesPerID, const double *values, bool suminto, int vectorIndex)
int inputNonlocalValue (int GID, double value, bool suminto, int vectorIndex)
int inputNonlocalValues (int GID, int numValues, const double *values, bool suminto, int vectorIndex)
void createNonlocalMapAndExporter ()
void destroyNonlocalMapAndExporter ()
void zeroNonlocalData ()
void destroyNonlocalData ()

Protected Attributes

int myFirstID_
int myNumIDs_
int * nonlocalIDs_
int * nonlocalElementSize_
int numNonlocalIDs_
int numNonlocalIDsAlloc_
double ** nonlocalCoefs_
int numNonlocalCoefs_
int numNonlocalCoefsAlloc_
Epetra_BlockMapnonlocalMap_
Epetra_Exportexporter_
Epetra_MultiVectornonlocalVector_
bool ignoreNonLocalEntries_

Detailed Description

Epetra Finite-Element Vector.

This class inherits Epetra_MultiVector and thus provides all Epetra_MultiVector functionality.

The added functionality provided by Epetra_FEVector is the ability to perform finite-element style vector assembly. It accepts sub-vector contributions, such as those that would come from element-load vectors, etc., and these sub-vectors need not be owned by the local processor. In other words, the user can assemble overlapping data (e.g., corresponding to shared finite-element nodes). When the user is finished assembling their vector data, they then call the method Epetra_FEVector::GlobalAssemble() which gathers the overlapping data (all non-local data that was input on each processor) into the data-distribution specified by the map that the Epetra_FEVector is constructed with.

Definition at line 68 of file Epetra_FEVector.h.


Constructor & Destructor Documentation

Epetra_FEVector::Epetra_FEVector ( const Epetra_BlockMap Map,
int  numVectors = 1,
bool  ignoreNonLocalEntries = false 
)

Constructor that requires a map specifying a non-overlapping data layout.

Parameters:
MapMap describing a non-overlapping distribution for the underlying Epetra_MultiVector that this Epetra_FEVector will be funnelling data into.
numVectorsOptional argument, default value is 1. (See the documentation for Epetra_MultiVector for the meaning of this argument.
ignoreNonLocalEntriesOptional argument, default value is false. Under certain special circumstances it is desirable to have non-local contributions ignored rather than saving them for the GlobalAssemble step.

Definition at line 55 of file Epetra_FEVector.cpp.

Epetra_FEVector::Epetra_FEVector ( const Epetra_FEVector source)

Copy constructor.

Definition at line 80 of file Epetra_FEVector.cpp.

Epetra_FEVector::~Epetra_FEVector ( ) [virtual]

Destructor.

Definition at line 99 of file Epetra_FEVector.cpp.


Member Function Documentation

int Epetra_FEVector::SumIntoGlobalValues ( int  numIDs,
const int *  GIDs,
const double *  values,
int  vectorIndex = 0 
)

Accumulate values into the vector, adding them to any values that already exist for the specified indices.

Definition at line 109 of file Epetra_FEVector.cpp.

int Epetra_FEVector::SumIntoGlobalValues ( const Epetra_IntSerialDenseVector GIDs,
const Epetra_SerialDenseVector values,
int  vectorIndex = 0 
)

Accumulate values into the vector, adding them to any values that already exist for the specified GIDs.

Parameters:
GIDsList of global ids. Must be the same length as the accompanying list of values.
valuesList of coefficient values. Must be the same length as the accompanying list of GIDs.

Definition at line 117 of file Epetra_FEVector.cpp.

int Epetra_FEVector::ReplaceGlobalValues ( int  numIDs,
const int *  GIDs,
const double *  values,
int  vectorIndex = 0 
)

Copy values into the vector overwriting any values that already exist for the specified indices.

Definition at line 140 of file Epetra_FEVector.cpp.

int Epetra_FEVector::ReplaceGlobalValues ( const Epetra_IntSerialDenseVector GIDs,
const Epetra_SerialDenseVector values,
int  vectorIndex = 0 
)

Copy values into the vector, replacing any values that already exist for the specified GIDs.

Parameters:
GIDsList of global ids. Must be the same length as the accompanying list of values.
valuesList of coefficient values. Must be the same length as the accompanying list of GIDs.

Definition at line 149 of file Epetra_FEVector.cpp.

int Epetra_FEVector::SumIntoGlobalValues ( int  numIDs,
const int *  GIDs,
const int *  numValuesPerID,
const double *  values,
int  vectorIndex = 0 
)

Definition at line 130 of file Epetra_FEVector.cpp.

int Epetra_FEVector::ReplaceGlobalValues ( int  numIDs,
const int *  GIDs,
const int *  numValuesPerID,
const double *  values,
int  vectorIndex = 0 
)

Definition at line 193 of file Epetra_FEVector.cpp.

int Epetra_FEVector::GlobalAssemble ( Epetra_CombineMode  mode = Add,
bool  reuse_map_and_exporter = false 
)

Gather any overlapping/shared data into the non-overlapping partitioning defined by the Map that was passed to this vector at construction time.

Data imported from other processors is stored on the owning processor with a "sumInto" or accumulate operation. This is a collective method -- every processor must enter it before any will complete it.

Optimization for power-users: The optional parameter 'reuse_map_and_exporter' defaults to false. By default, a map that describes the non-local data is re-created at each call to GlobalAssemble, along with an exporter used to do the communication. This is expensive. If you know that the layout of your nonlocal data has not changed since your previous call to GlobalAssemble, you can set this flag to true and it will reuse the previously created map and exporter rather than creating new ones.

Definition at line 374 of file Epetra_FEVector.cpp.

void Epetra_FEVector::setIgnoreNonLocalEntries ( bool  flag) [inline]

Set whether or not non-local data values should be ignored.

Definition at line 167 of file Epetra_FEVector.h.

Epetra_FEVector & Epetra_FEVector::operator= ( const Epetra_FEVector source)

Definition at line 438 of file Epetra_FEVector.cpp.

int Epetra_FEVector::inputValues ( int  numIDs,
const int *  GIDs,
const double *  values,
bool  suminto,
int  vectorIndex 
) [protected]

Definition at line 162 of file Epetra_FEVector.cpp.

int Epetra_FEVector::inputValues ( int  numIDs,
const int *  GIDs,
const int *  numValuesPerID,
const double *  values,
bool  suminto,
int  vectorIndex 
) [protected]

Definition at line 203 of file Epetra_FEVector.cpp.

int Epetra_FEVector::inputNonlocalValue ( int  GID,
double  value,
bool  suminto,
int  vectorIndex 
) [protected]

Definition at line 239 of file Epetra_FEVector.cpp.

int Epetra_FEVector::inputNonlocalValues ( int  GID,
int  numValues,
const double *  values,
bool  suminto,
int  vectorIndex 
) [protected]

Definition at line 299 of file Epetra_FEVector.cpp.

void Epetra_FEVector::createNonlocalMapAndExporter ( ) [protected]

Definition at line 417 of file Epetra_FEVector.cpp.

void Epetra_FEVector::destroyNonlocalMapAndExporter ( ) [protected]

Definition at line 430 of file Epetra_FEVector.cpp.

void Epetra_FEVector::zeroNonlocalData ( ) [protected]

Definition at line 481 of file Epetra_FEVector.cpp.

void Epetra_FEVector::destroyNonlocalData ( ) [protected]

Definition at line 497 of file Epetra_FEVector.cpp.


Member Data Documentation

int Epetra_FEVector::myFirstID_ [protected]

Definition at line 198 of file Epetra_FEVector.h.

int Epetra_FEVector::myNumIDs_ [protected]

Definition at line 199 of file Epetra_FEVector.h.

Definition at line 201 of file Epetra_FEVector.h.

Definition at line 202 of file Epetra_FEVector.h.

Definition at line 203 of file Epetra_FEVector.h.

Definition at line 204 of file Epetra_FEVector.h.

double** Epetra_FEVector::nonlocalCoefs_ [protected]

Definition at line 205 of file Epetra_FEVector.h.

Definition at line 206 of file Epetra_FEVector.h.

Definition at line 207 of file Epetra_FEVector.h.

Definition at line 208 of file Epetra_FEVector.h.

Definition at line 209 of file Epetra_FEVector.h.

Definition at line 210 of file Epetra_FEVector.h.

Definition at line 212 of file Epetra_FEVector.h.


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