My addition of PetscOptionsGetViewer() is intended to facilitate the moving of PetscOptions?() calls from the main stream of computation (KSPSolve, SNESSolve, etc). I've moved all PetscOptions?.() calls from VecAssemblyEnd() and MatAssemblyEnd() to VecSetFromOptions(), MatSetFromOptions(). We need to do the same for the other main stream computation routines at some point.
Barry Why do I care? For integrator for example small sets of ODEs I want PETSc to be competitive with any other integrator available.
