5#ifndef DUNE_AMGTRANSFER_HH
6#define DUNE_AMGTRANSFER_HH
13#include <dune/common/exceptions.hh>
30 template<
class V1,
class V2,
class T>
38 template<
typename T1,
typename R>
40 Vector& fineRedist,T1 damp, R& redistributor=R());
42 template<
typename T1,
typename R>
50 template<
class V,
class V1>
59 Vector& fineRedist, T1 damp,
74 template<
class V,
class V1,
class T1,
class T2>
95 template<
class V,
class V1>
100 [[maybe_unused]]
Vector& fineRedist,
103 [[maybe_unused]]
const Redist& redist)
105 prolongateVector(aggregates, coarse, fine, damp);
107 template<
class V,
class V1>
115 typedef typename Vector::iterator Iterator;
117 Iterator end = coarse.end();
118 Iterator begin= coarse.begin();
119 for(; begin!=end; ++begin)
124 for(Iterator block=begin; block != end; ++block) {
125 std::ptrdiff_t index=block-begin;
126 const Vertex& vertex = aggregates[index];
128 *block += coarse[aggregates[index]];
132 template<
class V,
class V1>
142 typedef typename Vector::const_iterator Iterator;
143 Iterator end = fine.
end();
144 Iterator begin=fine.begin();
146 for(Iterator block=begin; block != end; ++block) {
147 const Vertex& vertex = aggregates[block-begin];
149 coarse[vertex] += *block;
154 template<
class V,
class V1,
class T1,
class T2>
155 template<
typename T3>
158 Vector& fineRedist, T3 damp,
162 if(fineRedist.size()>0)
171 template<
class V,
class V1,
class T1,
class T2>
172 template<
typename T3>
180 template<
class V,
class V1,
class T1,
class T2>
Classes providing communication interfaces for overlapping Schwarz methods.
Functionality for redistributing a sparse matrix.
Provides classes for the Coloring process of AMG.
This file implements a vector space as a tensor product of a given vector space. The number of compon...
const_iterator end() const
Definition aggregates.hh:730
Definition allocator.hh:11
Definition matrixredistribute.hh:22
void redistributeBackward(D &from, const D &to) const
Definition matrixredistribute.hh:32
A class setting up standard communication for a two-valued attribute set with owner/overlap/copy sema...
Definition owneroverlapcopy.hh:174
void project(T1 &x) const
Set vector to zero at copy dofs.
Definition owneroverlapcopy.hh:538
void copyOwnerToAll(const T &source, T &dest) const
Communicate values from owner data points to all other data points.
Definition owneroverlapcopy.hh:311
Class providing information about the mapping of the vertices onto aggregates.
Definition aggregates.hh:560
Definition transfer.hh:32
static void restrictVector(const AggregatesMap< Vertex > &aggregates, Vector &coarse, const Vector &fine, T &comm)
static void prolongateVector(const AggregatesMap< Vertex > &aggregates, Vector &coarse, Vector &fine, T1 damp)
static void prolongateVector(const AggregatesMap< Vertex > &aggregates, Vector &coarse, Vector &fine, Vector &fineRedist, T1 damp, R &redistributor=R())
V1 Vertex
Definition transfer.hh:35
V2 Vector
Definition transfer.hh:36
RedistributeInformation< SequentialInformation > Redist
Definition transfer.hh:56
V Vertex
Definition transfer.hh:54
V1 Vector
Definition transfer.hh:55
static void prolongateVector(const AggregatesMap< Vertex > &aggregates, Vector &coarse, Vector &fine, Vector &fineRedist, T1 damp, const SequentialInformation &comm=SequentialInformation(), const Redist &redist=Redist())
static void prolongateVector(const AggregatesMap< Vertex > &aggregates, Vector &coarse, Vector &fine, T1 damp, const SequentialInformation &comm=SequentialInformation())
V Vertex
Definition transfer.hh:78
RedistributeInformation< OwnerOverlapCopyCommunication< T1, T2 > > Redist
Definition transfer.hh:80
V1 Vector
Definition transfer.hh:79