3 #ifndef DUNE_AMGTRANSFER_HH
4 #define DUNE_AMGTRANSFER_HH
11 #include<dune/common/exceptions.hh>
28 template<
class V1,
class V2,
class T>
36 template<
typename T1,
typename R>
38 Vector& fineRedist,T1 damp, R& redistributor=R());
40 template<
typename T1,
typename R>
48 template<
class V,
class V1>
57 Vector& fineRedist, T1 damp,
72 template<
class V,
class V1,
class T1,
class T2>
93 template<
class V,
class V1>
104 template<
class V,
class V1>
112 typedef typename Vector::iterator Iterator;
114 Iterator end = coarse.end();
115 Iterator begin= coarse.begin();
116 for(;begin!=end;++begin)
121 for(Iterator block=begin; block != end; ++block){
122 std::ptrdiff_t
index=block-begin;
125 *block += coarse[aggregates[
index]];
129 template<
class V,
class V1>
139 typedef typename Vector::const_iterator Iterator;
140 Iterator end = fine.end();
141 Iterator begin=fine.begin();
143 for(Iterator block=begin; block != end; ++block){
144 const Vertex& vertex = aggregates[block-begin];
146 coarse[vertex] += *block;
151 template<
class V,
class V1,
class T1,
class T2>
152 template<
typename T3>
155 Vector& fineRedist, T3 damp,
159 if(fineRedist.size()>0)
168 template<
class V,
class V1,
class T1,
class T2>
169 template<
typename T3>
177 template<
class V,
class V1,
class T1,
class T2>