<div dir="ltr"><div>Hello petsc friends,</div><div><br></div><div>It's been a while since I am trying to find a good setup for my coupled solver. </div><div><br></div><div>Recently, I have run a scan with Dakota (more than 1k simulations) on the Windsor body case with 7Mln cells on 36 cores on my small home server (Dell R730 with 2x2496 v4 xeon). I thought it was a good idea to share my results with the community!</div><div><br></div><div>Here is a resume of my finding:</div><div><br></div><div>1) Multiplicative is faster than Schur:  I have found out that Schur preconditioner is rarely faster than multiplicative despite the fact Schur keeps the number of iterations lower. I think there is a lot of room for improvement as far as FV matrices are concerned. Probably custom Shat is the way to go, but not easy to find a good one! Up to now "selfp" looks to be the only good and "ready to go" choice.</div><div> </div><div>2) Vanilla fbcgs is faster than vanilla fgmres: maybe here we can tune gmres restart, I have not tried this systematically. </div><div><br></div><div>3) Stick with preonly: using bcgs/cg as preconditioner ksp lowers the number of iterations but it adds up a lot of overhead (even setting few iterations or mild tolerances).</div><div><br></div><div>4) Staging is a good idea: beyond bare iteration performance, I think that for steady state problems it worth setting a max for outer iterations in fieldsplit, as starting iterations would cost you a lot and probably you will be far from convergence anyway at the stage, so it is not a good investment pushing hard on them. </div><div><br></div><div>5) Here my best so far settings:</div><div><br></div><div>    # Outer solver settings</div><div>     "solver": "fbcgs",<br>     "preconditioner": "fieldsplit",<br>     "absTol": 1e-6,<br>     "relTol": 0.01,</div><div><br></div><div>      # Field split KSP and PC</div><div>      "fieldsplit_u_pc_type": "bjacobi",<br>      "fieldsplit_p_pc_type": "hypre",<br>      "fieldsplit_u_ksp_type": "preonly",<br>      "fieldsplit_p_ksp_type": "preonly",<br><br>       ! HYPRE PC options<br>       "fieldsplit_p_pc_hypre_boomeramg_strong_threshold": 0.05,<br>       "fieldsplit_p_pc_hypre_boomeramg_coarsen_type": "PMIS",<br>       "fieldsplit_p_pc_hypre_boomeramg_truncfactor": 0.3,<br>       "fieldsplit_p_pc_hypre_boomeramg_no_cf": 0,<br>       "fieldsplit_p_pc_hypre_boomeramg_agg_nl": 1,<br>       "fieldsplit_p_pc_hypre_boomeramg_agg_num_paths": 1,<br>       "fieldsplit_p_pc_hypre_boomeramg_P_max": 0,<br>       "fieldsplit_p_pc_hypre_boomeramg_max_levels": 30,<br>       "fieldsplit_p_pc_hypre_boomeramg_relax_type_all": "backward-SOR/Jacobi",<br>       "fieldsplit_p_pc_hypre_boomeramg_interp_type": "ext+i",<br>       "fieldsplit_p_pc_hypre_boomeramg_grid_sweeps_down": 0,<br>       "fieldsplit_p_pc_hypre_boomeramg_grid_sweeps_up": 2,<br>       "fieldsplit_p_pc_hypre_boomeramg_cycle_type": "v"<br></div><div><br></div><div>I have a question for Barry/Jed/Matt. I have noted that most of the commercial solvers use what I define as "SAMG with ILU smoother". I am wondering if there's a way to reproduce this in Petsc.  I have tried PCPATCH to test VANKA, but I am not really able to use that PC as I am not using DMplex. With this recipe I am not miles away from Fluent on the same problem. Yet, I am wondering why commercial solvers do not use fieldsplit.</div><div><br></div><div>Hope this can be helpful and of course I am happy to collaborate on this topic if someone outhere is willing to!</div><div><br></div><div>Cheers,</div><div><br></div><div>Edoardo</div><div><br></div><div><br></div><div><br></div></div>