[petsc-users] PCFIELDSPLIT with MATSBAIJ

Carl-Johan Thore carljohanthore at gmail.com
Sat Aug 26 08:09:11 CDT 2023


Hi,

I'm trying to use PCFIELDSPLIT with MATSBAIJ in PETSc 3.19.4. According to
the manual
"[t]he fieldsplit preconditioner cannot currently be used with the MATBAIJ
or MATSBAIJ data
formats if the blocksize is larger than 1". Since my blocksize is exactly 1
it would seem that I can
use PCFIELDSPLIT. But this fails with "PETSC ERROR: For symmetric format,
iscol must equal isrow"
from MatCreateSubMatrix_MPISBAIJ. Tracing backwards one ends up in
fieldsplit.c at

/* extract the A01 and A10 matrices */
ilink = jac->head;
PetscCall(ISComplement(ilink->is_col, rstart, rend, &ccis));
if (jac->offdiag_use_amat) {
PetscCall(MatCreateSubMatrix(pc->mat, ilink->is, ccis, MAT_INITIAL_MATRIX,
&jac->B));
} else {
        PetscCall(MatCreateSubMatrix(pc->pmat, ilink->is, ccis,
MAT_INITIAL_MATRIX, &jac->B));
}

This, since my A01 and A10 are not square, seems to explain why iscol is
not equal to isrow.
>From this I gather that it is in general NOT possible to use PCFIELDSPLIT
with MATSBAIJ even
with block size 1?

Kind regards,
Carl-Johan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20230826/626d3b4f/attachment.html>


More information about the petsc-users mailing list