<div class="gmail_quote">On Fri, Mar 9, 2012 at 10:24, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div id=":12e">   Please modify MatGetSchurComplement() to forward the L and Lp. I think is should be automatic.<br></div></blockquote><div><br></div><div>How should we attach L and Lp to the matrix? Note that there could be many Lp matrices that we would like to attach because there are many pairs of index sets that we could use when defining the Schur complement. Even for 2x2 systems like mixed elasticity, how do I distinguish between the Lp that arises when I eliminate displacements versus when I eliminate pressure?</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":12e">
<div class="im"><br>
> This is better because there are multiple ways to take a Schur complement, thus "L" cannot be defined without knowing the index sets.<br>
><br>
> Additionally, the original matrix does not currently retain ownership, so the user can't actually attach anything to the Schur complement without implementing MatGetSchurComplement() themselves.<br>
><br>
> Worse yet, MatGetSchurComplement() is probably going to call MatGetSubMatrix() with exactly the same arguments as the outer PCFieldSplit, because both of them will need the submatrices.<br>
<br>
</div>  Yes, this is why we cannot use MatGetSchurComplement() inside the PCFIELDSPLIT<br>
<br>
   So we are stuck with having PCFIELDSPLIT forward the and L and Lp from the outer matrix. Will you add this?</div></blockquote></div><br>