3 #ifndef DUNE_AMGTRANSFER_HH 4 #define DUNE_AMGTRANSFER_HH 11 #include <dune/common/exceptions.hh> 12 #include <dune/common/unused.hh> 29 template<
class V1,
class V2,
class T>
37 template<
typename T1,
typename R>
39 Vector& fineRedist,T1 damp, R& redistributor=R());
41 template<
typename T1,
typename R>
49 template<
class V,
class V1>
58 Vector& fineRedist, T1 damp,
60 const Redist& redist=Redist());
73 template<
class V,
class V1,
class T1,
class T2>
83 const Redist& redist);
94 template<
class V,
class V1>
98 Vector& coarse, Vector& fine, Vector& fineRedist,
101 const Redist& redist)
103 DUNE_UNUSED_PARAMETER(fineRedist);
104 DUNE_UNUSED_PARAMETER(comm);
105 DUNE_UNUSED_PARAMETER(redist);
108 template<
class V,
class V1>
112 Vector& coarse, Vector& fine,
116 DUNE_UNUSED_PARAMETER(comm);
117 typedef typename Vector::iterator Iterator;
119 Iterator end = coarse.end();
120 Iterator begin= coarse.begin();
121 for(; begin!=end; ++begin)
126 for(Iterator block=begin; block != end; ++block) {
127 std::ptrdiff_t index=block-begin;
128 const Vertex& vertex = aggregates[index];
130 *block += coarse[aggregates[index]];
134 template<
class V,
class V1>
141 DUNE_UNUSED_PARAMETER(comm);
145 typedef typename Vector::const_iterator Iterator;
146 Iterator end = fine.end();
147 Iterator begin=fine.begin();
149 for(Iterator block=begin; block != end; ++block) {
150 const Vertex& vertex = aggregates[block-begin];
152 coarse[vertex] += *block;
157 template<
class V,
class V1,
class T1,
class T2>
158 template<
typename T3>
160 Vector& coarse, Vector& fine,
161 Vector& fineRedist, T3 damp,
163 const Redist& redist)
165 if(fineRedist.size()>0)
174 template<
class V,
class V1,
class T1,
class T2>
175 template<
typename T3>
177 Vector& coarse, Vector& fine,
181 DUNE_UNUSED_PARAMETER(comm);
184 template<
class V,
class V1,
class T1,
class T2>
186 Vector& coarse,
const Vector& fine,
Functionality for redistributing a sparse matrix.
static void restrictVector(const AggregatesMap< Vertex > &aggregates, Vector &coarse, const Vector &fine, T &comm)
Definition: allocator.hh:7
RedistributeInformation< OwnerOverlapCopyCommunication< T1, T2 > > Redist
Definition: transfer.hh:79
void copyOwnerToAll(const T &source, T &dest) const
Communicate values from owner data points to all other data points.
Definition: owneroverlapcopy.hh:315
void project(T1 &x) const
Set vector to zero at copy dofs.
Definition: owneroverlapcopy.hh:539
This file implements a vector space as a tensor product of a given vector space. The number of compon...
V Vertex
Definition: transfer.hh:53
V2 Vector
Definition: transfer.hh:35
V1 Vector
Definition: transfer.hh:78
Definition: transfer.hh:30
static void prolongateVector(const AggregatesMap< Vertex > &aggregates, Vector &coarse, Vector &fine, Vector &fineRedist, T1 damp, R &redistributor=R())
void redistributeBackward(D &from, const D &to) const
Definition: matrixredistribute.hh:34
A class setting up standard communication for a two-valued attribute set with owner/overlap/copy sema...
Definition: owneroverlapcopy.hh:171
V Vertex
Definition: transfer.hh:77
Classes providing communication interfaces for overlapping Schwarz methods.
V1 Vector
Definition: transfer.hh:54
Provides classes for the Coloring process of AMG.
Definition: matrixredistribute.hh:20
RedistributeInformation< SequentialInformation > Redist
Definition: transfer.hh:55
V1 Vertex
Definition: transfer.hh:34