37 #ifndef MULTIREGIONS_SUBSTRUCTUREDGRAPH_H
38 #define MULTIREGIONS_SUBSTRUCTUREDGRAPH_H
47 #include <boost/config.hpp>
48 #include <boost/graph/adjacency_list.hpp>
49 #include <boost/graph/cuthill_mckee_ordering.hpp>
50 #include <boost/graph/properties.hpp>
51 #include <boost/graph/bandwidth.hpp>
55 namespace MultiRegions
57 class BottomUpSubStructuredGraph;
59 class MultiLevelBisectedGraph;
62 typedef boost::shared_ptr<BottomUpSubStructuredGraph>
64 typedef boost::shared_ptr<SubGraph>
66 typedef boost::shared_ptr<MultiLevelBisectedGraph>
68 typedef boost::shared_ptr<PatchMap>
81 const unsigned int bndPatch,
94 inline Array<OneD, const unsigned int>
IsBndDof()
const
99 inline Array<OneD, const NekDouble>
GetSign()
const
116 const int nVerts,
const int idOffset = 0) :
157 const Array<OneD, const int> sepTree);
160 const int nPartition);
169 std::vector<SubGraphSharedPtr>& leaves)
const;
190 const Array<OneD, const int> septree,
191 const int nPartition);
201 Array<OneD, int>& perm,
202 Array<OneD, int>& iperm)
const;
205 const Array<OneD, const int>& wgts);
208 const int leveltomask,
209 Array<OneD, NekDouble>& maskarray)
const;
212 const int whichlevel)
const;
215 const int whichlevel,
216 Array<OneD, unsigned int> &outarray)
const;
219 const int whichlevel,
220 const int patch = 0)
const;
226 const int whichlevel)
const;
251 typedef boost::adjacency_list<
252 boost::setS, boost::vecS, boost::undirectedS> BoostGraph;
256 const BoostGraph& graph,
257 Array<OneD, int>& perm,
258 Array<OneD, int>& iperm);
261 const BoostGraph &graph,
262 Array<OneD, int> &perm,
263 Array<OneD, int> &iperm,
265 std::set<int> partVerts = std::set<int>(),
279 Array<OneD, int>& perm,
280 Array<OneD, int>& iperm);
284 #endif // MULTIREGIONS_SUBSTRUCTUREDGRAPH_H