<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Sep 8, 2017 at 7:10 AM, Guido Giuntoli <span dir="ltr"><<a href="mailto:giuntoli1991@gmail.com" target="_blank">giuntoli1991@gmail.com</a>></span> wrote:<br><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><div><div>Hi I want to solve a problem with a matrix of this kind<br></div><div><br>      
 K   1<br></div>J =  <br>       1   0 <br><br></div>that represents an elastic problem with Lagrange multipliers, this system is really small so I want to try a direct solver so I put -pc_type lu and it fails, probably because of the 0 diagonal. Is there any way, using petsc, to solve this in direct way ? like doing a shifting of columns or something like that.<br></div></div></blockquote><div><br></div><div>1) You can use SuperLU, which has pivoting.</div><div><br></div><div>2) You can use PCFIELDSPLIT, giving the block split above, with type schur and direct solves on each block.</div><div><br></div><div>3) You can use reordering, <b style="color:rgb(0,0,0);font-family:Times;font-size:medium">-pc_factor_nonzeros_along_diagonal</b></div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><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></div>Thank you, Guido. </div></blockquote></div>-- <br><div class="gmail_signature"><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.caam.rice.edu/~mk51/" target="_blank">http://www.caam.rice.edu/~mk51/</a><br></div></div></div>
</div></div>