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

Thomas Witkowski Thomas.Witkowski at tu-dresden.de
Thu Dec 8 08:11:35 CST 2011

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: 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: ./ch2 on a arch-linu named p1q024 by witkowsk Thu Dec  
  8 13:39:46 2011
[15]PETSC ERROR: Libraries linked from  
[15]PETSC ERROR: Configure run at Fri Dec  2 14:45:50 2011
[15]PETSC ERROR: Configure options  
--download-blacs --download-parmetis --download-scalapack  
k --with-blas-lapack-dir=/work/licsoft/libraries/mkl/9.1.023/lib/em64t  
--with-c++-support --download-mumps --download-superlu  
[15]PETSC ERROR: MatILUFactorSymbolic_SeqAIJ_ilu0() line 1636 in  
[15]PETSC ERROR: MatILUFactorSymbolic_SeqAIJ() line 1740 in  
[15]PETSC ERROR: MatILUFactorSymbolic() line 6092 in  
[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  
[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