<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 10, 2022 at 7:43 AM Tang, Qi <<a href="mailto:tangqi@msu.edu" target="_blank">tangqi@msu.edu</a>> wrote:<br></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="auto">
<div dir="ltr">We use superlu_dist.
<div><br>
</div>
<div>We have a 2 x 2 block where directly calling suplerlu_dist fails, but a pc based on a fieldsplit Schur complement + superlu_dist on the assembled Schur complement matrix converges. (All the converge criteria are default at this level)</div>
<div><br>
</div>
<div>I am having a hard time to understand what is going on. The B,V block is of size 240K, so it is also hard to analyze. And the mat is not something we explicitly formed. It is formed by finite difference coloring Jacobian + a few levels of Schur complement. </div>
<div><br>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">
<div class="gmail_quote">
<div>  / A 0 \</div>
<div>  \ 0  I /</div>
</div>
</div>
</div>
</blockquote>
<div>Matt, I do not see this can explain why the second pc with superlu on S = A would succeed, if A is not full rank.</div>
<div><br>
</div>
<div>I believe I found somewhere it says petsc’s pclu (or maybe superlu_dist) did reordering and it may introduce 0 pivoting. We are asking because it seems there is something we do not understand from pclu/superlu level. </div></div></div></div></blockquote><div><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">If the matrix is non-singular, and you use the RowPerm default option: LargeDiag_MC64, then you won't have zero pivot (in a structural sense), unless numerical cancellation causes the diagonal element underflow, then flush to zero.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">You can try to set ReplaceTinyPivot:</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><dt style="box-sizing:border-box;font-weight:700;color:rgb(51,51,51);font-family:-apple-system,"system-ui","Segoe UI","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:15px">-mat_superlu_dist_replacetinypivot</dt><dd style="box-sizing:border-box;margin-top:3px;margin-bottom:10px;margin-left:30px;color:rgb(51,51,51);font-family:-apple-system,"system-ui","Segoe UI","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:15px"><p style="box-sizing:border-box;margin-top:0px;margin-bottom:1.15rem;font-size:1em">replace tiny pivots</p></dd></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">See my reply in another email.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">Sherry</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></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="auto"><div dir="ltr"><div>
<div><br>
</div>
<div>Anyway, is there a way to output the mat before it fails? We have been struggling to do that. We have TSSolve->SNES->FDColoringJacobian->A few levels of fieldsplit->failed Subblock matrix, which we want to analyze. (Sometimes it even happens in the second
 Newton iteration as the first one works okay.)</div>
<div><br>
</div>
<div>Qi</div>
<div><br>
</div>
<br>
<div dir="ltr">
<blockquote type="cite"><br>
On Jun 10, 2022, at 8:11 AM, Matthew Knepley <<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>> wrote:<br>
<br>
</blockquote>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">On Thu, Jun 9, 2022 at 5:20 PM Jorti, Zakariae via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</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 id="m_3428852279473969594gmail-m_6760371707415515389gmail-m_-7341573076379456468divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<p></p>
<div>Hi, <br>
<br>
I am solving non-linear problem that has 5 unknowns {ni, T, E, B, V}, and for the preconditioning part, I am using a FieldSplit preconditioner. At the last fieldsplit/level, we are left with a {B,V} block that tried to precondition in 2 different ways:
<br>
a) SuperLU: <br>
-fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_ksp_type preonly -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_pc_type lu -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_pc_factor_mat_solver_type superlu_dist  <br>
b) a Schur-based fieldsplit preconditioner that uses SuperLU for both V and B blocks:<br>
-fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_ksp_type gmres -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_pc_type fieldsplit -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_pc_fieldsplit_type schur -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_pc_fieldsplit_schur_precondition
 selfp -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_fieldsplit_B_ksp_type preonly -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_fieldsplit_B_pc_type lu -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_fieldsplit_B_pc_factor_mat_solver_type superlu_dist -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_fieldsplit_V_ksp_type
 preonly -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_fieldsplit_V_pc_type lu -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_fieldsplit_V_pc_factor_mat_solver_type superlu_dist<br>
<br>
Option a) yields the following error: <br>
"     Linear fieldsplit_ni_ solve converged due to CONVERGED_ATOL iterations 0<br>
        Linear fieldsplit_TEBV_fieldsplit_tau_ solve converged due to CONVERGED_RTOL iterations 1<br>
          Linear fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_EP_ solve converged due to CONVERGED_RTOL iterations 5<br>
          Linear fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_ solve did not converge due to DIVERGED_PC_FAILED iterations 0<br>
                         PC failed due to FACTOR_NUMERIC_ZEROPIVOT " <br>
whereas options b) seems to be working well. <br>
Is it possible that the SuperLU on the {V,B} block uses a reordering that introduces a zero pivot or could there be another explanation for this error?</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>I can at least come up with a case where this is true. Suppose you have</div>
<div><br>
</div>
<div>  / A 0 \</div>
<div>  \ 0  I /</div>
<div><br>
</div>
<div>where A is rank deficient, but has a positive diagonal. SuperLU will fail since it is actually singular. However, your Schur complement might work since you use</div>
<div>'selfp' for the Schur preconditioner, and it just extracts the diagonal.</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 id="m_3428852279473969594gmail-m_6760371707415515389gmail-m_-7341573076379456468divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
Many thanks. <br>
Best,<br>
<br>
Zakariae <br>
<p></p>
</div>
</div>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr">
<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="https://urldefense.com/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!HXCxUKc!3sg7TZfA3Z8m6foZ2wvm-LDZ6jI9C-kp1FVdsCbdXrDj--rBHyrWkz0akiZApgTAMNYce0yg5uta7w$" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>

</blockquote></div></div>