[petsc-users] Problem: matrix is missing diagonal entry

Barry Smith bsmith at mcs.anl.gov
Thu Dec 8 10:03:20 CST 2011


  These lines make it clear the problem is detected on a sequential matrix on process 15. This is why we like the full message.

Barry

[15]PETSC ERROR: MatILUFactorSymbolic_SeqAIJ_ilu0() line 1636 in src/mat/impls/aij/seq/aijfact.c
[15]PETSC ERROR: MatILUFactorSymbolic_SeqAIJ() line 1740 in src/mat/impls/aij/seq/aijfact.c
[15]PETSC ERROR: MatILUFactorSymbolic() line 6092 in src/mat/interface/matrix.c


On Dec 8, 2011, at 8:11 AM, Thomas Witkowski wrote:

> Okay, if the entry number is the local one, than I can check this again. In this case, I think that I know where the problem is: By the way, the error message is as follows:
> 
> [15]PETSC ERROR: Object is in wrong state!
> [15]PETSC ERROR: Matrix is missing diagonal entry 1129!
> [15]PETSC ERROR: ------------------------------------------------------------------------
> [15]PETSC ERROR: Petsc Release Version 3.2.0, Patch 5, Sat Oct 29 13:45:54 CDT 2011
> [15]PETSC ERROR: See docs/changes/index.html for recent updates.
> [15]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
> [15]PETSC ERROR: See docs/index.html for manual pages.
> [15]PETSC ERROR: ------------------------------------------------------------------------
> [15]PETSC ERROR: ./ch2 on a arch-linu named p1q024 by witkowsk Thu Dec  8 13:39:46 2011
> [15]PETSC ERROR: Libraries linked from /fastfs/witkowsk/petsc/install/petsc-3.2-p5-dbg/lib
> [15]PETSC ERROR: Configure run at Fri Dec  2 14:45:50 2011
> [15]PETSC ERROR: Configure options --prefix=/fastfs/witkowsk/petsc/install/petsc-3.2-p5-dbg --download-blacs --download-parmetis --download-scalapack --download-umfpac\
> k --with-blas-lapack-dir=/work/licsoft/libraries/mkl/9.1.023/lib/em64t --with-c++-support --download-mumps --download-superlu --with-clanguage=cxx
> [15]PETSC ERROR: ------------------------------------------------------------------------
> [15]PETSC ERROR: MatILUFactorSymbolic_SeqAIJ_ilu0() line 1636 in src/mat/impls/aij/seq/aijfact.c
> [15]PETSC ERROR: MatILUFactorSymbolic_SeqAIJ() line 1740 in src/mat/impls/aij/seq/aijfact.c
> [15]PETSC ERROR: MatILUFactorSymbolic() line 6092 in src/mat/interface/matrix.c
> [15]PETSC ERROR: PCSetUp_ILU() line 216 in src/ksp/pc/impls/factor/ilu/ilu.c
> [15]PETSC ERROR: PCSetUp() line 819 in src/ksp/pc/interface/precon.c
> [15]PETSC ERROR: KSPSetUp() line 260 in src/ksp/ksp/interface/itfunc.c
> [15]PETSC ERROR: PCSetUpOnBlocks_BJacobi_Multiblock() line 973 in src/ksp/pc/impls/bjacobi/bjacobi.c
> [15]PETSC ERROR: PCSetUpOnBlocks() line 852 in src/ksp/pc/interface/precon.c
> [15]PETSC ERROR: KSPSetUpOnBlocks() line 154 in src/ksp/ksp/interface/itfunc.c
> 
> 
> Zitat von Barry Smith <bsmith at mcs.anl.gov>:
> 
>> 
>>  Thomas,
>> 
>>   As always including the ENTIRE error message makes determining  the issue much easier. It tells us what functions are being called  at this point and the line numbers. Without we would only be  speculating.
>> 
>>   In this case the error message is printed on process of rank 15  at location 1129 ON THAT PROCESS so the you need to determine the  global row of location 1129 on the 15th process.  That row is  missing the diagonal.
>> 
>>   Barry
>> 
>> The reason I know it is the not the global row 1129 but the 1129th  row on process 15 is because the I know the check for diagonal  entries is done in the factorization that is taking place on each  process (each factorization is running at the same time on different  processes). This would be clear with the entire error message.
>> 
>> 
>> On Dec 8, 2011, at 7:49 AM, Thomas Witkowski wrote:
>> 
>>> I've some strange problem: I create a mpiaij matrix, fill it with  some values and want to make use of it in kspsolve. But I get the  error
>>> 
>>> [15]PETSC ERROR: Object is in wrong state!
>>> [15]PETSC ERROR: Matrix is missing diagonal entry 1129!
>>> 
>>> I've checked the following  things:
>>> - There is a MatSetValues call that contains the entry 1129/1129  with some value
>>> - MatView shows that there exists the value 1129/1129
>>> - MatAssemblyBegin/End is called correctly
>>> - valgrind says: 0 errors
>>> - ddt also cannot find anything unusual
>>> 
>>> I use petsc 3.2-p5, its compiled in debug mode. What could I check  to solve this problem? Any hints?
>>> 
>>> Thomas
>> 
>> 
> 
> 



More information about the petsc-users mailing list