Stratimikos+Belos: verbosity issue
Created by: bartgol
When using stratimikos factory logic to build linear solvers of Belos type, setting the verbosity parameter in the belos parameter list is not enough to produce output. This is because the output stream passed to the Belos iterative solver is Teuchos::oblackholestream if the verbosity level of the Thyra_BelosLinearOpWithSolve object was Teuchos::VERB_LOW. This would be ok, if it wasn't for the fact that the verbosity of the Thyra_BelosLinearOpWithSolve object is set to be equal to that of the Thyra_BelosLinearOpWithSolveFactory object that created it.
In short. Thyra_BelosLinearOpWithSolveFactory has some Teuchos::VerbosityLevel (call it VL). The verbosity level of the Thyra_BelosLinearOpWithSolve that it creates is also set to VL. If VL<=Teuchos::VERB_LOW, the underlying Belos iterative solver will not produce any output, even if one asks for it in the parameter list.
I think this design is not optimal, since it forces me to make both Thyra_BelosLinearOpWithSolveFactory and Thyra_BelosLinearOpWithSolve quite verbose if I want to see any output from the belos solver. However, I am not interested in polluting my output with all the information from the LOWS and LOWS factory. There are around 20 lines of output that I do not care about every time a linear solve is performed.
I would suggest that the ostream passed to the Belos iterative solver should always be the default ostream (which I believe in this case is the standard FancyOStream wrapper of cout. The user can then use the Belos parameter list to tune the iterative solver's output.