<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Qin:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
PCFactorReorderForNonzeroDiagonal()</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hong</div>
<div id="appendonsend"></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> petsc-users <petsc-users-bounces@mcs.anl.gov> on behalf of Qin Lu via petsc-users <petsc-users@mcs.anl.gov><br>
<b>Sent:</b> Thursday, July 9, 2020 10:05 AM<br>
<b>To:</b> Mark Adams <mfadams@lbl.gov>; Barry Smith <bsmith@petsc.dev>; nathaniel.collier@gmail.com <nathaniel.collier@gmail.com><br>
<b>Cc:</b> PETSc Users List <petsc-users@mcs.anl.gov><br>
<b>Subject:</b> Re: [petsc-users] Zero diagonal term for direct solver</font>
<div> </div>
</div>
<div>
<div class="x_ydpd123507yahoo-style-wrap" style="font-family:Helvetica Neue,Helvetica,Arial,sans-serif; font-size:13px">
<div></div>
<div dir="ltr">Thanks for all your input!</div>
<div dir="ltr"><br>
</div>
<div dir="ltr">How can I set these options in the program instead of as runtime options (in the .petsc file)? For example, which subroutine shall I call to set '<span style="color:rgb(38,40,42)">-pc_factor_nonzeros_along_diagonal", and what is corresponding
 argument value?</span></div>
<div dir="ltr"><span style="color:rgb(38,40,42)"><br>
</span></div>
<div dir="ltr"><span style="color:rgb(38,40,42)">Thanks,</span></div>
<div dir="ltr"><span style="color:rgb(38,40,42)">Qin</span></div>
<div><br>
</div>
<div><br>
</div>
</div>
<div id="x_ydp23091541yahoo_quoted_5010808152" class="x_ydp23091541yahoo_quoted">
<div style="font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:13px; color:#26282a">
<div>On Wednesday, July 8, 2020, 02:15:11 PM CDT, Barry Smith <bsmith@petsc.dev> wrote:
</div>
<div><br>
</div>
<div><br>
</div>
<div>
<div id="x_ydp23091541yiv0981914330">
<div>
<div class="x_ydp23091541yiv0981914330"><br clear="none" class="x_ydp23091541yiv0981914330">
</div>
  There is also -pc_factor_nonzeros_along_diagonal which reorders to move the zeros off the diagonal before the numerical factorization
<div class="x_ydp23091541yiv0981914330"><br clear="none" class="x_ydp23091541yiv0981914330">
</div>
<div class="x_ydp23091541yiv0981914330">  But if having 0 leads to a factorization without error then it will produce the correct answer (this means that zero got filled in during the factorization)<br clear="none" class="x_ydp23091541yiv0981914330">
<div class="x_ydp23091541yiv0981914330yqt6069125025" id="x_ydp23091541yiv0981914330yqt04274">
<div><br clear="none" class="x_ydp23091541yiv0981914330">
<blockquote class="x_ydp23091541yiv0981914330" type="cite">
<div class="x_ydp23091541yiv0981914330">On Jul 8, 2020, at 2:11 PM, Mark Adams <<a shape="rect" class="x_ydp23091541yiv0981914330" href="mailto:mfadams@lbl.gov" rel="nofollow" target="_blank">mfadams@lbl.gov</a>> wrote:</div>
<br clear="none" class="x_ydp23091541yiv0981914330Apple-interchange-newline">
<div class="x_ydp23091541yiv0981914330">
<div class="x_ydp23091541yiv0981914330" dir="ltr">
<div class="x_ydp23091541yiv0981914330" dir="ltr"><br clear="none" class="x_ydp23091541yiv0981914330">
</div>
<br clear="none" class="x_ydp23091541yiv0981914330">
<div class="x_ydp23091541yiv0981914330gmail_quote">
<div class="x_ydp23091541yiv0981914330gmail_attr" dir="ltr">On Wed, Jul 8, 2020 at 2:43 PM Qin Lu via petsc-users <<a shape="rect" class="x_ydp23091541yiv0981914330" href="mailto:petsc-users@mcs.anl.gov" rel="nofollow" target="_blank">petsc-users@mcs.anl.gov</a>>
 wrote:<br clear="none" class="x_ydp23091541yiv0981914330">
