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_;
267 All_Indices_.Resize(0);
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_;
315 All_Indices_.Resize(0);
316 All_IndicesPlus1_.Resize(0);
320 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
324 if(RowMap_.GlobalIndicesLongLong() && !IndicesAreLocal_)
327 throw "Epetra_CrsGraphData::Data<long long>: Map indices not long long or are local";
334 if(RowMap_.GlobalIndicesInt() || (RowMap_.GlobalIndicesLongLong() && !IndicesAreGlobal_))
337 throw "Epetra_CrsGraphData::Data<int>: Map indices not int or are global long long";
bool GlobalConstantsComputed_
const Epetra_Export * Exporter_
void Allocate(int NumMyBlockRows, bool AllocSorted)
Epetra_IntSerialDenseVector: A class for constructing and using dense vectors.
Epetra_BlockMap RangeMap_
long long NumGlobalBlockCols_
Epetra_IntSerialDenseVector NumIndicesPerRow_
int GlobalMaxNumNonzeros_
bool IndicesAreContiguous_
Store some data for each row describing which entries of this row are nonzero.
long long NumGlobalEntries_
long long NumGlobalNonzeros_
Epetra_Data: The Epetra Base Data Class.
Epetra Finite-Element CrsGraph.
bool SortGhostsAssociatedWithEachProcessor_
IndexData< long long > * LL_data
Epetra_BlockMap DomainMap_
Epetra_Export: This class builds an export object for efficient exporting of off-processor elements...
const Epetra_Map & ColMap() const
Returns the Epetra_Map object that describes the set of column-indices that appear in each processor'...
Epetra_LongLongSerialDenseVector All_Indices_
Epetra_Import: This class builds an import object for efficient importing of off-processor elements...
Epetra_CrsGraphData: The Epetra CrsGraph Data Class.
const Epetra_Map & RowMap() const
Returns the Epetra_Map object associated with the rows of this matrix.
std::vector< EntriesInOneRow< long long > > SortedEntries_
std::vector< EntriesInOneRow< int > > SortedEntries_
Epetra_IntSerialDenseVector NumAllocatedIndicesPerRow_
Epetra_BlockMap: A class for partitioning block element vectors and matrices.
Epetra_LongLongSerialDenseVector: A class for constructing and using dense vectors.
long long * TempColIndices_
std::vector< int_type > entries_
Storage for the column indices of this row.
virtual void Print(std::ostream &os) const
Print method.
void Allocate(int NumMyBlockRows, bool AllocSorted)
Epetra_IntSerialDenseVector All_Indices_
long long NumGlobalBlockRows_
Epetra_IntSerialDenseVector All_IndicesPlus1_
Epetra_IntSerialDenseVector IndexOffset_
long long NumGlobalBlockDiagonals_
Epetra_CrsMatrix: A class for constructing and using real-valued double-precision sparse compressed r...
Epetra_CrsMatrix & operator=(const Epetra_CrsMatrix &src)
Assignment operator.
const Epetra_Import * Importer_
IndexData(int NumMyBlockRows, bool AllocSorted)
long long NumGlobalDiagonals_
Epetra_CrsGraph: A class for constructing and using sparse compressed row graphs. ...
Epetra_DataAccess Mode enumerable type.
IndexData(int NumMyBlockRows, bool AllocSorted)