<div dir="ltr"><div dir="ltr">On Thu, May 19, 2022 at 7:27 AM Alfredo J Duarte Gomez <<a href="mailto:aduarteg@utexas.edu">aduarteg@utexas.edu</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>Good afternoon PETSC users,</div><div><br></div><div>I am looking for some suggestions on preconditioners/solvers.</div><div><br></div><div>Currently, I have a custom preconditioner that solves 4 independent systems, let's call them A,B,C, and D.</div><div><br></div><div>A is an advective, diffusive, reactive system, although due to some coefficient it is the system with the highest condition number and therefore the most difficult to solve.</div><div><br></div><div>B and C, are more "standard" advective, diffusion, reactive systems. The condition number is not as high as A.</div><div><br></div><div>D is simply the laplacian used to solve an elliptic Poisson equation.</div><div><br></div><div>For more context, A,B, and C need to be recomputed about once every time step, while D is a one time cost.</div><div><br></div><div>The problem is 2-D, sizes are on the order of 1-10 million grid points, and I am using a structured grid. These usually run on somewhere between 100-400 processors.<br></div><div><br></div><div>Currently  I am solving A,B, and C with the HYPRE Euclid algorithm ILU(1), and D is solved with the direct solver MUMPS.  <br></div><div><br></div><div>While these were very useful to get the code working, I am now trying to get better parallel scaling/efficiencies and performance. HYPRE euclid does not seem to scale super well beyond like 60 procs, and MUMPS has very large memory requirements.</div><div><br></div><div>Does anyone have suggestions on more scalable ILU algorithms for A,B, and C, or any other good alternatives?</div></div></blockquote><div><br></div><div>Are these advectively dominated?</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>From what I have read, multigrid methods are probably the best alternative for D, but I have very little experience with these and they seem to require a lot of parameters. Does anyone have pointers on a good setup for a multigrid preconditioner?</div></div></blockquote><div><br></div><div>This is the easy one. If you are using DMDA, just turn on -pc_type mg and give a number of levels and it should be fine. If not, then use GAMG and it</div><div>should be fine, You could also use Hypre Boomeramg for this since it is optimized for the 2D Laplacian.</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>Thank you and have a good day,</div><div><br></div><div>-Alfredo<br></div><div><br>-- <br><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><font face="arial, sans-serif">Alfredo Duarte</font><div><font face="arial, sans-serif">Graduate Research Assistant</font></div><div><font face="arial, sans-serif">The University of Texas at Austin</font></div></div></div></div></div></div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><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="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>