Now that lots of people are getting -pc_type mg without using DMMG, we don't have FGMRES (or GCR) by default. But the current default for smoothers is to use -mg_levels_ksp_type gmres which is nonlinear. This causes -pc_type mg to fail even when MG works great.<div>
<br></div><div>I think that in the end, most people don't actually want to use GMRES on levels (because the synchronization costs dominate on coarse levels), but it's more robust when you are playing with smoothers. Should we switch to using Richardson on levels by default?</div>
<div><br></div><div>Or should we have some way to automatically identify a preconditioner as nonlinear so that the library can default to a flexible Krylov method in such cases?</div>