[petsc-users] PCApplySymmetricRight for PCBJACOBI

Abylay Zhumekenov ablay94z at gmail.com
Wed Sep 21 18:31:37 CDT 2022


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20220922/10a1170d/attachment.html>


More information about the petsc-users mailing list