<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><br><div><br><blockquote type="cite"><div>On 13 Apr 2023, at 10:33 PM, Alexander Lindsay <alexlindsay239@gmail.com> wrote:</div><br class="Apple-interchange-newline"><div><div dir="ltr">Hi, I'm trying to solve steady Navier-Stokes for different Reynolds numbers. My options table<div><br></div><div>-dm_moose_fieldsplit_names u,p<br>-dm_moose_nfieldsplits 2<br>-fieldsplit_p_dm_moose_vars pressure<br>-fieldsplit_p_ksp_type preonly<br>-fieldsplit_p_pc_type jacobi<br>-fieldsplit_u_dm_moose_vars vel_x,vel_y<br>-fieldsplit_u_ksp_type preonly<br>-fieldsplit_u_pc_hypre_type boomeramg<br>-fieldsplit_u_pc_type hypre<br>-pc_fieldsplit_schur_fact_type full<br>-pc_fieldsplit_schur_precondition selfp<br>-pc_fieldsplit_type schur<br>-pc_type fieldsplit<br></div><div><br></div><div>works wonderfully for a low Reynolds number of 2.2. The solver performance crushes LU as I scale up the problem. However, not surprisingly this options table struggles when I bump the Reynolds number to 220. I've read that use of AIR (approximate ideal restriction) can improve performance for advection dominated problems. I've tried setting -pc_hypre_boomeramg_restriction_type 1 for a simple diffusion problem and the option works fine. However, when applying it to my field-split preconditioned Navier-Stokes system, I get immediate non-convergence:</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div> 0 Nonlinear |R| = 1.033077e+03</div><div>      0 Linear |R| = 1.033077e+03</div><div>  Linear solve did not converge due to DIVERGED_NANORINF iterations 0</div><div>Nonlinear solve did not converge due to DIVERGED_LINEAR_SOLVE iterations 0</div><div><br></div></blockquote>Does anyone have an idea as to why this might be happening?</div></div></blockquote><div><br></div><div>Do not use this option, even when not part of PCFIELDSPLIT.</div><div>There is some missing plumbing in PETSc which makes it unusable, see Ben’s comment here <a href="https://github.com/hypre-space/hypre/issues/764#issuecomment-1353452417">https://github.com/hypre-space/hypre/issues/764#issuecomment-1353452417</a>.</div><div><div>In fact, it’s quite easy to make HYPRE generate NaN with a very simple stabilized convection—diffusion problem near the pure convection limit (something that ℓAIR is supposed to handle).</div><div>Even worse, you can make HYPRE fill your terminal with printf-style debugging messages <a href="https://github.com/hypre-space/hypre/blob/5546cc22d46b3dba253849f258786da47c9a7b21/src/parcsr_ls/par_lr_restr.c#L1416">https://github.com/hypre-space/hypre/blob/5546cc22d46b3dba253849f258786da47c9a7b21/src/parcsr_ls/par_lr_restr.c#L1416</a> with this option turned on.</div></div><div>As a result, I have been unable to reproduce any of the ℓAIR results.</div><div>This also explains why I have been using plain BoomerAMG instead of ℓAIR for the comparison in page 9 of <a href="https://arxiv.org/pdf/2201.02250.pdf">https://arxiv.org/pdf/2201.02250.pdf</a> (if you would like to try the PC we are using, I could send you the command line options).</div><div><br></div><div>Thanks,</div><div>Pierre</div><br><blockquote type="cite"><div><div dir="ltr"> If not, I'd take a suggestion on where to set a breakpoint to start my own investigation. Alternatively, I welcome other preconditioning suggestions for an advection dominated problem.<div><br></div><div>Alex</div></div>
</div></blockquote></div><br></body></html>