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.
virtual ~Epetra_FECrsGraph ()
 Constructor.
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 InsertGlobalIndices (int numRows, const long long *rows, int numCols, const long long *cols)
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)
template<typename int_type >
std::map< int_type,
Epetra_CrsGraphData::EntriesInOneRow
< int_type > > & 
nonlocalRowData ()
Epetra_FECrsGraphoperator= (const Epetra_FECrsGraph &Graph)
template<typename int_type >
int InsertGlobalIndices (int numRows, const int_type *rows, int numCols, const int_type *cols)
template<typename int_type >
int GlobalAssemble (const Epetra_Map &domain_map, const Epetra_Map &range_map, bool callFillComplete)

Private Attributes

long long myFirstRow_
int myNumRows_
bool ignoreNonLocalEntries_
std::map< int,
Epetra_CrsGraphData::EntriesInOneRow
< int > > 
nonlocalRowData_int_
 This STL map holds all non-local data in format of Entries in the individual rows together with the row number.
std::map< long long,
Epetra_CrsGraphData::EntriesInOneRow
< long long > > 
nonlocalRowData_LL_
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 65 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 59 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 74 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 91 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 109 of file Epetra_FECrsGraph.cpp.

Epetra_FECrsGraph::~Epetra_FECrsGraph ( ) [virtual]

Constructor.

Destructor

Definition at line 127 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 169 of file Epetra_FECrsGraph.cpp.

int Epetra_FECrsGraph::InsertGlobalIndices ( int  numRows,
const long long *  rows,
int  numCols,
const long long *  cols 
)

Definition at line 178 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 188 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 197 of file Epetra_FECrsGraph.cpp.

bool Epetra_FECrsGraph::UseNonlocalGraph ( ) const [inline]

Definition at line 181 of file Epetra_FECrsGraph.h.

void Epetra_FECrsGraph::DeleteMemory ( ) [private]

Definition at line 133 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]
std::map< long long, Epetra_CrsGraphData::EntriesInOneRow< long long > > & Epetra_FECrsGraph::nonlocalRowData ( ) [inline, private]

Definition at line 228 of file Epetra_FECrsGraph.h.

Epetra_FECrsGraph& Epetra_FECrsGraph::operator= ( const Epetra_FECrsGraph Graph) [private]
template<typename int_type >
int Epetra_FECrsGraph::InsertGlobalIndices ( int  numRows,
const int_type *  rows,
int  numCols,
const int_type *  cols 
) [private]

Definition at line 143 of file Epetra_FECrsGraph.cpp.

template<typename int_type >
int Epetra_FECrsGraph::GlobalAssemble ( const Epetra_Map domain_map,
const Epetra_Map range_map,
bool  callFillComplete 
) [private]

Friends And Related Function Documentation

friend class Epetra_FECrsMatrix [friend]

Reimplemented from Epetra_CrsGraph.

Definition at line 66 of file Epetra_FECrsGraph.h.


Member Data Documentation

long long Epetra_FECrsGraph::myFirstRow_ [private]

Definition at line 192 of file Epetra_FECrsGraph.h.

Definition at line 193 of file Epetra_FECrsGraph.h.

Definition at line 194 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 201 of file Epetra_FECrsGraph.h.

Definition at line 204 of file Epetra_FECrsGraph.h.

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

Definition at line 214 of file Epetra_FECrsGraph.h.

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