Bug in Stratimikos ignoring "Convergence Tolerance" parameter for Belos/AztecOO
Created by: ikalash
In running Albany, I have come across what I believe is a bug in the Stratimikos processing of the parameter list for the solver (Belos or AztecOO). It appears the parameter "Convergence Tolerance" under the solver sublist (e.g., Belos -> Block GMRES, or Belos -> Block CG or AztecOO -> GMRES) gets ignored, and instead a default value gets used. To take my input file as a concrete example, even though I set "Convergence Tolerance to 1.0e-12 (in bold below), the value that is used for the BlockGmres solver is 1e-4.
Stratimikos Linear Solver: Stratimikos: Linear Solver Type: Belos Linear Solver Types: Belos: VerboseObject: Verbosity Level: high Solver Type: Block GMRES Solver Types: Block GMRES: Convergence Tolerance: 1.0e-12 Output Frequency: 1 Output Style: 1 Verbosity: 33 Maximum Iterations: 200 Block Size: 1 Num Blocks: 200 Flexible Gmres: false
I dug a little bit into it and stratimikos/adapters/belos/src/Thyra_BelosLinearOpWithSolve_def.hpp is getting the right value for defaultTol_, but then it must be getting overwritten somewhere b/w this file and the BelosGmresSolver. It's not clear to me where the 1.0e-4 value is coming from, but I did not dig that deep. I observed this problem with Belos and AztecOO being called through Stratimikos (though they have different default values).
Mentioning @amota and @jwfoulk , who are interested in this from the Albany side. Paul Lin has confirmed that this happens in Drekar as well so the issue is not specific to Albany. I believe a few years ago, the Convergence Tolerance was being read in correctly from the input file.
@trilinos/stratimikos @trilinos/belos @trilinos/aztecoo