<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Nov 21, 2014 at 11:05 PM, Anush Krishnan <span dir="ltr"><<a href="mailto:k.anush@gmail.com" target="_blank">k.anush@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"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On 21 November 2014 18:23, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span><br>
> On Nov 21, 2014, at 5:09 PM, Anush Krishnan <<a href="mailto:k.anush@gmail.com" target="_blank">k.anush@gmail.com</a>> wrote:<br>
><br>
> Hello petsc-users,<br>
><br>
> I've been running some CFD simulations, and I ran into one case where the system (which is a coupled system for pressure and body forces) did not converge and the reason was KSP_DIVERGED_INDEFINITE_PC. The options I'm using are -pc_gamg_agg_nsmooths 1 -pc_type gamg -pc_gamg_type agg with a conjugate gradient solver.<br>
<br>
</span>   We've heard reports of this happening before. You should increase the number of smoothing steps for the multigrid or change to a "stronger" smoother.<br>
<br>
   What do you get with -ksp_view for exact solver you are using?<br></blockquote><div><br></div></span><div>I've attached a copy of the output with -ksp_view. <br><br></div><span class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
   Are you using PETSc's SNES? TS? Or just KSP?<br></blockquote><div><br></div></span><div>Just KSP. <br> <br></div><span class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span><br>
><br>
> I saw in example ksp/pc/examples/tutorials/ex2.c that I should use the flag -pc_factor_shift_positive_definite to avoid this.<br>
<br>
</span>   This flag is only for factorization based preconditioners not gamg so you should not use it.<br>
<span><br>
> I have a few questions regarding this:<br>
>       • What does it mean that the preconditioner is indefinite?<br>
<br>
</span>    It means that the preconditioner generated by GAMG has both negative and positive eigenvalues. CG cannot handle this, CG  requires the preconditioner have all eigenvalues of the same sign.<br>
<span><br>
> What can cause this to happen? And what does the above flag do?<br>
>       • The error occurs midway through the simulation. Is there any reason why this might be the case? The left-hand side matrix does not change during the simulation.<br>
<br>
</span>    Huh? If the matrix is not changing then the preconditioner should not be changing and hence the preconditioner should not be rebuilt and hence you should not see this message "midway through the simulation". Are you sure that the matrix is not changing??<br></blockquote><div><br></div></span><div>Yes, I'm sure that the matrix is not changing. Only the right hand side vector changes every time step. <br><br>I have heard that CG sometimes converges even if the matrix is not positive definite - do you think that might be happening? Also, is there a way to check if a given matrix is positive definite using PETSc? And is it possible to </div></div></div></div></blockquote><div><br></div><div>That is possible.</div><div><br></div><div>It is much more expensive to verify indefiniteness than to solve the system. I recommend you</div><div>increase the smoothing as Barry suggested.</div><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>generate an indefinite preconditioner from a matrix that is symmetric positive definite (I remember seeing a thread about this recently)?<br> <br></div><span class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
>       • Do both -pc_factor_shift_positive_definite and -pc_factor_shift_type POSITIVE_DEFINITE do the same thing?<br>
<br>
   Yes, they are from different versions of PETSc, but neither are for gamg.<br>
<br>
  Barry<br>
<br>
> Thank you,<br>
><br>
> Anush<br>
><br>
<br>
</blockquote></span></div><br></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">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></div>