Public Member Functions |
| | Epetra_FEVector (const Epetra_BlockMap &Map, int numVectors=1, bool ignoreNonLocalEntries=false) |
| | Epetra_FEVector (Epetra_DataAccess CV, const Epetra_BlockMap &Map, double *A, int MyLDA, int NumVectors, bool ignoreNonLocalEntries=false) |
| | Set multi-vector values from two-dimensional array.
|
| | Epetra_FEVector (Epetra_DataAccess CV, const Epetra_BlockMap &Map, double **ArrayOfPointers, int NumVectors, bool ignoreNonLocalEntries=false) |
| | Set multi-vector values from array of pointers.
|
| | Epetra_FEVector (const Epetra_FEVector &source) |
| virtual | ~Epetra_FEVector () |
| int | SumIntoGlobalValues (int numIDs, const int *GIDs, const double *values, int vectorIndex=0) |
| int | SumIntoGlobalValues (const Epetra_IntSerialDenseVector &GIDs, const Epetra_SerialDenseVector &values, int vectorIndex=0) |
| int | ReplaceGlobalValues (int numIDs, const int *GIDs, const double *values, int vectorIndex=0) |
| int | ReplaceGlobalValues (const Epetra_IntSerialDenseVector &GIDs, const Epetra_SerialDenseVector &values, int vectorIndex=0) |
|
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) |
| void | setIgnoreNonLocalEntries (bool flag) |
|
Epetra_FEVector & | operator= (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_BlockMap * | nonlocalMap_ |
|
Epetra_Export * | exporter_ |
|
Epetra_MultiVector * | nonlocalVector_ |
|
bool | ignoreNonLocalEntries_ |
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.
| 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.