[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