<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Sep 23, 2020, at 6:18 PM, Raju Mandhapati via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" class="">petsc-users@mcs.anl.gov</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hello,<div class=""><br class=""></div><div class="">Before jumping into block AMG, I started testing AMG on the pressure equation.  </div><div class=""><br class=""></div><div class="">I find that for simple systems, both serial and parallel version of AMG worked well. For a difficult system (variable coefficient laplacian operator), serial worked but AMG struggled when using 4 cores. I was using AMG as preconditioner to BiCGSTAB. Regular ILU0 preconditioner worked well both in serial and parallel. I am not sure why AMG struggled.</div><div class=""><br class=""></div><div class="">Are there any tuning parameters for AMG?</div><div class=""><br class=""></div><div class="">Does Petsc have SOR/Gauss Seidel/ILU0 smoother options? Or can I provide my own user smoother?</div></div></div></blockquote><div><br class=""></div>  Run with -ksp_view to see what it is using.</div><div><br class=""></div><div>  Run with -help | grep mg_  and | grep gamg to see the options, there are too many to list here.</div><div><br class=""></div><div>  You can also look at the manual page for PCMG and PCGAMG </div><div><br class=""></div><div>  You can use any preconditioner/Krylov method combination as a smoother including your own (PCCreateShell()).</div><div><br class=""></div><div>  By default the smoother is Chebyshev Jacobi (where it runs CG or GMRES initially to get eigenvalue estimates). </div><div><br class=""></div><div>  We generally use GMRES with GAMG because when it works well it requires only a handful of Krylov iterations and when a handful is used GMRES is probably more efficient than BiCGSTAB.</div><div><br class=""></div><div><br class=""></div><div><br class=""></div><div>  <br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">Are there options to choose between unsmoothed aggregation vs smoothed aggregation?</div></div></div></blockquote><div><br class=""></div>  I think so, check with -help. <br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">thanks,</div><div class="">Raju.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Sep 22, 2020 at 10:23 PM Barry Smith <<a href="mailto:bsmith@petsc.dev" class="">bsmith@petsc.dev</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br class="">
  Raju,<br class="">
<br class="">
    If you call MatSetBlockSize(mat,4) then GAMG will keep the 4 variables together through all the levels. <br class="">
<br class="">
    You might consider using the point block Jacobi smoother with it instead of the default Jacobi smoother -mg_levels_pc_type pbjacobi<br class="">
<br class="">
    There is also PCPATCH which supports Vanka smoothing (though it is to well hidden) PCPatchSetConstructType(pc,PC_PATCH_VANKA) -pc_patch_construct_type vanka<br class="">
<br class="">
<br class="">
    For coupled Navier stokes you might also consider using PCFIELDSPLIT and GAMG just for the pressure solve inside it.<br class="">
<br class="">
  Barry<br class="">
<br class="">
> On Sep 22, 2020, at 9:24 PM, Raju Mandhapati via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank" class="">petsc-users@mcs.anl.gov</a>> wrote:<br class="">
> <br class="">
> Hello,<br class="">
> <br class="">
> Does Petsc have an option to solve block matrices using AMG solver/preconditioner. My block matrix is coming from solving u,v,w,p (coupled Navier stokes) at each cell.<br class="">
> <br class="">
> thanks<br class="">
> Raju.<br class="">
<br class="">
</blockquote></div>
</div></blockquote></div><br class=""></body></html>