<div dir="ltr"><div class="gmail_extra"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div dir="ltr"><div>The -sub_pc_factor_zeropivot <value> option works, but since this is for a commercial code I don't want users to have to type that every time.</div><div><br></div><div>Is there an equivalent call to</div><div>PCFactorSetZeroPivot()</div><div>for the block Jacobi method (like PCSubFactorSetZeroPivot())?  I can't find it.  </div><div><br></div><div>Instead, does one need to call</div><div>PCBjacobiGetSubKSP()</div><div>and then loop over every block, calling</div><div>KSPGetPC()</div><div>PCFactorSetZeroPivot()</div><div>on each block?  That seems a little tedious, but if that is the correct approach I'll do it.</div><div><br></div><div>Thanks,</div><div>Matt Overholt</div></div></div></div></div>
<br><div class="gmail_quote">On Mon, Jul 9, 2018 at 10:17 AM, Matthew Overholt <span dir="ltr"><<a href="mailto:overholt@capesim.com" target="_blank">overholt@capesim.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks, Matt, that option works perfectly, and explains the -ksp_view output.<div><br></div><div>Much appreciated!<br>   Matt...</div><span class=""><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jul 6, 2018 at 6:25 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span><div>Default Case (zeropivot is 2.22045E-14):</div><div>mpiexec -n 1 ...</div><div>==> ksp fails due to pcReason = PC_FACTOR_NUMERIC_ZEROPIVOT</div><div><br></div><div>Reduced pivot case, n = 1:</div><div>mpiexec -n 1 ... -pc_factor_zeropivot 1E-15</div><div>==> runs successfully</div></span><div><span>

<div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br class="m_-8969249301600058603m_7300660826538109168m_-1527266603639551379gmail-Apple-interchange-newline">Reduced pivot case, n > 1:</div></span><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">mpiexec -n 2 .. -pc_factor_zeropivot 1E-15</div><span><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">==> <span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span> </span>ksp fails due to pcReason = PC_SUBPC_ERROR</span></div></span></div></div></blockquote><div><br></div><div>Okay, what is likely happening is that your preconditioner is actually Block-Jacobi/LU</div><div>instead of parallel LU. Thus you would need</div><div><br></div><div>  -sub_pc_factor_zeropivot 1e-15</div><div><br></div></div></div></blockquote></div></div></span></div>
</blockquote></div><br></div></div>