</div>
<blockquote class="x_ydp23091541yiv0981914330gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<div class="x_ydp23091541yiv0981914330">
<div class="x_ydp23091541yiv0981914330" style="font-family:Helvetica,Arial,sans-serif; font-size:13px">
<div class="x_ydp23091541yiv0981914330" dir="ltr">Hello,</div>
<div class="x_ydp23091541yiv0981914330" dir="ltr"><br clear="none" class="x_ydp23091541yiv0981914330">
</div>
<div class="x_ydp23091541yiv0981914330" dir="ltr">I am using the Petsc native direct solver
<font class="x_ydp23091541yiv0981914330" face="Helvetica, Arial, sans-serif">(with KSPPREONLY and PCLU) to solver a small Linear equation system. The matrix has a couple of diagonal terms with value 0, which makes the solver fail. Then I set a very small value
 (e.g., 1e-10) at these terms and the solver works. Can this cause noticeable errors in the solution?
</font></div>
</div>
</div>
</blockquote>
<div class="x_ydp23091541yiv0981914330"><br clear="none" class="x_ydp23091541yiv0981914330">
</div>
<div class="x_ydp23091541yiv0981914330">Can't say.</div>
<div class="x_ydp23091541yiv0981914330"> </div>
<blockquote class="x_ydp23091541yiv0981914330gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<div class="x_ydp23091541yiv0981914330">
<div class="x_ydp23091541yiv0981914330" style="font-family:Helvetica,Arial,sans-serif; font-size:13px">
<div class="x_ydp23091541yiv0981914330" dir="ltr"><font class="x_ydp23091541yiv0981914330" face="Helvetica, Arial, sans-serif">Are there any options in Petsc to make the direct solver do row/column pivoting so that all the diagonal terms are non-zero?</font></div>
</div>
</div>
</blockquote>
<div class="x_ydp23091541yiv0981914330"><br clear="none" class="x_ydp23091541yiv0981914330">
</div>
<div class="x_ydp23091541yiv0981914330">I see:</div>
<br clear="none" class="x_ydp23091541yiv0981914330">
<br clear="none" class="x_ydp23091541yiv0981914330">
-pc_factor_pivot_in_blocks <true,false>- allow pivoting within the small blocks during factorization (may increase stability of factorization.<br clear="none" class="x_ydp23091541yiv0981914330">
<br clear="none" class="x_ydp23091541yiv0981914330">
and<br clear="none" class="x_ydp23091541yiv0981914330">
<br clear="none" class="x_ydp23091541yiv0981914330">
<br clear="none" class="x_ydp23091541yiv0981914330">
-pc_factor_shift_type <shifttype>- Sets shift type or PETSC_DECIDE for the default; use '-help' for a list of available types<br clear="none" class="x_ydp23091541yiv0981914330">
-pc_factor_shift_amount <shiftamount>- Sets shift amount or PETSC_DECIDE for the default<br clear="none" class="x_ydp23091541yiv0981914330">
<br clear="none" class="x_ydp23091541yiv0981914330">
 
<blockquote class="x_ydp23091541yiv0981914330gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<div class="x_ydp23091541yiv0981914330">
<div class="x_ydp23091541yiv0981914330" style="font-family:Helvetica,Arial,sans-serif; font-size:13px">
<div class="x_ydp23091541yiv0981914330" dir="ltr"><font class="x_ydp23091541yiv0981914330" face="Helvetica, Arial, sans-serif"><br clear="none" class="x_ydp23091541yiv0981914330">
</font></div>
<div class="x_ydp23091541yiv0981914330" dir="ltr"><font class="x_ydp23091541yiv0981914330" face="Helvetica, Arial, sans-serif">Thanks for any suggestions.</font></div>
<div class="x_ydp23091541yiv0981914330" dir="ltr"><font class="x_ydp23091541yiv0981914330" face="Helvetica, Arial, sans-serif"><br clear="none" class="x_ydp23091541yiv0981914330">
</font></div>
<div class="x_ydp23091541yiv0981914330" dir="ltr"><font class="x_ydp23091541yiv0981914330" face="Helvetica, Arial, sans-serif">Regards,</font></div>
<div class="x_ydp23091541yiv0981914330" dir="ltr"><font class="x_ydp23091541yiv0981914330" face="Helvetica, Arial, sans-serif">Qin</font></div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<br clear="none" class="x_ydp23091541yiv0981914330">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>