Epetra Package Browser (Single Doxygen Collection) Development
Public Member Functions | Private Member Functions | Private Attributes | Friends
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, bool buildNonlocalGraph=false)
 Constructor.
 Epetra_FECrsGraph (Epetra_DataAccess CV, const Epetra_BlockMap &RowMap, int NumIndicesPerRow, bool ignoreNonLocalEntries=false, bool buildNonlocalGraph=false)
 Constructor.
 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_DataAccess CV, const Epetra_BlockMap &RowMap, const Epetra_BlockMap &ColMap, int NumIndicesPerRow, bool ignoreNonLocalEntries=false, bool buildNonlocalGraph=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.
bool UseNonlocalGraph () const

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_
std::map< int,
Epetra_CrsGraphData::EntriesInOneRow
nonlocalRowData_
 This STL map holds all non-local data in format of Entries in the individual rows together with the row number.
Epetra_CrsGraphnonlocalGraph_
 A CrsGraph holding non-local data in case the respective flag is set in the constructor.
bool buildNonlocalGraph_

Friends

class Epetra_FECrsMatrix

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 64 of file Epetra_FECrsGraph.h.


Constructor & Destructor Documentation

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

Constructor.

Definition at line 58 of file Epetra_FECrsGraph.cpp.

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

Constructor.

Definition at line 73 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,
bool  buildNonlocalGraph = false 
)

Constructor.

Definition at line 90 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,
bool  buildNonlocalGraph = false 
)

Constructor.

Definition at line 108 of file Epetra_FECrsGraph.cpp.

Epetra_FECrsGraph::Epetra_FECrsGraph ( const Epetra_FECrsGraph Graph)

Constructor.

Epetra_FECrsGraph::~Epetra_FECrsGraph ( ) [virtual]

Destructor.

Definition at line 126 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:
numRowsNumber of rows in the submatrix.
rowsList of row-numbers for the submatrix.
numColsNumber of columns in the submatrix.
colsList of column-indices that will be used for each row in the 'rows' list.

Definition at line 141 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:
callFillCompleteoption 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 168 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_mapuser-supplied domain map for this matrix
range_mapuser-supplied range map for this matrix
callFillCompleteoption 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 176 of file Epetra_FECrsGraph.cpp.

bool Epetra_FECrsGraph::UseNonlocalGraph ( ) const [inline]

Definition at line 173 of file Epetra_FECrsGraph.h.

void Epetra_FECrsGraph::DeleteMemory ( ) [private]

Definition at line 132 of file Epetra_FECrsGraph.cpp.

int Epetra_FECrsGraph::InsertNonlocalRow ( int  row,
int  offset 
) [private]
int Epetra_FECrsGraph::InputNonlocalIndices ( int  row,
int  numCols,
const int *  cols 
) [private]
int Epetra_FECrsGraph::InputNonlocalIndex ( int  rowoffset,
int  col 
) [private]
Epetra_FECrsGraph& Epetra_FECrsGraph::operator= ( const Epetra_FECrsGraph Graph) [private]

Friends And Related Function Documentation

friend class Epetra_FECrsMatrix [friend]

Reimplemented from Epetra_CrsGraph.

Definition at line 65 of file Epetra_FECrsGraph.h.


Member Data Documentation

Definition at line 184 of file Epetra_FECrsGraph.h.

Definition at line 185 of file Epetra_FECrsGraph.h.

Definition at line 186 of file Epetra_FECrsGraph.h.

This STL map holds all non-local data in format of Entries in the individual rows together with the row number.

Definition at line 192 of file Epetra_FECrsGraph.h.

A CrsGraph holding non-local data in case the respective flag is set in the constructor.

Definition at line 198 of file Epetra_FECrsGraph.h.

Definition at line 199 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