<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div></div><div><br></div><div><br>On 22 Mar 2017, at 16:39, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div>Hmm, I wonder if the problem is that A11 has the nullspace, but the PC pmat is actually B^T diag(A)^{-1} B. I have</div><div>to look where the solver is actually taking the nullspace from. We need to improve the -ksp_view output to make this</div><div>stuff much easier to see.</div></div></blockquote><br><div>I think the nullspace for S comes from the nullspace you have composed, using PetscObjectCompose, with the IS defining the a11 block:</div><div><br></div><div><a href="https://bitbucket.org/petsc/petsc/src/9914757c790456e4369968b050152728564cdbae/src/ksp/pc/impls/fieldsplit/fieldsplit.c?at=master&fileviewer=file-view-default#fieldsplit.c-587">https://bitbucket.org/petsc/petsc/src/9914757c790456e4369968b050152728564cdbae/src/ksp/pc/impls/fieldsplit/fieldsplit.c?at=master&fileviewer=file-view-default#fieldsplit.c-587</a></div><div><br></div><div>Then, if the pmat has an attached nullspace, that overrides it:</div><div><a href="https://bitbucket.org/petsc/petsc/src/9914757c790456e4369968b050152728564cdbae/src/ksp/pc/impls/fieldsplit/fieldsplit.c?at=master&fileviewer=file-view-default#fieldsplit.c-718">https://bitbucket.org/petsc/petsc/src/9914757c790456e4369968b050152728564cdbae/src/ksp/pc/impls/fieldsplit/fieldsplit.c?at=master&fileviewer=file-view-default#fieldsplit.c-718</a></div><div><br></div><div>But with selfp, you have no control over pmat, so you need to send the nullspace in via the IS.</div><div><br></div><div>Lawrence </div></body></html>