[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