44#ifndef EPETRA_FEVECTOR_H
45#define EPETRA_FEVECTOR_H
56#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
97 bool ignoreNonLocalEntries=
false);
120 double *A,
int MyLDA,
int NumVectors,
121 bool ignoreNonLocalEntries=
false);
140 double **ArrayOfPointers,
int NumVectors,
141 bool ignoreNonLocalEntries=
false);
152#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
153 int SumIntoGlobalValues(
int numIDs,
154 const int* GIDs,
const double* values,
157#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
158 int SumIntoGlobalValues(
int numIDs,
159 const long long* GIDs,
const double* values,
175#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
184#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
185 int ReplaceGlobalValues(
int numIDs,
const int* GIDs,
const double* values,
188#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
189 int ReplaceGlobalValues(
int numIDs,
const long long* GIDs,
const double* values,
205#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
210#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
211 int SumIntoGlobalValues(
int numIDs,
213 const int* numValuesPerID,
214 const double* values,
217#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
218 int SumIntoGlobalValues(
int numIDs,
219 const long long* GIDs,
220 const int* numValuesPerID,
221 const double* values,
225#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
226 int ReplaceGlobalValues(
int numIDs,
const int* GIDs,
227 const int* numValuesPerID,
228 const double* values,
231#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
232 int ReplaceGlobalValues(
int numIDs,
const long long* GIDs,
233 const int* numValuesPerID,
234 const double* values,
256 bool reuse_map_and_exporter =
false);
261 ignoreNonLocalEntries_ = flag;
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
349template<>
inline std::vector<int>& Epetra_FEVector::nonlocalIDs<int>()
355#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
356template<>
inline std::vector<long long>& Epetra_FEVector::nonlocalIDs<long long>()
Epetra_Combine Mode enumerable type.
Epetra_BlockMap: A class for partitioning block element vectors and matrices.
Epetra_Export: This class builds an export object for efficient exporting of off-processor elements.
Epetra Finite-Element Vector.
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.
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_
bool ignoreNonLocalEntries_
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.
Epetra_MultiVector: A class for constructing and using dense multi-vectors, vectors and matrices in p...
Epetra_MultiVector & operator=(const Epetra_MultiVector &Source)
= Operator.
Epetra_SerialDenseVector: A class for constructing and using dense vectors.