FEI  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
fei_Graph.hpp
1 /*--------------------------------------------------------------------*/
2 /* Copyright 2005 Sandia Corporation. */
3 /* Under the terms of Contract DE-AC04-94AL85000, there is a */
4 /* non-exclusive license for use of this work by or on behalf */
5 /* of the U.S. Government. Export of this program may require */
6 /* a license from the United States Government. */
7 /*--------------------------------------------------------------------*/
8 
9 #ifndef _fei_Graph_hpp_
10 #define _fei_Graph_hpp_
11 
12 #include <fei_iosfwd.hpp>
13 #include <snl_fei_RaggedTable_specialize.hpp>
14 
15 #include <map>
16 
17 namespace fei {
18 
20  class Graph {
21  public:
22 
24  virtual ~Graph(){}
25 
29 
32 
36 
38  virtual int addIndices(int row,
39  int len,
40  const int* indices) = 0;
41 
45  virtual int addSymmetricIndices(int numIndices,
46  int* indices,
47  bool diagonal=false) = 0;
48 
50  virtual int gatherFromOverlap() = 0;
51 
54  virtual table_type* getLocalGraph() = 0;
55 
57  virtual std::vector<remote_table_type*>& getRemoteGraph() = 0;
58 
60  virtual int writeLocalGraph(FEI_OSTREAM& os,
61  bool debug=false,
62  bool prefixLinesWithPoundSign=true) = 0;
63 
65  virtual int writeRemoteGraph(FEI_OSTREAM& os) = 0;
66 
67  };//class Graph
68 
69 } //namespace fei
70 
71 #endif // _fei_Graph_hpp_
72 
virtual int writeRemoteGraph(FEI_OSTREAM &os)=0
snl_fei::RaggedTable< snl_fei::MapContig< fei::ctg_set< int > * >, fei::ctg_set< int > > table_type
Definition: fei_Graph.hpp:28
virtual int gatherFromOverlap()=0
virtual table_type * getLocalGraph()=0
virtual int writeLocalGraph(FEI_OSTREAM &os, bool debug=false, bool prefixLinesWithPoundSign=true)=0
snl_fei::RaggedTable< std::map< int, fei::ctg_set< int > * >, fei::ctg_set< int > > remote_table_type
Definition: fei_Graph.hpp:35
virtual int addIndices(int row, int len, const int *indices)=0
virtual std::vector< remote_table_type * > & getRemoteGraph()=0
virtual int addSymmetricIndices(int numIndices, int *indices, bool diagonal=false)=0
fei::ctg_set< int > table_row_type
Definition: fei_Graph.hpp:31
virtual ~Graph()
Definition: fei_Graph.hpp:24