<div dir="ltr">I have fixed this by setting the KSP op:<div><br></div><div><div> call PCFieldSplitGetSubKSP(spc,i,subksp,ierr) </div><div> call KSPSetOperators(subksp(2),solver%schur,solver%schur,ierr)</div>
</div><div><br></div><div>Thanks,</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Aug 19, 2014 at 8:17 AM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">Mark Adams <<a href="mailto:mfadams@lbl.gov">mfadams@lbl.gov</a>> writes:<br>
<br>
> I am creating an Schur complement matrix explicitly (solver%schur) and<br>
> setting it with code like:<br>
><br>
> call SNESGetKSP(solver%snes,innerksp,ierr)<br>
> call KSPGetPC(innerksp,spc,ierr)<br>
> call<br>
> PCFieldSplitSetSchurPre(spc,PC_FIELDSPLIT_SCHUR_PRE_USER,solver%schur,ierr)<br>
><br>
> I would think that the "inner" solver would not be used but it is getting<br>
> used.<br>
<br>
</div>[...]<br>
<br>
> PC Object:(fsa_) 4 MPI processes<br>
> type: fieldsplit<br>
> FieldSplit with Schur preconditioner, factorization FULL<br>
> Preconditioner for the Schur complement formed from A11<br>
<br>
I would set a breakpoint at PCFieldSplitSetSchurPre_FieldSplit and then<br>
watch -l jac->schurpre since it appears that your information is being<br>
lost somewhere.<br>
</blockquote></div><br></div>