Hello, I have been playing around with a block Jacobi preconditioner (PCJACOBI) with an incomplete Cholesky (PCICC) sub-preconditioner. Although you cannot set KSPSetPCSide to PC_SYMMETRIC for PCBJACOBI, you still can do it for PCICC. I was surprised to find that PCApplySymmetricLeft is properly applied to a vector. However, PCApplySymmetricRight throws an error: ... [0]PETSC ERROR: Object is in wrong state [0]PETSC ERROR: VecPlaceArray() was already called on this vector, without a call to VecResetArray() ... [0]PETSC ERROR: #3 PCApplySymmetricLeft_BJacobi_Singleblock() at /home/abylay/KAUST/Libraries/C/petsc/src/ksp/pc/impls/bjacobi/bjacobi.c:660 [0]PETSC ERROR: #4 PCApplySymmetricLeft() at /home/abylay/KAUST/Libraries/C/petsc/src/ksp/pc/interface/precon.c:532 ... The problem goes away if I add: ... PetscCall(VecResetArray(bjac->x)); PetscCall(VecResetArray(bjac->y)); ... at line 698 in source file bjacobi.c. I don't know if it is a bug, and how I should report it, just wanted let someone know if it is. Thanks.
Abylay Zhumekenov