1 #ifndef DUNE_AMG_GRAPHCREATOR_HH
2 #define DUNE_AMG_GRAPHCREATOR_HH
9 #include<dune/common/tuples.hh>
15 template<
class M,
int cat=M::category>
23 typedef typename M::matrix_type
Matrix;
33 typedef Dune::tuple<MatrixGraph*,PropertiesGraph*>
GraphTuple;
35 template<
class OF,
class T>
47 delete get<1>(graphs);
55 typedef typename M::matrix_type
Matrix;
66 typedef Dune::tuple<MatrixGraph*,PropertiesGraph*,SubGraph*>
GraphTuple;
68 template<
class OF,
class T,
class PI>
70 PI& pinfo,
const OF& of)
72 typedef OF OverlapFlags;
74 typedef typename PI::ParallelIndexSet ParallelIndexSet;
75 typedef typename ParallelIndexSet::const_iterator IndexIterator;
76 IndexIterator iend = pinfo.indexSet().
end();
78 for(IndexIterator
index = pinfo.indexSet().begin();
index != iend; ++
index)
79 excluded[
index->local()] = of.contains(
index->local().attribute());
88 delete get<2>(graphs);
89 delete get<1>(graphs);
96 typedef typename M::matrix_type
Matrix;
107 typedef Dune::tuple<MatrixGraph*,PropertiesGraph*,SubGraph*>
GraphTuple;
109 template<
class OF,
class T,
class PI>
111 PI& pinfo,
const OF& of)
113 typedef OF OverlapFlags;
115 typedef typename PI::ParallelIndexSet ParallelIndexSet;
116 typedef typename ParallelIndexSet::const_iterator IndexIterator;
117 IndexIterator iend = pinfo.indexSet().
end();
119 for(IndexIterator
index = pinfo.indexSet().begin();
index != iend; ++
index)
120 excluded[
index->local()] = of.contains(
index->local().attribute());
129 delete get<2>(graphs);
130 delete get<1>(graphs);