Epetra_FECrsGraph Class Reference

Epetra Finite-Element CrsGraph. More...

#include <Epetra_FECrsGraph.h>

Inheritance diagram for Epetra_FECrsGraph:
Inheritance graph
[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.

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]

Member Data Documentation

Definition at line 161 of file Epetra_FECrsGraph.h.

Definition at line 162 of file Epetra_FECrsGraph.h.

Definition at line 163 of file Epetra_FECrsGraph.h.

Definition at line 165 of file Epetra_FECrsGraph.h.

Definition at line 166 of file Epetra_FECrsGraph.h.

Definition at line 167 of file Epetra_FECrsGraph.h.

Definition at line 168 of file Epetra_FECrsGraph.h.

Definition at line 169 of file Epetra_FECrsGraph.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Wed Apr 13 09:58:45 2011 for Epetra Package Browser (Single Doxygen Collection) by  doxygen 1.6.3