I have fixed this by setting the KSP op:
call PCFieldSplitGetSubKSP(spc,i,subksp,ierr)
call KSPSetOperators(subksp(2),solver%schur,solver%schur,ierr)
Thanks,
On Tue, Aug 19, 2014 at 8:17 AM, Jed Brown <[email protected]> wrote:
> Mark Adams <[email protected]> writes:
>
> > I am creating an Schur complement matrix explicitly (solver%schur) and
> > setting it with code like:
> >
> > call SNESGetKSP(solver%snes,innerksp,ierr)
> > call KSPGetPC(innerksp,spc,ierr)
> > call
> >
> PCFieldSplitSetSchurPre(spc,PC_FIELDSPLIT_SCHUR_PRE_USER,solver%schur,ierr)
> >
> > I would think that the "inner" solver would not be used but it is getting
> > used.
>
> [...]
>
> > PC Object:(fsa_) 4 MPI processes
> > type: fieldsplit
> > FieldSplit with Schur preconditioner, factorization FULL
> > Preconditioner for the Schur complement formed from A11
>
> I would set a breakpoint at PCFieldSplitSetSchurPre_FieldSplit and then
> watch -l jac->schurpre since it appears that your information is being
> lost somewhere.
>