Skip to content
Snippets Groups Projects
Commit 2b8dd855 authored by Markus Blatt's avatar Markus Blatt
Browse files

AMG seems to work in parallel now! (Tested on my laptop with up to 4

processes). More testing tomorrow.

For the coarse solver the right hand side has to be consitent
everywhere. Fixed the code to do this.

[[Imported from SVN: r548]]
parent fe04838c
No related branches found
No related tags found
No related merge requests found
......@@ -273,11 +273,11 @@ namespace Dune
if(matrix == matrices_->matrices().coarsest()) {
// Solve directly
InverseOperatorResult res;
pinfo->copyOwnerToAll(*rhs, *rhs);
solver_->apply(*lhs, *rhs, res);
if(!res.converged)
DUNE_THROW(MathError, "Coarse solver did not converge");
}else{
// presmoothing
for(std::size_t i=0; i < steps_; ++i) {
smoother->apply(*lhs, *rhs);
......@@ -316,10 +316,11 @@ namespace Dune
--level;
//prolongate and add the correction (update is in coarse left hand side)
--matrix;
--pinfo;
typename Hierarchy<Domain,A>::Iterator coarseLhs = lhs--;
--pinfo;
Transfer<typename MatrixHierarchy::AggregatesMap::AggregateDescriptor,Range,ParallelInformation>
::prolongate(*(*aggregates), *coarseLhs, *lhs, 1.6);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment