Currently Matrix Options are printed in MatView_Private which is called from many places, e.g.<div><br></div><div>MatAssemblyEnd</div><div>MatZeroRowsColumns</div><div>MatZeroRows</div><div>MatLUFactorNumeric</div><div>MatCholeskyFactorNumeric</div>
<div><br></div><div>The problem here is that in time-stepping or a multigrid solve, it's common to have these functions called hundreds or thousands of times which is really overwhelming to -help output. One solution would be to store on a per-matrix basis whether help has been displayed and only view it once (this implies caching all the -mat_view_* options in the Mat, or calling with PetscOptionsGetBool after the first time). The options could even be moved to MatSetFromOptions, but that doesn't get called nearly as much as we would probably like.</div>
<div><br></div><div>There is also the somewhat deeper problem of multiple objects with the same prefix (often no prefix). This is most visible for matrices inside of multigrid and/or fieldsplit. It is easy to have more than 20 matrices with no prefix so even if the multiple-output problem above was solved, it would still be fairly overwhelming. I think this is somewhat harder to fix because it would imply a per-prefix log of whether the option has been printed. I think that the one special case of no-prefix Mat would already be a significant usability improvement.</div>