#include <Epetra_FECrsGraph.h>
Public Member Functions | |
Epetra_FECrsGraph (Epetra_DataAccess CV, const Epetra_BlockMap &RowMap, int *NumIndicesPerRow, bool ignoreNonLocalEntries=false, bool buildNonlocalGraph=false) | |
Epetra_FECrsGraph (Epetra_DataAccess CV, const Epetra_BlockMap &RowMap, int NumIndicesPerRow, bool ignoreNonLocalEntries=false, bool buildNonlocalGraph=false) | |
Epetra_FECrsGraph (Epetra_DataAccess CV, const Epetra_BlockMap &RowMap, const Epetra_BlockMap &ColMap, int *NumIndicesPerRow, bool ignoreNonLocalEntries=false, bool buildNonlocalGraph=false) | |
Epetra_FECrsGraph (Epetra_DataAccess CV, const Epetra_BlockMap &RowMap, const Epetra_BlockMap &ColMap, int NumIndicesPerRow, bool ignoreNonLocalEntries=false, bool buildNonlocalGraph=false) | |
virtual | ~Epetra_FECrsGraph () |
int | InsertGlobalIndices (int numRows, const int *rows, int numCols, const int *cols) |
int | InsertGlobalIndices (int numRows, const long long *rows, int numCols, const long long *cols) |
int | GlobalAssemble (bool callFillComplete=true) |
int | GlobalAssemble (const Epetra_Map &domain_map, const Epetra_Map &range_map, bool callFillComplete=true) |
bool | UseNonlocalGraph () const |
template<> | |
std::map< int, Epetra_CrsGraphData::EntriesInOneRow < int > > & | nonlocalRowData () |
template<> | |
std::map< long long, Epetra_CrsGraphData::EntriesInOneRow < long long > > & | nonlocalRowData () |
Public Member Functions inherited from Epetra_CrsGraph | |
Epetra_CrsGraph & | operator= (const Epetra_CrsGraph &Source) |
Assignment operator. More... | |
Epetra_CrsGraph (Epetra_DataAccess CV, const Epetra_BlockMap &RowMap, const int *NumIndicesPerRow, bool StaticProfile=false) | |
Epetra_CrsGraph constuctor with variable number of indices per row. More... | |
Epetra_CrsGraph (Epetra_DataAccess CV, const Epetra_BlockMap &RowMap, int NumIndicesPerRow, bool StaticProfile=false) | |
Epetra_CrsGraph constuctor with fixed number of indices per row. More... | |
Epetra_CrsGraph (Epetra_DataAccess CV, const Epetra_BlockMap &RowMap, const Epetra_BlockMap &ColMap, const int *NumIndicesPerRow, bool StaticProfile=false) | |
Epetra_CrsGraph constuctor with variable number of indices per row. More... | |
Epetra_CrsGraph (Epetra_DataAccess CV, const Epetra_BlockMap &RowMap, const Epetra_BlockMap &ColMap, int NumIndicesPerRow, bool StaticProfile=false) | |
Epetra_CrsGraph constuctor with fixed number of indices per row. More... | |
Epetra_CrsGraph (const Epetra_CrsGraph &Graph) | |
Copy constructor. More... | |
virtual | ~Epetra_CrsGraph () |
Epetra_CrsGraph Destructor. | |
int | InsertGlobalIndices (int GlobalRow, int NumIndices, int *Indices) |
Enter a list of elements in a specified global row of the graph. More... | |
int | InsertGlobalIndices (long long GlobalRow, int NumIndices, long long *Indices) |
int | RemoveGlobalIndices (int GlobalRow, int NumIndices, int *Indices) |
Remove a list of elements from a specified global row of the graph. More... | |
int | RemoveGlobalIndices (long long GlobalRow, int NumIndices, long long *Indices) |
int | RemoveGlobalIndices (long long Row) |
Remove all indices from a specified global row of the graph. More... | |
int | InsertMyIndices (int LocalRow, int NumIndices, int *Indices) |
Enter a list of elements in a specified local row of the graph. More... | |
int | RemoveMyIndices (int LocalRow, int NumIndices, int *Indices) |
Remove a list of elements from a specified local row of the graph. More... | |
int | RemoveMyIndices (int Row) |
Remove all indices from a specified local row of the graph. More... | |
int | FillComplete () |
Tranform to local index space. Perform other operations to allow optimal matrix operations. More... | |
int | FillComplete (const Epetra_BlockMap &DomainMap, const Epetra_BlockMap &RangeMap) |
Transform to local index space using specified Domain/Range maps. Perform other operations to allow optimal matrix operations. More... | |
int | OptimizeStorage () |
Make consecutive row index sections contiguous, minimize internal storage used for constructing graph. More... | |
int | ExtractGlobalRowCopy (int GlobalRow, int LenOfIndices, int &NumIndices, int *Indices) const |
Extract a list of elements in a specified global row of the graph. Put into storage allocated by calling routine. More... | |
int | ExtractGlobalRowCopy (long long GlobalRow, int LenOfIndices, int &NumIndices, long long *Indices) const |
int | ExtractMyRowCopy (int LocalRow, int LenOfIndices, int &NumIndices, int *Indices) const |
Extract a list of elements in a specified local row of the graph. Put into storage allocated by calling routine. More... | |
int | ExtractGlobalRowView (int GlobalRow, int &NumIndices, int *&Indices) const |
Get a view of the elements in a specified global row of the graph. More... | |
int | ExtractGlobalRowView (long long GlobalRow, int &NumIndices, long long *&Indices) const |
int | ExtractMyRowView (int LocalRow, int &NumIndices, int *&Indices) const |
Get a view of the elements in a specified local row of the graph. More... | |
bool | Filled () const |
If FillComplete() has been called, this query returns true, otherwise it returns false. | |
bool | StorageOptimized () const |
If OptimizeStorage() has been called, this query returns true, otherwise it returns false. | |
bool | IndicesAreGlobal () const |
If column indices are in global range, this query returns true, otherwise it returns false. | |
bool | IndicesAreLocal () const |
If column indices are in local range, this query returns true, otherwise it returns false. | |
bool | LowerTriangular () const |
If graph is lower triangular in local index space, this query returns true, otherwise it returns false. More... | |
bool | UpperTriangular () const |
If graph is upper triangular in local index space, this query returns true, otherwise it returns false. More... | |
bool | NoDiagonal () const |
If graph has no diagonal entries in global index space, this query returns true, otherwise it returns false. More... | |
bool | MyGlobalRow (int GID) const |
Returns true of GID is owned by the calling processor, otherwise it returns false. | |
bool | MyGlobalRow (long long GID) const |
bool | HaveColMap () const |
Returns true if we have a well-defined ColMap, and returns false otherwise. More... | |
int | NumMyRows () const |
Returns the number of matrix rows on this processor. | |
int | NumGlobalRows () const |
Returns the number of matrix rows in global matrix. | |
long long | NumGlobalRows64 () const |
int | NumMyCols () const |
Returns the number of entries in the set of column-indices that appear on this processor. More... | |
int | NumGlobalCols () const |
Returns the number of matrix columns in global matrix. More... | |
long long | NumGlobalCols64 () const |
int | NumGlobalNonzeros () const |
Returns the number of indices in the global graph. More... | |
long long | NumGlobalNonzeros64 () const |
int | NumGlobalDiagonals () const |
Returns the number of diagonal entries in the global graph, based on global row/column index comparisons. More... | |
long long | NumGlobalDiagonals64 () const |
int | NumMyDiagonals () const |
Returns the number of diagonal entries in the local graph, based on global row/column index comparisons. More... | |
int | NumMyBlockRows () const |
Returns the number of block matrix rows on this processor. | |
int | NumGlobalBlockRows () const |
Returns the number of Block matrix rows in global matrix. | |
long long | NumGlobalBlockRows64 () const |
int | NumMyBlockCols () const |
Returns the number of Block matrix columns on this processor. More... | |
int | NumGlobalBlockCols () const |
Returns the number of Block matrix columns in global matrix. More... | |
long long | NumGlobalBlockCols64 () const |
int | NumMyBlockDiagonals () const |
Returns the number of Block diagonal entries in the local graph, based on global row/column index comparisons. More... | |
int | NumGlobalBlockDiagonals () const |
Returns the number of Block diagonal entries in the global graph, based on global row/column index comparisons. More... | |
long long | NumGlobalBlockDiagonals64 () const |
int | NumGlobalEntries () const |
Returns the number of entries in the global graph. More... | |
long long | NumGlobalEntries64 () const |
int | NumMyEntries () const |
Returns the number of entries on this processor. More... | |
int | MaxRowDim () const |
Returns the max row dimension of block entries on the processor. More... | |
int | GlobalMaxRowDim () const |
Returns the max row dimension of block entries across all processors. More... | |
int | MaxColDim () const |
Returns the max column dimension of block entries on the processor. More... | |
int | GlobalMaxColDim () const |
Returns the max column dimension of block entries across all processors. More... | |
int | NumMyNonzeros () const |
Returns the number of indices in the local graph. More... | |
int | NumGlobalIndices (long long Row) const |
Returns the current number of nonzero entries in specified global row on this processor. | |
int | NumAllocatedGlobalIndices (long long Row) const |
Returns the allocated number of nonzero entries in specified global row on this processor. | |
int | MaxNumIndices () const |
Returns the maximum number of nonzero entries across all rows on this processor. More... | |
int | GlobalMaxNumIndices () const |
Returns the maximun number of nonzero entries across all rows across all processors. More... | |
int | MaxNumNonzeros () const |
Returns the maximum number of nonzero points across all rows on this processor. More... | |
int | GlobalMaxNumNonzeros () const |
Returns the maximun number of nonzero points across all rows across all processors. More... | |
int | NumMyIndices (int Row) const |
Returns the current number of nonzero entries in specified local row on this processor. | |
int | NumAllocatedMyIndices (int Row) const |
Returns the allocated number of nonzero entries in specified local row on this processor. | |
int | IndexBase () const |
Returns the index base for row and column indices for this graph. More... | |
long long | IndexBase64 () const |
const Epetra_BlockMap & | RowMap () const |
Returns the RowMap associated with this graph. | |
int | ReplaceRowMap (const Epetra_BlockMap &newmap) |
int | ReplaceColMap (const Epetra_BlockMap &newmap) |
int | ReplaceDomainMapAndImporter (const Epetra_BlockMap &NewDomainMap, const Epetra_Import *NewImporter) |
Replaces the current DomainMap & Importer with the user-specified map object. More... | |
int | RemoveEmptyProcessesInPlace (const Epetra_BlockMap *NewMap) |
Remove processes owning zero rows from the Maps and their communicator. More... | |
const Epetra_BlockMap & | ColMap () const |
Returns the Column Map associated with this graph. More... | |
const Epetra_BlockMap & | DomainMap () const |
Returns the DomainMap associated with this graph. More... | |
const Epetra_BlockMap & | RangeMap () const |
Returns the RangeMap associated with this graph. More... | |
const Epetra_Import * | Importer () const |
Returns the Importer associated with this graph. | |
const Epetra_Export * | Exporter () const |
Returns the Exporter associated with this graph. | |
const Epetra_Comm & | Comm () const |
Returns a pointer to the Epetra_Comm communicator associated with this graph. | |
int | LRID (int GRID_in) const |
Returns the local row index for given global row index, returns -1 if no local row for this global row. | |
int | LRID (long long GRID_in) const |
int | GRID (int LRID_in) const |
Returns the global row index for give local row index, returns IndexBase-1 if we don't have this local row. | |
long long | GRID64 (int LRID_in) const |
int | LCID (int GCID_in) const |
Returns the local column index for given global column index, returns -1 if no local column for this global column. More... | |
int | LCID (long long GCID_in) const |
int | GCID (int LCID_in) const |
Returns the global column index for give local column index, returns IndexBase-1 if we don't have this local column. More... | |
long long | GCID64 (int LCID_in) const |
bool | MyGRID (int GRID_in) const |
Returns true if the GRID passed in belongs to the calling processor in this map, otherwise returns false. | |
bool | MyGRID (long long GRID_in) const |
bool | MyLRID (int LRID_in) const |
Returns true if the LRID passed in belongs to the calling processor in this map, otherwise returns false. | |
bool | MyGCID (int GCID_in) const |
Returns true if the GCID passed in belongs to the calling processor in this map, otherwise returns false. More... | |
bool | MyGCID (long long GCID_in) const |
bool | MyLCID (int LCID_in) const |
Returns true if the LRID passed in belongs to the calling processor in this map, otherwise returns false. More... | |
int * | operator[] (int Loc) |
Inlined bracket operator for fast access to data. (Const and Non-const versions) More... | |
int * | operator[] (int Loc) const |
virtual void | Print (std::ostream &os) const |
Print method. | |
void | PrintGraphData (std::ostream &os) const |
void | PrintGraphData (std::ostream &os, int level) const |
const Epetra_BlockMap & | ImportMap () const |
Use ColMap() instead. | |
int | TransformToLocal () |
Use FillComplete() instead. | |
int | TransformToLocal (const Epetra_BlockMap *DomainMap, const Epetra_BlockMap *RangeMap) |
Use FillComplete(const Epetra_BlockMap& DomainMap, const Epetra_BlockMap& RangeMap) instead. | |
int | ReferenceCount () const |
Returns the reference count of CrsGraphData. More... | |
const Epetra_CrsGraphData * | DataPtr () const |
Returns a pointer to the CrsGraphData instance this CrsGraph uses. More... | |
Epetra_IntSerialDenseVector & | ExpertExtractIndexOffset () |
Returns a reference to the Epetra_IntSerialDenseVector used to hold the local IndexOffsets (CRS rowptr) More... | |
Epetra_IntSerialDenseVector & | ExpertExtractIndices () |
Returns a reference to the Epetra_IntSerialDenseVector used to hold the local All_Indices (CRS colind) More... | |
void | SortGhostsAssociatedWithEachProcessor (bool Flag) |
Forces FillComplete() to locally order ghostnodes associated with each remote processor in ascending order. More... | |
Public Member Functions inherited from Epetra_DistObject | |
Epetra_DistObject (const Epetra_BlockMap &Map) | |
Basic Epetra_DistObject constuctor. More... | |
Epetra_DistObject (const Epetra_BlockMap &Map, const char *const Label) | |
Epetra_DistObject (const Epetra_DistObject &Source) | |
Epetra_DistObject copy constructor. | |
virtual | ~Epetra_DistObject () |
Epetra_DistObject destructor. | |
int | Import (const Epetra_SrcDistObject &A, const Epetra_Import &Importer, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0) |
Imports an Epetra_DistObject using the Epetra_Import object. More... | |
int | Import (const Epetra_SrcDistObject &A, const Epetra_Export &Exporter, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0) |
Imports an Epetra_DistObject using the Epetra_Export object. More... | |
int | Export (const Epetra_SrcDistObject &A, const Epetra_Import &Importer, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0) |
Exports an Epetra_DistObject using the Epetra_Import object. More... | |
int | Export (const Epetra_SrcDistObject &A, const Epetra_Export &Exporter, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0) |
Exports an Epetra_DistObject using the Epetra_Export object. More... | |
const Epetra_BlockMap & | Map () const |
Returns the address of the Epetra_BlockMap for this multi-vector. | |
const Epetra_Comm & | Comm () const |
Returns the address of the Epetra_Comm for this multi-vector. | |
bool | DistributedGlobal () const |
Returns true if this multi-vector is distributed global, i.e., not local replicated. | |
Public Member Functions inherited from Epetra_Object | |
Epetra_Object (int TracebackModeIn=-1, bool set_label=true) | |
Epetra_Object Constructor. More... | |
Epetra_Object (const char *const Label, int TracebackModeIn=-1) | |
Epetra_Object Constructor. More... | |
Epetra_Object (const Epetra_Object &Object) | |
Epetra_Object Copy Constructor. More... | |
virtual | ~Epetra_Object () |
Epetra_Object Destructor. More... | |
virtual int | ReportError (const std::string Message, int ErrorCode) const |
Error reporting method. | |
virtual void | SetLabel (const char *const Label) |
Epetra_Object Label definition using char *. More... | |
virtual const char * | Label () const |
Epetra_Object Label access funtion. More... | |
Public Member Functions inherited from Epetra_SrcDistObject | |
virtual | ~Epetra_SrcDistObject () |
Epetra_SrcDistObject destructor. | |
Friends | |
class | Epetra_FECrsMatrix |
Additional Inherited Members | |
Static Public Member Functions inherited from Epetra_Object | |
static void | SetTracebackMode (int TracebackModeValue) |
Set the value of the Epetra_Object error traceback report mode. More... | |
static int | GetTracebackMode () |
Get the value of the Epetra_Object error report mode. | |
static std::ostream & | GetTracebackStream () |
Get the output stream for error reporting. | |
Static Public Attributes inherited from Epetra_Object | |
static int | TracebackMode |
Protected Member Functions inherited from Epetra_CrsGraph | |
int * | All_Indices () const |
int * | IndexOffset () const |
int * | NumIndicesPerRow () const |
int * | NumAllocatedIndicesPerRow () const |
int ** | Indices () const |
int * | Indices (int LocalRow) const |
template<typename int_type > | |
int_type ** | TIndices () const |
template<typename int_type > | |
int_type * | TIndices (int LocalRow) const |
bool | IndicesAreContiguous () const |
bool | StaticProfile () const |
bool | GlobalConstantsComputed () const |
bool | FindGlobalIndexLoc (int LocalRow, int Index, int Start, int &Loc) const |
bool | FindGlobalIndexLoc (int NumIndices, const int *Indices, int Index, int Start, int &Loc) const |
bool | FindGlobalIndexLoc (int LocalRow, long long Index, int Start, int &Loc) const |
bool | FindGlobalIndexLoc (int NumIndices, const long long *Indices, long long Index, int Start, int &Loc) const |
bool | FindMyIndexLoc (int LocalRow, int Index, int Start, int &Loc) const |
bool | FindMyIndexLoc (int NumIndices, const int *Indices, int Index, int Start, int &Loc) const |
int | InsertIndices (int Row, int NumIndices, int *Indices) |
int | InsertIndicesIntoSorted (int Row, int NumIndices, int *Indices) |
int | InsertIndices (int Row, int NumIndices, long long *Indices) |
int | InsertIndicesIntoSorted (int Row, int NumIndices, long long *Indices) |
int | MakeIndicesLocal (const Epetra_BlockMap &DomainMap, const Epetra_BlockMap &RangeMap) |
void | SetIndicesAreLocal (bool Flag) |
void | SetIndicesAreGlobal (bool Flag) |
void | SetSorted (bool Flag) |
int | SortIndices () |
Sort column indices, row-by-row, in ascending order. More... | |
bool | Sorted () const |
If SortIndices() has been called, this query returns true, otherwise it returns false. | |
int | RemoveRedundantIndices () |
Removes any redundant column indices in the rows of the graph. More... | |
int | DetermineTriangular () |
bool | NoRedundancies () const |
If RemoveRedundantIndices() has been called, this query returns true, otherwise it returns false. | |
Protected Member Functions inherited from Epetra_DistObject | |
virtual int | DoTransfer (const Epetra_SrcDistObject &A, Epetra_CombineMode CombineMode, int NumSameIDs, int NumPermuteIDs, int NumRemoteIDs, int NumExportIDs, int *PermuteToLIDs, int *PermuteFromLIDs, int *RemoteLIDs, int *ExportLIDs, int &LenExports, char *&Exports, int &LenImports, char *&Imports, Epetra_Distributor &Distor, bool DoReverse, const Epetra_OffsetIndex *Indexor) |
Perform actual transfer (redistribution) of data across memory images, using Epetra_Distributor object. | |
Protected Member Functions inherited from Epetra_Object | |
std::string | toString (const int &x) const |
std::string | toString (const long long &x) const |
std::string | toString (const double &x) const |
Protected Attributes inherited from Epetra_DistObject | |
Epetra_BlockMap | Map_ |
const Epetra_Comm * | Comm_ |
char * | Exports_ |
char * | Imports_ |
int | LenExports_ |
int | LenImports_ |
int * | Sizes_ |
Epetra Finite-Element CrsGraph. This class provides the ability to insert indices into a matrix-graph, where the indices represent dense submatrices such as element-stiffnesses that might arise from a finite-element application.
In a parallel setting, indices may be submitted on the local processor for rows that do not reside in the local portion of the row-map. After all indices have been submitted, the GlobalAssemble method gathers all non-local graph rows to the appropriate 'owning' processors (an owning processor is a processor which has the row in its row-map).
Epetra_FECrsGraph::Epetra_FECrsGraph | ( | Epetra_DataAccess | CV, |
const Epetra_BlockMap & | RowMap, | ||
int * | NumIndicesPerRow, | ||
bool | ignoreNonLocalEntries = false , |
||
bool | buildNonlocalGraph = false |
||
) |
Constructor
Epetra_FECrsGraph::Epetra_FECrsGraph | ( | Epetra_DataAccess | CV, |
const Epetra_BlockMap & | RowMap, | ||
int | NumIndicesPerRow, | ||
bool | ignoreNonLocalEntries = false , |
||
bool | buildNonlocalGraph = false |
||
) |
Constructor
Epetra_FECrsGraph::Epetra_FECrsGraph | ( | Epetra_DataAccess | CV, |
const Epetra_BlockMap & | RowMap, | ||
const Epetra_BlockMap & | ColMap, | ||
int * | NumIndicesPerRow, | ||
bool | ignoreNonLocalEntries = false , |
||
bool | buildNonlocalGraph = false |
||
) |
Constructor
Epetra_FECrsGraph::Epetra_FECrsGraph | ( | Epetra_DataAccess | CV, |
const Epetra_BlockMap & | RowMap, | ||
const Epetra_BlockMap & | ColMap, | ||
int | NumIndicesPerRow, | ||
bool | ignoreNonLocalEntries = false , |
||
bool | buildNonlocalGraph = false |
||
) |
Constructor
|
virtual |
Constructor Destructor
int Epetra_FECrsGraph::GlobalAssemble | ( | bool | callFillComplete = true | ) |
Gather any overlapping/shared data into the non-overlapping partitioning defined by the Map that was passed to this matrix at construction time. Data imported from other processors is stored on the owning processor with a "sumInto" or accumulate operation. This is a collective method – every processor must enter it before any will complete it.
NOTE***: When GlobalAssemble() calls FillComplete(), it passes the arguments 'DomainMap()' and 'RangeMap()', which are the map attributes held by the base-class CrsMatrix and its graph. If a rectangular matrix is being assembled, the domain-map and range-map must be specified by calling the other overloading of this method. Otherwise, GlobalAssemble() has no way of knowing what these maps should really be.
callFillComplete | option argument, defaults to true. Determines whether GlobalAssemble() internally calls the FillComplete() method on this matrix. |
int Epetra_FECrsGraph::GlobalAssemble | ( | const Epetra_Map & | domain_map, |
const Epetra_Map & | range_map, | ||
bool | callFillComplete = true |
||
) |
Gather any overlapping/shared data into the non-overlapping partitioning defined by the Map that was passed to this matrix at construction time. Data imported from other processors is stored on the owning processor with a "sumInto" or accumulate operation. This is a collective method – every processor must enter it before any will complete it.
NOTE***: When GlobalAssemble() (the other overloading of this method) calls FillComplete(), it passes the arguments 'DomainMap()' and 'RangeMap()', which are the map attributes already held by the base-class CrsMatrix and its graph. If a rectangular matrix is being assembled, the domain-map and range-map must be specified. Otherwise, GlobalAssemble() has no way of knowing what these maps should really be.
domain_map | user-supplied domain map for this matrix |
range_map | user-supplied range map for this matrix |
callFillComplete | option argument, defaults to true. Determines whether GlobalAssemble() internally calls the FillComplete() method on this matrix. |
int Epetra_FECrsGraph::InsertGlobalIndices | ( | int | numRows, |
const int * | rows, | ||
int | numCols, | ||
const int * | cols | ||
) |
Insert a rectangular, dense 'submatrix' of entries (matrix nonzero positions) into the graph.
numRows | Number of rows in the submatrix. |
rows | List of row-numbers for the submatrix. |
numCols | Number of columns in the submatrix. |
cols | List of column-indices that will be used for each row in the 'rows' list. |