[petsc-users] Interpreting ksp_view

Aldo Bonfiglioli aldo.bonfiglioli at unibas.it
Thu Jun 30 08:17:59 CDT 2011


Dear all,
I have a doubt concerning the interpretation of the output from -vec_view.
I am using ILU(k) on a BAIJ matrix; the run is uni-processor.
> KSP Object:
>   type: gmres
>     GMRES: restart=30, using Classical (unmodified) Gram-Schmidt 
> Orthogonalization with no iterative refinement
>     GMRES: happy breakdown tolerance 1e-30
>   maximum iterations=10000, initial guess is zero
>   tolerances:  relative=1e-05, absolute=1e-50, divergence=1e+10
>   left preconditioning
>   using PRECONDITIONED norm type for convergence test
> PC Object:
>   type: ilu
>     ILU: out-of-place factorization
>     ILU: Reusing fill from past factorization
>     ILU: Reusing reordering from past factorization
>     1 level of fill
>     tolerance for zero pivot 1e-12
>     using diagonal shift to prevent zero pivot
>     matrix ordering: natural
>     factor fill ratio given 1.30284, needed 1.30284
>       Factored matrix follows:
>         Matrix Object:
>           type=seqbaij, rows=52995, cols=52995
>           package used to perform factorization: petsc
>           total: nonzeros=2398825, allocated nonzeros=95953
>               block size is 5
> [0] PetscCommDuplicate():   returning tag 1073741814
>   linear system matrix = precond matrix:
>   Matrix Object:
>     type=seqbaij, rows=52995, cols=52995
>     total: nonzeros=1841225, allocated nonzeros=73649
>         block size is 5
I have set the fill ratio and this is aknowledged.
I do NOT understand why the nof allocated nonzeros does NOT match
the nonzeros; this applies to both the A matrix and its ILU(k) 
preconditioner
the ratio allocated nonzeros/nonzeros = 25 = blocksize^2 in both cases.
Is there a bs*bs factor missing or am I misinterpreting the output?
If a look at the MatInfo structure of the preconditioner
> info =            1   25.000000000000000
>  info =            2   95953.000000000000
>  info =            3   2398825.0000000000
>  info =            4  -2302872.0000000000
>  info =            5   19576580.000000000
>  info =            6   0.0000000000000000
>  info =            7   0.0000000000000000
>  info =            8   1.3028418580021452
>  info =            9   1.3028418580021452
>  info =           10   0.0000000000000000
a negative number of nz_unneeded seems to indicate that not enough 
memory has been provided.
on the other hand, the -info option seems to confirm that the linear 
system matrix had been correctly pre-allocated
> [0] MatAssemblyEnd_SeqBAIJ(): Matrix size: 52995 X 52995, block size 
> 5; storage space: 0 unneeded, 1841225 used
> [0] MatAssemblyEnd_SeqBAIJ(): Number of mallocs during MatSetValues is 0
Thanks,
Aldo




More information about the petsc-users mailing list