FEI Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
fei::Graph_Impl Class Reference

#include <fei_Graph_Impl.hpp>

Inheritance diagram for fei::Graph_Impl:
Inheritance graph
[legend]

Public Member Functions

 Graph_Impl (MPI_Comm comm, int firstLocalRow, int lastLocalRow)
 
virtual ~Graph_Impl ()
 
int addIndices (int row, int len, const int *indices)
 
int addSymmetricIndices (int numIndices, int *indices, bool diagonal=false)
 
int gatherFromOverlap ()
 
table_typegetLocalGraph ()
 
std::vector< remote_table_type * > & getRemoteGraph ()
 
int writeLocalGraph (FEI_OSTREAM &os, bool debug=false, bool prefixLinesWithPoundSign=true)
 
int writeRemoteGraph (FEI_OSTREAM &os)
 
int getNumLocalRows ()
 
int getNumLocalNonzeros () const
 
int getLocalRowLength (int row)
 
- Public Member Functions inherited from fei::Graph
virtual ~Graph ()
 

Private Member Functions

void addDiagonals (int numIndices, int *indices)
 

Private Attributes

table_typelocalGraphData_
 
std::vector< remote_table_type * > remoteGraphData_
 
fei::SharedPtr< fei::EqnCommeqnComm_
 
int firstLocalRow_
 
int lastLocalRow_
 
int localProc_
 
int numProcs_
 
MPI_Comm comm_
 

Additional Inherited Members

- Public Types inherited from fei::Graph
typedef snl_fei::RaggedTable
< snl_fei::MapContig
< fei::ctg_set< int >
* >, fei::ctg_set< int > > 
table_type
 
typedef fei::ctg_set< int > table_row_type
 
typedef snl_fei::RaggedTable
< std::map< int, fei::ctg_set
< int > * >, fei::ctg_set< int > > 
remote_table_type
 

Detailed Description

Basic algebraic matrix-graph representation.

Definition at line 21 of file fei_Graph_Impl.hpp.

Constructor & Destructor Documentation

fei::Graph_Impl::Graph_Impl ( MPI_Comm  comm,
int  firstLocalRow,
int  lastLocalRow 
)
fei::Graph_Impl::~Graph_Impl ( )
virtual

destructor

Definition at line 45 of file fei_Graph_Impl.cpp.

Member Function Documentation

int fei::Graph_Impl::addIndices ( int  row,
int  len,
const int *  indices 
)
virtual

Add indices to a specified row of the table

Implements fei::Graph.

Definition at line 54 of file fei_Graph_Impl.cpp.

int fei::Graph_Impl::addSymmetricIndices ( int  numIndices,
int *  indices,
bool  diagonal = false 
)
virtual
  Add a symmetric block of indices. The array of indices will serve as

both row-numbers, and as column-numbers in those rows.

Implements fei::Graph.

Definition at line 70 of file fei_Graph_Impl.cpp.

int fei::Graph_Impl::gatherFromOverlap ( )
virtual

gather all remotely-owned table portions to owning processors

Implements fei::Graph.

Definition at line 191 of file fei_Graph_Impl.cpp.

References fei::mirrorProcs(), and fei::packRaggedTable().

table_type* fei::Graph_Impl::getLocalGraph ( )
inlinevirtual

Retrieve the local portion of the graph. i.e., The rows which correspond to locally-owned IDs.

Implements fei::Graph.

Definition at line 46 of file fei_Graph_Impl.hpp.

References localGraphData_.

Referenced by fei::Reducer::assembleReducedGraph().

std::vector<remote_table_type*>& fei::Graph_Impl::getRemoteGraph ( )
inlinevirtual

Retrieve the remotely-owned portion of the graph.

Implements fei::Graph.

Definition at line 52 of file fei_Graph_Impl.hpp.

References remoteGraphData_.

int fei::Graph_Impl::writeLocalGraph ( FEI_OSTREAM os,
bool  debug = false,
bool  prefixLinesWithPoundSign = true 
)
virtual

Write locally-owned portion of the graph to a specified ostream.

Implements fei::Graph.

Definition at line 152 of file fei_Graph_Impl.cpp.

References FEI_ENDL, and fei::writeToStream().

int fei::Graph_Impl::writeRemoteGraph ( FEI_OSTREAM os)
virtual

Write remotely-owned portion of the graph to a specified ostream.

Implements fei::Graph.

Definition at line 181 of file fei_Graph_Impl.cpp.

References fei::writeToStream().

int fei::Graph_Impl::getNumLocalRows ( )

Get the number of locally-owned rows.

Definition at line 303 of file fei_Graph_Impl.cpp.

int fei::Graph_Impl::getNumLocalNonzeros ( ) const

Get the number of nonzeros in the locally-owned portion of the graph.

Definition at line 311 of file fei_Graph_Impl.cpp.

References fei::countNonzeros().

int fei::Graph_Impl::getLocalRowLength ( int  row)

Get the length of a specified locally-owned row.

Definition at line 292 of file fei_Graph_Impl.cpp.

References fei::ctg_set< T >::size().

void fei::Graph_Impl::addDiagonals ( int  numIndices,
int *  indices 
)
private

Definition at line 114 of file fei_Graph_Impl.cpp.

Member Data Documentation

table_type* fei::Graph_Impl::localGraphData_
private

Definition at line 78 of file fei_Graph_Impl.hpp.

Referenced by getLocalGraph(), and Graph_Impl().

std::vector<remote_table_type*> fei::Graph_Impl::remoteGraphData_
private

Definition at line 79 of file fei_Graph_Impl.hpp.

Referenced by getRemoteGraph(), and Graph_Impl().

fei::SharedPtr<fei::EqnComm> fei::Graph_Impl::eqnComm_
private

Definition at line 80 of file fei_Graph_Impl.hpp.

Referenced by Graph_Impl().

int fei::Graph_Impl::firstLocalRow_
private

Definition at line 82 of file fei_Graph_Impl.hpp.

Referenced by Graph_Impl().

int fei::Graph_Impl::lastLocalRow_
private

Definition at line 82 of file fei_Graph_Impl.hpp.

Referenced by Graph_Impl().

int fei::Graph_Impl::localProc_
private

Definition at line 83 of file fei_Graph_Impl.hpp.

Referenced by Graph_Impl().

int fei::Graph_Impl::numProcs_
private

Definition at line 83 of file fei_Graph_Impl.hpp.

Referenced by Graph_Impl().

MPI_Comm fei::Graph_Impl::comm_
private

Definition at line 84 of file fei_Graph_Impl.hpp.

Referenced by Graph_Impl().


The documentation for this class was generated from the following files: