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.
>

Reply via email to