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);
137 const int_type *col_nums);
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
238 Allocate(NumMyBlockRows, AllocSorted);
246 void Allocate(
int NumMyBlockRows,
bool AllocSorted)
252 if(NumMyBlockRows > 0)
253 Indices_ =
new long long *[NumMyBlockRows];
261 std::vector< EntriesInOneRow<long long> > empty;
290 Allocate(NumMyBlockRows, AllocSorted);
293 void Allocate(
int NumMyBlockRows,
bool AllocSorted)
300 if(NumMyBlockRows > 0)
301 Indices_ =
new int *[NumMyBlockRows];
309 std::vector< EntriesInOneRow<int> > empty;
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 GlobalIndicesLongLong() const
Returns true if map create with long long NumGlobalElements.
IndexData< long long > * LL_data
long long NumGlobalBlockRows_
friend class Epetra_FECrsGraph
long long NumGlobalDiagonals_
int ReAllocateAndCast(char *&UserPtr, int &Length, const int IntPacketSizeTimesNumTrans)
called by PackAndPrepare
void Print(std::ostream &os, int level=3) const
Outputs state of almost all data members. (primarily used for testing purposes).
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 MakeImportExport()
called by FillComplete (and TransformToLocal)
Epetra_CrsGraphData(Epetra_DataAccess CV, const Epetra_BlockMap &RowMap, bool StaticProfile)
Epetra_CrsGraphData Default Constructor.
int GlobalMaxNumNonzeros_
const Epetra_Export * Exporter_
friend class Epetra_CrsMatrix
long long NumGlobalNonzeros_
friend class Epetra_CrsGraph
Epetra_IntSerialDenseVector IndexOffset_
Epetra_BlockMap RangeMap_
bool SortGhostsAssociatedWithEachProcessor_
Epetra_Data()
Epetra_Data Serial Constructor.
Epetra_Export: This class builds an export object for efficient exporting of off-processor elements.
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.
Epetra_LongLongSerialDenseVector: A class for constructing and using dense vectors.
Store some data for each row describing which entries of this row are nonzero.
void AddEntry(const int_type col_num)
Add the given column number to this line.
void AddEntries(const int n_cols, const int_type *col_nums)
Add many entries to one row.
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)