[Dune] Problem in implementing parallel linear solver
markus at dr-blatt.de
Thu Dec 7 17:00:43 CET 2017
On Thu, Dec 07, 2017 at 02:49:13PM +0100, Kumar, Paras wrote:
> >>Here, are a few observations which might give some clues about the error
> >>make, but I'm not sure.
> >>1. As can be seen in the output file, A is tridiagonal where as the
> >>distributed are not always symmetric.
> >Please check where the unsymmetry happens. This should only happen
> >rows whose index is not marked as owner.
> >using OwnerSet = DuneCommunication::OwnerSet;
> >using GlobalLookup = DuneCommunication::GlobalLookupIndexSet;
> >GlobalLookup global(DuneComm.indexSet());
> >auto pair = global.pair(index);
> >if(!pair || OwnerSet::contains(pair.local().attribute())
> > cerr<<"Houston we have a problem at index "<<index<<" which is
> > owned.
> Could you please explain how do we get the variable index. It seems to be
> the local index (probably wrt *comm_redist in my example code). Also, do I
> need to do this check for all dofs in an iterative manner.
Well if you have an iterator r over matrix rows, then you should use
r.index() as index. You can also use the index of a column interator.
Only check the indices of rows, cols that exhibit unsymmetries.
Dr. Markus Blatt - HPC-Simulation-Software & Services http://www.dr-blatt.de
Hans-Bunte-Str. 8-10, 69123 Heidelberg, Germany
Tel.: +49 (0) 160 97590858
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 819 bytes
Desc: Digital signature
More information about the Dune