<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=""><div class=""><br class=""></div>  Yes, sorry, I meant to write non-linear smoother.  What Matt is saying is that just like non-linear Gauss-Seidel has the linear version linear Gauss-Seidel there is also a non-linear Jacobi. Just like in the linear world non-linear Gauss-Seidel  generally converges faster than non-linear Jacobi (often much faster) but in the context of the full approximation scheme (nonlinear multigrid) the smoother details are only part of the convergence picture so one can possibly use Jacobi instead of Gauss-Seidel as the smoother. PETSc has SNESFAS for implementing the full approximation scheme as well as accelerators for it like SNESQN, SNESANDERSON, SNESNGMRES which are used in a way similar to the way linear Krylov methods are used to accelerate linear multigrid or linear Jacobi or linear Gauss-Seidel.<div class=""><br class=""></div><div class="">  Because Jacobi (linear or nonlinear) can do all the updates simultaneously they can be "batched" as Jed notes or can run very efficiently (if coded well) on GPUs. The fact that the convergence rate may be a bit smaller than for Gauss-Seidel may be outweighed by the fact that it can much more efficiently utilize the hardware.</div><div class=""><br class=""></div><div class="">  I would suggest write your non-linear Gauss-Seidel with SNES and then time it in the context of your entire application/simulation, you can always go back and customize the code for each problem size by writing little naked Newton code directly it you need the improvement in speed. </div><div class=""><br class=""></div><div class="">  Barry</div><div class=""><br class=""></div><div class="">  We actually struggle ourselves in PETSc with writing efficient smoothers based on patches due to the overhead of the standard SNES/KSP solvers that were not coded specifically for very small problems.<br class=""><div class=""> <br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Sep 17, 2020, at 4:05 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com" class="">knepley@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div dir="ltr" class="">On Thu, Sep 17, 2020 at 2:54 PM Alexander B Prescott <<a href="mailto:alexprescott@email.arizona.edu" class="">alexprescott@email.arizona.edu</a>> wrote:<br class=""></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" class=""><div dir="ltr" class="">Thank you all for your input. Matt is right, I cannot batch as this formulation must be done sequentially. <div class=""><br class=""></div><div class="">>>  Sounds a bit like a non-smoother (Gauss-Seidel type), speculating based on these few words.</div><div class=""><br class=""></div><div class="">Barry, it is similar to a Gauss-Seidel solver in that solution updates from previous solves are used in the most recent Newton solve, though I'm not exactly sure what you mean by "non-smoother".</div></div></div></blockquote><div class=""><br class=""></div><div class="">He means a nonlinear smoother. You iterate over your domain solving small nonlinear problems in order to get closer to the solution</div><div class="">of the big nonlinear problem. Depending on what you are doing, it might be possible to decouple these, which would likely be much</div><div class="">more efficient.</div><div class=""><br class=""></div><div class="">  Thanks,</div><div class=""><br class=""></div><div class="">     Matt</div><div class=""> </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" class=""><div dir="ltr" class=""><div class="">Best,</div><div class="">Alexander</div></div><div class=""><br class=""></div><div class=""><br class=""></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Sep 17, 2020 at 6:06 AM Matthew Knepley <<a href="mailto:knepley@gmail.com" target="_blank" class="">knepley@gmail.com</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"><p style="text-align:center" class=""><font color="red" class=""><strong class="">External Email</strong><br class=""></font></p><div dir="ltr" class=""><div dir="ltr" class="">On Thu, Sep 17, 2020 at 12:23 AM Jed Brown <<a href="mailto:jed@jedbrown.org" target="_blank" class="">jed@jedbrown.org</a>> wrote:<br class=""></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">Alexander B Prescott <<a href="mailto:alexprescott@email.arizona.edu" target="_blank" class="">alexprescott@email.arizona.edu</a>> writes:<br class="">
<br class="">
>>      Are the problems of varying nonlinearity, that is will some converge<br class="">
>> with say a couple of Newton iterations while others require more, say 8 or<br class="">
>> more Newton steps?<br class="">
>><br class="">
> The nonlinearity should be pretty similar, the problem setup is the same at<br class="">
> every node but the global domain needs to be traversed in a specific order.<br class="">
<br class="">
<br class="">
It sounds like you may have a Newton solver now for each individual problem?  If so, could you make a histogram of number of iterations necessary to solve?  Does it have a long tail or does every problem take 3 and 4 iterations (for example).<br class="">
<br class="">
If there is no long tail, then you can batch.  If there is a long tail, you really want a solver that does one problem at a time, or a more dynamic system that checks which have completed and shrinks the active problem down.  (That complexity has a development and execution time cost.)<br class="">
</blockquote></div><br clear="all" class=""><div class="">He cannot batch if the solves are sequential, as he says above.</div><div class=""><br class=""></div><div class="">   Matt</div><div class=""><br class=""></div>-- <br class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class="">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br class="">-- Norbert Wiener</div><div class=""><br class=""></div><div class=""><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank" class="">https://www.cse.buffalo.edu/~knepley/</a><br class=""></div></div></div></div></div></div></div></div>
</blockquote></div><br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div style="font-size:12.8px" class=""><span style="font-family:arial,sans-serif" class="">Alexander</span><span style="font-family:arial,sans-serif" class=""> </span><span style="font-family:arial,sans-serif" class="">Prescott</span><br class=""></div><div style="font-size:12.8px" class=""><span style="font-family:arial,sans-serif" class=""><a href="mailto:alexprescott@email.arizona.edu" target="_blank" class="">alexprescott@email.arizona.edu</a></span></div><div style="font-size:12.8px" class=""><div style="font-family:arial,sans-serif" class=""><span class="">PhD</span> <span class="">Candidate</span>, The University of Arizona</div><div style="font-family:arial,sans-serif" class="">Department of Geosciences</div><div style="font-family:arial,sans-serif" class="">1040 E. 4th Street</div><div style="font-family:arial,sans-serif" class="">Tucson, AZ, 85721</div></div></div></div></div></div></div></div>
</div>
</blockquote></div><br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div dir="ltr" class="gmail_signature"><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class="">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br class="">-- Norbert Wiener</div><div class=""><br class=""></div><div class=""><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank" class="">https://www.cse.buffalo.edu/~knepley/</a><br class=""></div></div></div></div></div></div></div></div>
</div></blockquote></div><br class=""></div></div></body></html>