[dune-pdelab] [Dune-Bugs][#1549] Bug in the parellel version of preconditioners (Attachment added)

Dune flyspray at dune-project.org
Tue Dec 30 17:44:30 CET 2014


THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.

A new Flyspray task has been opened.  Details are below. 

User who did this - Nagaiah (nagaiah) 

Attached to Project - Dune
Summary - Bug in the parellel version of preconditioners
Task Type - Bug Report
Category - PDELab
Status - New
Assigned To - 
Operating System - Linux
Severity - High
Priority - High
Reported Version - Git (pre2.4) [cmake]
Due in Version - Undecided
Due Date - Undecided
Details - There is a strange bug sitting in the parallel version of nonoverlapping solvers (specifically in preconditioners) in Dune-PDELab. Please find the simple test case (attached).
Here I am trying to solve the following problem.

-nabla . (a nabla u) + u = f(x).

Corresponding local operators are implemented in test_parallel.hh file.
Here "a" is a tensor (a.t.m constant over the elements for simplicity).

The problem triggers while solving the above system using 
ISTLBackend_NOVLP_BCGS_Jacobi solver (CG solver does not compile with recent GIT version. Error at line 458. it should supposed to be PPre ppre(gfs,A);
instead of PPre ppre(gfs,istl::raw(A)); Please some one change it in GIT
version ).

The program produces correct solution using 1 processor (see the solution at test_seq.png).
On more processors this produces wrong solution at the processor boundaries (see the solution on 2 processors at test_par_2procs.png). I observed that this is due to the bug at
datahandle call in the preconditioner. 
I tried with different preconditioners, but they also have same the problem.
With no preconditioner this program produces solution as expected in parallel( ISTLBackend_NOVLP_BCGS_NOPREC).

One obeservation: If I remove the tensor "a" in the assembly, then 
this test case produces correct result as well. 

Even keeping tensor but offdiagonal values set to zero also produces
correct result. (for this change, set fulltensor = false;
at line 90 in test.cc file).

I failed to understand the relation between the tensor values and
the prallel preconditioners.
I tried to look more in the parallel preconditioners, but I failed 
to understand the complete code.


The same problem implementation works charmly on older version of PDELab 1.1.0.

This program tested using latest GIT version of all core modules and pdelab. Also the problem remains with dune-2.3.1 and pdelab-2.0.
Operating system: Opensuse 12.3.
gcc-4.7 and MPICH-3.1.3












One or more files have been attached.

More information can be found at the following URL:
https://dune-project.org/flyspray/index.php?do=details&task_id=1549

You are receiving this message because you have requested it from the Flyspray bugtracking system.  If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above.




More information about the dune-pdelab mailing list