44 #ifndef EPETRA_CRSGRAPHDATA_H
45 #define EPETRA_CRSGRAPHDATA_H
47 #if defined(Epetra_SHOW_DEPRECATED_WARNINGS)
49 #warning "The Epetra package is deprecated"
61 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
106 void Print(std::ostream& os,
int level = 3)
const;
124 template<
typename int_type>
139 void AddEntry (
const int_type col_num);
144 void AddEntries (
const int n_cols,
145 const int_type *col_nums);
149 int MakeImportExport();
152 int ReAllocateAndCast(
char*& UserPtr,
int& Length,
const int IntPacketSizeTimesNumTrans);
217 template<
typename int_type>
221 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
225 template<
typename int_type>
229 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
243 TempColIndices_(NULL),
246 Allocate(NumMyBlockRows, AllocSorted);
254 void Allocate(
int NumMyBlockRows,
bool AllocSorted)
259 SortedEntries_.resize(NumMyBlockRows);
260 if(NumMyBlockRows > 0)
261 Indices_ =
new long long *[NumMyBlockRows];
269 std::vector< EntriesInOneRow<long long> > empty;
270 SortedEntries_.swap(empty);
272 delete [] TempColIndices_;
275 All_Indices_.Resize(0);
294 TempColIndices_(NULL),
298 Allocate(NumMyBlockRows, AllocSorted);
301 void Allocate(
int NumMyBlockRows,
bool AllocSorted)
306 SortedEntries_.resize(NumMyBlockRows);
308 if(NumMyBlockRows > 0)
309 Indices_ =
new int *[NumMyBlockRows];
317 std::vector< EntriesInOneRow<int> > empty;
318 SortedEntries_.swap(empty);
320 delete [] TempColIndices_;
323 All_Indices_.Resize(0);
324 All_IndicesPlus1_.Resize(0);
328 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
332 if(RowMap_.GlobalIndicesLongLong() && !IndicesAreLocal_)
335 throw "Epetra_CrsGraphData::Data<long long>: Map indices not long long or are local";
342 if(RowMap_.GlobalIndicesInt() || (RowMap_.GlobalIndicesLongLong() && !IndicesAreGlobal_))
345 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)