44#ifndef EPETRA_CRSGRAPHDATA_H
45#define EPETRA_CRSGRAPHDATA_H
53#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
98 void Print(std::ostream& os,
int level = 3)
const;
116 template<
typename int_type>
131 void AddEntry (
const int_type col_num);
136 void AddEntries (
const int n_cols,
137 const int_type *col_nums);
141 int MakeImportExport();
144 int ReAllocateAndCast(
char*& UserPtr,
int& Length,
const int IntPacketSizeTimesNumTrans);
209 template<
typename int_type>
213#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
217 template<
typename int_type>
221#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
235 TempColIndices_(NULL),
238 Allocate(NumMyBlockRows, AllocSorted);
246 void Allocate(
int NumMyBlockRows,
bool AllocSorted)
251 SortedEntries_.resize(NumMyBlockRows);
252 if(NumMyBlockRows > 0)
253 Indices_ =
new long long *[NumMyBlockRows];
261 std::vector< EntriesInOneRow<long long> > empty;
262 SortedEntries_.swap(empty);
264 delete [] TempColIndices_;
286 TempColIndices_(NULL),
290 Allocate(NumMyBlockRows, AllocSorted);
293 void Allocate(
int NumMyBlockRows,
bool AllocSorted)
298 SortedEntries_.resize(NumMyBlockRows);
300 if(NumMyBlockRows > 0)
301 Indices_ =
new int *[NumMyBlockRows];
309 std::vector< EntriesInOneRow<int> > empty;
310 SortedEntries_.swap(empty);
312 delete [] TempColIndices_;
316 All_IndicesPlus1_.
Resize(0);
320#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
327 throw "Epetra_CrsGraphData::Data<long long>: Map indices not long long or are local";
337 throw "Epetra_CrsGraphData::Data<int>: Map indices not int or are global long long";
Epetra_DataAccess Mode enumerable type.
Epetra_BlockMap: A class for partitioning block element vectors and matrices.
bool GlobalIndicesInt() const
Returns true if map create with int NumGlobalElements.
bool GlobalIndicesLongLong() const
Returns true if map create with long long NumGlobalElements.
Epetra_CrsGraphData: The Epetra CrsGraph Data Class.
IndexData< long long > * LL_data
long long NumGlobalBlockRows_
long long NumGlobalDiagonals_
bool GlobalConstantsComputed_
long long NumGlobalBlockCols_
bool IndicesAreContiguous_
long long NumGlobalEntries_
Epetra_CrsGraphData & operator=(const Epetra_CrsGraphData &CrsGraphData)
Epetra_CrsGraphData assignment operator (not defined)
IndexData< int_type > & Data()
Epetra_CrsGraphData(const Epetra_CrsGraphData &CrsGraphData)
Epetra_CrsGraphData copy constructor (not defined).
long long NumGlobalBlockDiagonals_
const Epetra_Import * Importer_
Epetra_IntSerialDenseVector NumIndicesPerRow_
Epetra_IntSerialDenseVector NumAllocatedIndicesPerRow_
Epetra_BlockMap DomainMap_
int GlobalMaxNumNonzeros_
const Epetra_Export * Exporter_
long long NumGlobalNonzeros_
Epetra_IntSerialDenseVector IndexOffset_
Epetra_BlockMap RangeMap_
bool SortGhostsAssociatedWithEachProcessor_
Epetra_CrsGraph: A class for constructing and using sparse compressed row graphs.
Epetra_CrsMatrix: A class for constructing and using real-valued double-precision sparse compressed r...
Epetra_Data: The Epetra Base Data Class.
Epetra_Export: This class builds an export object for efficient exporting of off-processor elements.
Epetra Finite-Element CrsGraph.
Epetra_Import: This class builds an import object for efficient importing of off-processor elements.
Epetra_IntSerialDenseVector: A class for constructing and using dense vectors.
int Resize(int Length_in)
Resize a Epetra_IntSerialDenseVector object.
Epetra_LongLongSerialDenseVector: A class for constructing and using dense vectors.
int Resize(int Length_in)
Resize a Epetra_LongLongSerialDenseVector object.
Store some data for each row describing which entries of this row are nonzero.
std::vector< int_type > entries_
Storage for the column indices of this row.
Epetra_IntSerialDenseVector All_IndicesPlus1_
Epetra_IntSerialDenseVector All_Indices_
IndexData(int NumMyBlockRows, bool AllocSorted)
std::vector< EntriesInOneRow< int > > SortedEntries_
void Allocate(int NumMyBlockRows, bool AllocSorted)
Epetra_LongLongSerialDenseVector All_Indices_
long long * TempColIndices_
std::vector< EntriesInOneRow< long long > > SortedEntries_
IndexData(int NumMyBlockRows, bool AllocSorted)
void Allocate(int NumMyBlockRows, bool AllocSorted)