<div dir="ltr"><div><div>Thanks, Jed.<br><br></div>It seems that MatCreateLRC requires two dense matrices for U and V according to the page <br><a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatCreateLRC.html">http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatCreateLRC.html</a><br><br></div><div>Not sure if it is applicable to sparse matrices.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2018-01-26 12:09 GMT-08:00 Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">saturday luis <<a href="mailto:luis.saturday@gmail.com">luis.saturday@gmail.com</a>> writes:<br>
<br>
> Hi PETSc team:<br>
><br>
> I want to consult for a good way of doing an approximated Schur complement<br>
> matrix. So I just want to handle a matrix in the format C + B^t B, or<br>
> sometimes B^t B.<br>
><br>
> An easy way is to run with the MatCreateSchurComplement to create C + B^t<br>
> inv A B, wherein A is an identity matrix. The downside is that the matrix<br>
> free style does not allow for algebraic preconditioners.<br>
<br>
</span>MatCreateLRC is more natural in this context.<br>
<br>
Even if you solve with LSQR, you'll likely need some explicit<br>
representation for preconditioning.<br>
</blockquote></div><br></div>