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 GlobalIndicesInt() const
Returns true if map create with int NumGlobalElements.
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.
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.
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)