Jed, Matt, or I are responsible for what are likely lies in the field split
naming terminology
We have
const char *const PCFieldSplitSchurPreTypes[] =
{"SELF","DIAG","USER","PCFieldSplitSchurPreType","PC_FIELDSPLIT_SCHUR_PRE_",0};
Diag here actually means the A11 matrix, correct?
case PC_FIELDSPLIT_SCHUR_PRE_DIAG:
ierr = PetscViewerASCIIPrintf(viewer," Preconditioner for the Schur
complement formed from the block diagonal part of A11\n");CHKERRQ(ierr);break;
case PC_FIELDSPLIT_SCHUR_PRE_USER:
if (jac->schur_user) {
block diagonal part of A11 actually means A11, correct? Otherwise what
blocks????
Once I get confirmation that these are phrased wrong I will update the
source to be less confusing. Otherwise please example what diagonal means and
how it is used here.
Thanks
Barry