[petsc-users] ILU, ASM, GMRES and memory

francois pacull fpacull at fluorem.com
Fri Feb 18 09:22:09 CST 2011


Dear PETSc team,

I am using a gmres solver along with an additive Schwarz preconditioner 
and an ILU factorization within the sub-domains: ksp GMRES + pc ASM + 
subksp PREONLY + subpc ILU (MAT_SOLVER_PETSC). Also, I am using a 
preconditioner matrix Pmat that is different from the linear system 
operator matrix Amat.

So, from my understanding, just after the end of the ILU factorization 
(for example, just after a call to PCSetUp(subpc) and before a call to 
KSPSolve(ksp,...)), the rank i process holds in the memory:
1 - the local rows of Amat (ksp&pc's linear system matrix)
2 - the local rows of Pmat (ksp&pc's precond matrix)
3 - the sub-domain preconditioner operator, P[i], which is the local 
diagonal block of Pmat augmented with the overlap (subksp&subpc's 
matrix, linear system matrix = precond matrix)
4 - the incomplete factorization of P[i] (subpc's ILU matrix)

Is it correct?
If it is, how can I destroy parts 2 and 3, Pmat and the P[i]'s, in order 
to save some memory space for the Arnoldi vectors?
When Pmat is destroyed with MatDestroy, its corresponding memory space 
seems to be actually freed only when the ksp is destroyed?
 From what I remember, PCFactorSetUseInPlace will destroy the P[i]'s, 
but under the constraints that there is no fill-in and the natural 
matrix ordering is used?

Thanks for your help,
francois.




More information about the petsc-users mailing list