> > Presumbly when you call PCReset() it zeros out all the pointers. If you do > not set the operators on the finest level again then it will use the "outer" > operator on the smoothest level. Is this the problem?
This is not a problem but it should be a choice, right? This app has an expensive nonlinear 'formFunction' but many apps will have fast matrix free apply-operator methods, in which case the current behavior with gamg is desired. And having this choice being made by whether a PC is well integrated with PETSc (e.g., not hypre) is pretty awful semantics. Is there an option that will make this happen or should I add one? If so where should I add it? It should be in PC_MG I would think. -pc_mg_levels_fine_use_op <false> -pc_mg_levels_fine_use_preop <true>
