[petsc-users] Column #j is wrong in parallel from message "Inserting a new nonzero (i, j) into matrix"
Barry Smith
bsmith at mcs.anl.gov
Thu Mar 26 20:52:59 CDT 2015
Eric,
I have now updated all the standard MPI matrix types AIJ, BAIJ, SBAIJ to print the correct global indices in the error messages when a new nonzero location is generated thus making debugging this issue easier. In the branches barry/fix-inserting-new-nonzero-column-location, next and the next release.
Thanks for pushing on this. The previous code was too "developer centric" and not enough "user centric" enough.
Barry
> On Mar 25, 2015, at 1:03 PM, Eric Chamberland <Eric.Chamberland at giref.ulaval.ca> wrote:
>
> Hi,
>
> while looking for where in the world do I insert the (135,9) entry in my matrix, I have discovered that the column # shown is wrong in parallel!
>
> I am using PETsc 3.5.3.
>
> The full error message is:
>
> [0]PETSC ERROR: MatSetValues_MPIAIJ() line 564 in /home/mefpp_ericc/petsc-3.5.3/src/mat/impls/aij/mpi/mpiaij.c Inserting a new nonzero (135, 9) into matrix
>
> This line code is a call to a #defined macro:
>
> MatSetValues_SeqAIJ_B_Private(row,col,value,addv);
>
> where the "col" parameter is not equal to "in[j]"!!!
>
> in gdb, printing "in[j]" gave me:
>
> print in[j]
> $6 = 537
>
> while "col" is:
>
> print col
> $7 = 9
>
> So, I expected to have a message telling me that (135,537) and not (135,9) is a new entry matrix!!!
>
> Would it be a big work to fix this so that the col # displayed is correct?
>
> Thanks!
>
> Eric
More information about the petsc-users
mailing list