44#ifndef EPETRA_FEVECTOR_H
45#define EPETRA_FEVECTOR_H
56#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
97 bool ignoreNonLocalEntries=
false);
121 bool ignoreNonLocalEntries=
false);
141 bool ignoreNonLocalEntries=
false);
152#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
154 const int* GIDs,
const double* values,
157#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
159 const long long* GIDs,
const double* values,
175#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
184#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
188#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
205#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
210#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
213 const int* numValuesPerID,
214 const double* values,
217#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
219 const long long* GIDs,
220 const int* numValuesPerID,
221 const double* values,
225#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
227 const int* numValuesPerID,
228 const double* values,
231#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
233 const int* numValuesPerID,
234 const double* values,
256 bool reuse_map_and_exporter =
false);
267 template<
typename int_type>
268 int inputValues(
int numIDs,
269 const int_type* GIDs,
const double* values,
273 template<
typename int_type>
274 int inputValues(
int numIDs,
275 const int_type* GIDs,
const int* numValuesPerID,
276 const double* values,
280 template<
typename int_type>
281 int inputNonlocalValue(int_type GID,
double value,
bool suminto,
284 template<
typename int_type>
285 int inputNonlocalValues(int_type GID,
int numValues,
const double* values,
286 bool suminto,
int vectorIndex);
289 template<
typename int_type>
290 void createNonlocalMapAndExporter();
293 void destroyNonlocalMapAndExporter();
296 template<
typename int_type>
297 void zeroNonlocalData();
303 void destroyNonlocalData();
308#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
311#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
344 template<
typename int_type>
348#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
355#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
Epetra_Combine Mode enumerable type.
Epetra_BlockMap: A class for partitioning block element vectors and matrices.
const Epetra_BlockMap & Map() const
Returns the address of the Epetra_BlockMap for this multi-vector.
Epetra_Export: This class builds an export object for efficient exporting of off-processor elements.
Epetra Finite-Element Vector.
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 ind...
Epetra_BlockMap * nonlocalMap_
Map describing distribution of nonlocal data.
std::vector< int > nonlocalElementSize_
Epetra_MultiVector * nonlocalVector_
Multivector that holds nonlocal data; source for the Export operation.
Epetra_FEVector(const Epetra_BlockMap &Map, int numVectors=1, bool ignoreNonLocalEntries=false)
Constructor that requires a map specifying a non-overlapping data layout.
std::vector< int_type > & nonlocalIDs()
std::vector< std::vector< double > > nonlocalCoefs_
Array of arrays (one per column) of nonlocal coefficients.
void setIgnoreNonLocalEntries(bool flag)
Set whether or not non-local data values should be ignored.
Epetra_Export * exporter_
Export object that sums nonlocal data into a nonoverlapping distribution.
std::vector< long long > nonlocalIDs_LL_
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 ...
bool ignoreNonLocalEntries_
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.
std::vector< int > nonlocalIDs_int_
Epetra_IntSerialDenseVector: A class for constructing and using dense vectors.
Epetra_LongLongSerialDenseVector: A class for constructing and using dense vectors.
int NumVectors() const
Returns the number of vectors in the multi-vector.
Epetra_MultiVector & operator=(const Epetra_MultiVector &Source)
= Operator.
Epetra_MultiVector(const Epetra_BlockMap &Map, int NumVectors, bool zeroOut=true)
Basic Epetra_MultiVector constuctor.
Epetra_SerialDenseVector: A class for constructing and using dense vectors.