FEI
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
base
fei_GraphReducer.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_GraphReducer_hpp_
10
#define _fei_GraphReducer_hpp_
11
12
#include <fei_iosfwd.hpp>
13
#include <fei_SharedPtr.hpp>
14
#include <fei_Graph.hpp>
15
#include <fei_CommUtils.hpp>
16
#include <fei_Reducer.hpp>
17
#include <snl_fei_RaggedTable_specialize.hpp>
18
19
namespace
fei
{
20
22
class
GraphReducer
:
public
fei::Graph
{
23
public
:
25
GraphReducer
(
fei::SharedPtr<fei::Reducer>
reducer,
26
fei::SharedPtr<fei::Graph>
target);
27
29
virtual
~GraphReducer
();
30
32
int
addIndices
(
int
row,
33
int
len,
34
const
int
* indices);
35
39
int
addSymmetricIndices
(
int
numIndices,
40
int
* indices,
41
bool
diagonal=
false
);
42
44
int
gatherFromOverlap
();
45
48
table_type
*
getLocalGraph
()
49
{
50
return
( target_->getLocalGraph());
51
}
52
54
std::vector<remote_table_type*>&
getRemoteGraph
()
55
{
56
return
( target_->getRemoteGraph());
57
}
58
60
int
writeLocalGraph
(FEI_OSTREAM& os,
61
bool
debug=
false
,
62
bool
prefixLinesWithPoundSign=
true
);
63
65
int
writeRemoteGraph
(FEI_OSTREAM& os);
66
67
private
:
68
fei::SharedPtr<fei::Reducer>
reducer_;
69
fei::SharedPtr<fei::Graph>
target_;
70
};
//class GraphReducer
71
72
}
//namespace fei
73
74
#endif
// _fei_GraphReducer_hpp_
75
fei::GraphReducer::addIndices
int addIndices(int row, int len, const int *indices)
Definition
fei_GraphReducer.cpp:33
fei::GraphReducer::addSymmetricIndices
int addSymmetricIndices(int numIndices, int *indices, bool diagonal=false)
Definition
fei_GraphReducer.cpp:40
fei::GraphReducer::GraphReducer
GraphReducer(fei::SharedPtr< fei::Reducer > reducer, fei::SharedPtr< fei::Graph > target)
Definition
fei_GraphReducer.cpp:20
fei::GraphReducer::~GraphReducer
virtual ~GraphReducer()
Definition
fei_GraphReducer.cpp:28
fei::GraphReducer::writeLocalGraph
int writeLocalGraph(FEI_OSTREAM &os, bool debug=false, bool prefixLinesWithPoundSign=true)
Definition
fei_GraphReducer.cpp:48
fei::GraphReducer::writeRemoteGraph
int writeRemoteGraph(FEI_OSTREAM &os)
Definition
fei_GraphReducer.cpp:55
fei::GraphReducer::getLocalGraph
table_type * getLocalGraph()
Definition
fei_GraphReducer.hpp:48
fei::GraphReducer::gatherFromOverlap
int gatherFromOverlap()
Definition
fei_GraphReducer.cpp:61
fei::GraphReducer::getRemoteGraph
std::vector< remote_table_type * > & getRemoteGraph()
Definition
fei_GraphReducer.hpp:54
fei::Graph
Definition
fei_Graph.hpp:20
fei::Graph::table_type
snl_fei::RaggedTable< snl_fei::MapContig< fei::ctg_set< int > * >, fei::ctg_set< int > > table_type
Definition
fei_Graph.hpp:28
fei::SharedPtr
Definition
fei_SharedPtr.hpp:65
fei
Definition
fei_ArrayUtils.hpp:16
Generated by
1.17.0