<div dir="ltr"><div dir="ltr">On Wed, Dec 4, 2019 at 8:38 AM Cotter, Colin J <<a href="mailto:colin.cotter@imperial.ac.uk">colin.cotter@imperial.ac.uk</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
>The action of the Schur complement is always MatMult() KSPSolve() MatMult().<br>
</div>
<div>
<div dir="ltr">
<div>
<div><br>
</div>
<div>OK, so when pc_fieldsplit_schur_precondition is set to full, what actually happens?</div>
</div>
</div>
</div>
</div>
</blockquote></div><br clear="all"><div>It computes the operator explicitly:</div><div><br></div><div> <a href="https://gitlab.com/petsc/petsc/blob/master/src/ksp/ksp/utils/schurm/schurm.c#L491">https://gitlab.com/petsc/petsc/blob/master/src/ksp/ksp/utils/schurm/schurm.c#L491</a></div><div><br></div><div>Usually you use LU, which means making B dense, then doing MatMatSolve(), and then MatMatMult() for sparse.</div><div><br></div><div> Thanks,</div><div><br></div><div> Matt</div><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>