Epetra_FECrsGraph Class Reference

Epetra Finite-Element CrsGraph. More...

#include <Epetra_FECrsGraph.h>

Inheritance diagram for Epetra_FECrsGraph:

[legend]
List of all members.

Public Member Functions

 Epetra_FECrsGraph (Epetra_DataAccess CV, const Epetra_BlockMap &RowMap, int *NumIndicesPerRow, bool ignoreNonLocalEntries=false)
 Constructor.
 Epetra_FECrsGraph (Epetra_DataAccess CV, const Epetra_BlockMap &RowMap, int NumIndicesPerRow, bool ignoreNonLocalEntries=false)
 Constructor.
 Epetra_FECrsGraph (Epetra_DataAccess CV, const Epetra_BlockMap &RowMap, const Epetra_BlockMap &ColMap, int *NumIndicesPerRow, bool ignoreNonLocalEntries=false)
 Constructor.
 Epetra_FECrsGraph (Epetra_DataAccess CV, const Epetra_BlockMap &RowMap, const Epetra_BlockMap &ColMap, int NumIndicesPerRow, bool ignoreNonLocalEntries=false)
 Constructor.
 Epetra_FECrsGraph (const Epetra_FECrsGraph &Graph)
 Constructor.
virtual ~Epetra_FECrsGraph ()
 Destructor.
int InsertGlobalIndices (int numRows, const int *rows, int numCols, const int *cols)
 Insert a rectangular, dense 'submatrix' of entries (matrix nonzero positions) into the graph.
int 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.
int 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.
int InsertGlobalIndices (int GlobalRow, int NumIndices, int *Indices)
 Enter a list of elements in a specified global row of the graph.

Private Member Functions

void DeleteMemory ()
int InsertNonlocalRow (int row, int offset)
int InputNonlocalIndices (int row, int numCols, const int *cols)
int InputNonlocalIndex (int rowoffset, int col)
Epetra_FECrsGraphoperator= (const Epetra_FECrsGraph &Graph)

Private Attributes

int myFirstRow_
int myNumRows_
bool ignoreNonLocalEntries_
int numNonlocalRows_
int * nonlocalRows_
int * nonlocalRowLengths_
int * nonlocalRowAllocLengths_
int ** nonlocalCols_

Detailed Description

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).

Definition at line 49 of file Epetra_FECrsGraph.h.


Constructor & Destructor Documentation

Epetra_FECrsGraph::Epetra_FECrsGraph Epetra_DataAccess  CV,
const Epetra_BlockMap RowMap,
int *  NumIndicesPerRow,
bool  ignoreNonLocalEntries = false
 

Constructor.

Definition at line 45 of file Epetra_FECrsGraph.cpp.

Epetra_FECrsGraph::Epetra_FECrsGraph Epetra_DataAccess  CV,
const Epetra_BlockMap RowMap,
int  NumIndicesPerRow,
bool  ignoreNonLocalEntries = false
 

Constructor.

Definition at line 62 of file Epetra_FECrsGraph.cpp.

Epetra_FECrsGraph::Epetra_FECrsGraph Epetra_DataAccess  CV,
const Epetra_BlockMap RowMap,
const Epetra_BlockMap ColMap,
int *  NumIndicesPerRow,
bool  ignoreNonLocalEntries = false
 

Constructor.

Definition at line 81 of file Epetra_FECrsGraph.cpp.

Epetra_FECrsGraph::Epetra_FECrsGraph Epetra_DataAccess  CV,
const Epetra_BlockMap RowMap,
const Epetra_BlockMap ColMap,
int  NumIndicesPerRow,
bool  ignoreNonLocalEntries = false
 

Constructor.

Definition at line 101 of file Epetra_FECrsGraph.cpp.

Epetra_FECrsGraph::Epetra_FECrsGraph const Epetra_FECrsGraph Graph  ) 
 

Constructor.

Epetra_FECrsGraph::~Epetra_FECrsGraph  )  [virtual]
 

Destructor.

Definition at line 121 of file Epetra_FECrsGraph.cpp.


Member Function Documentation

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.

Parameters:
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.

Definition at line 142 of file Epetra_FECrsGraph.cpp.

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.

Parameters:
callFillComplete option argument, defaults to true. Determines whether GlobalAssemble() internally calls the FillComplete() method on this matrix.
Returns:
error-code 0 if successful, non-zero if some error occurs

Definition at line 250 of file Epetra_FECrsGraph.cpp.

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.

Parameters:
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.
Returns:
error-code 0 if successful, non-zero if some error occurs

Definition at line 358 of file Epetra_FECrsGraph.cpp.

void Epetra_FECrsGraph::DeleteMemory  )  [private]
 

Definition at line 127 of file Epetra_FECrsGraph.cpp.

int Epetra_FECrsGraph::InsertNonlocalRow int  row,
int  offset
[private]
 

Definition at line 166 of file Epetra_FECrsGraph.cpp.

int Epetra_FECrsGraph::InputNonlocalIndices int  row,
int  numCols,
const int *  cols
[private]
 

Definition at line 206 of file Epetra_FECrsGraph.cpp.

int Epetra_FECrsGraph::InputNonlocalIndex int  rowoffset,
int  col
[private]
 

Definition at line 229 of file Epetra_FECrsGraph.cpp.

Epetra_FECrsGraph& Epetra_FECrsGraph::operator= const Epetra_FECrsGraph Graph  )  [private]
 

int Epetra_CrsGraph::InsertGlobalIndices int  GlobalRow,
int  NumIndices,
int *  Indices
 

Enter a list of elements in a specified global row of the graph.

Parameters:
Row - (In) Global row number of indices.
NumIndices - (In) Number of Indices.
Indices - (In) Global column indices to insert.
Returns:
Integer error code, set to 0 if successful. If the insertion requires that additional memory be allocated for the row, a positive error code of 1 is returned. If the graph is a 'View' mode graph, then a positive warning code of 2 will be returned if the specified row already exists. Returns 1 if underlying graph data is shared by multiple graph instances.
Precondition:
IndicesAreGlobal()==true, StorageOptimized()==false


Member Data Documentation

int Epetra_FECrsGraph::myFirstRow_ [private]
 

Definition at line 161 of file Epetra_FECrsGraph.h.

int Epetra_FECrsGraph::myNumRows_ [private]
 

Definition at line 162 of file Epetra_FECrsGraph.h.

bool Epetra_FECrsGraph::ignoreNonLocalEntries_ [private]
 

Definition at line 163 of file Epetra_FECrsGraph.h.

int Epetra_FECrsGraph::numNonlocalRows_ [private]
 

Definition at line 165 of file Epetra_FECrsGraph.h.

int* Epetra_FECrsGraph::nonlocalRows_ [private]
 

Definition at line 166 of file Epetra_FECrsGraph.h.

int* Epetra_FECrsGraph::nonlocalRowLengths_ [private]
 

Definition at line 167 of file Epetra_FECrsGraph.h.

int* Epetra_FECrsGraph::nonlocalRowAllocLengths_ [private]
 

Definition at line 168 of file Epetra_FECrsGraph.h.

int** Epetra_FECrsGraph::nonlocalCols_ [private]
 

Definition at line 169 of file Epetra_FECrsGraph.h.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:38:05 2008 for Epetra Package Browser (Single Doxygen Collection) by doxygen 1.3.9.1