Update NOX_Thyra_Eq test to clearly show why it passes or fails
Created by: bartlettroscoe
CC: @trilinos/nox, @fryeguy52
This updates the test NOX_Thyra_Heq so that it clearly shows why the test passes or fails. This currently still fails for the Intel 17.4 compiler but at least now we can see how this test is behaving on differnet platforms.
Before, the test just showed:
************************************************************************
-- Nonlinear Solver Step 16 --
||F|| = 6.500e-08 step = 1.000e+00 (Converged!)
************************************************************************
************************************************************************
-- Final Status Test Results --
Converged....OR Combination ->
**...........Finite Number Check (Two-Norm F) = Finite
Converged....AND Combination ->
Converged....F-Norm = 6.749e-09 < 1.000e-08
(Length-Scaled Two-Norm, Absolute Tolerance)
Converged....WRMS-Norm = 5.011e-05 < 1
??...........Number of Iterations = -1 < 100
************************************************************************
Test failed!
which makes no sense because it says it converged!
But there was a silent check that it must solve in 18 iterations. But with Intel 17.4, it converges in 16 iterations (assuming due to better rounding with this Intel compiler). Yea!
This updates the test to print the real pass/fail criteria and I updated the criteria to all allow num interations between (14, 18) and it now prints:
************************************************************************
-- Nonlinear Solver Step 16 --
||F|| = 6.500e-08 step = 1.000e+00 (Converged!)
************************************************************************
************************************************************************
-- Final Status Test Results --
Converged....OR Combination ->
**...........Finite Number Check (Two-Norm F) = Finite
Converged....AND Combination ->
Converged....F-Norm = 3.250e-09 < 1.000e-08
(Length-Scaled Two-Norm, Absolute Tolerance)
Converged....WRMS-Norm = 2.810e-05 < 1
??...........Number of Iterations = -1 < 100
************************************************************************
Check for test pass/fail:
solvStatus = Converged.... == Converged.... : passed
numIterations = 16 == 18 : FAILED
diff->norm() = 1.4614e-07 <= 1e-14 : FAILED
Test failed!
I also improve the outputting by using Teuchos::VerboseObjectBase::getDefaultOStream()
so you don't need to bother checking what proc you are on when you print.