[Trilinos-Users] Belos::StatusTest question

Axel Gerstenberger axel.gerstenberger at gmx.de
Sat Mar 29 14:24:10 MDT 2014


Hi all,

I am new to Belos and try to solve an simple Poisson problem using Belos 
with ML preconditioning. The solver seems to work fine, but I have a 
problem with the convergence behavior:

----------------------->8------------------------
*******************************************************
***** Belos Iterative Solver:  Pseudo Block Gmres
***** Maximum Iterations: 10000
***** Block Size: 1
***** Residual Tests (SEQ):
*****   Test 1 : Belos::StatusTestGenResNorm<>: (2-Norm Imp Res Vec) / 
(2-Norm Prec Res0), tol = 1e-08
*****   Test 2 : Belos::StatusTestGenResNorm<>: (2-Norm Exp Res Vec) / 
(2-Norm Res0), tol = 1e-08
*******************************************************
Iter     0, [ 1] :    1.000000e+00            ---
Iter     1, [ 1] :    5.889206e-04            ---
Iter     2, [ 1] :    5.220753e-05            ---
Iter     3, [ 1] :    1.014071e-05            ---
Iter     4, [ 1] :    5.916512e-07            ---
Iter     5, [ 1] :    2.494995e-08            ---
Iter     6, [ 1] :    2.157002e-09   1.011194e+01
Iter     7, [ 1] :    2.157002e-09   1.011194e+01
Iter     8, [ 1] :    2.157002e-09   1.011194e+01
Iter     9, [ 1] :    2.157002e-09   1.011194e+01
Iter    10, [ 1] :    2.157002e-09   1.011194e+01
Iter    11, [ 1] :    2.157002e-09   1.011194e+01
Iter    12, [ 1] :    2.157002e-09   1.011194e+01
....
Iter   291, [ 1] :    2.157002e-09   1.011194e+01
Iter   292, [ 1] :    2.157002e-09   1.011194e+01
Iter   293, [ 1] :    2.157002e-09   1.011194e+01
unknown file: Failure
C++ exception with description 
".../include/trilinos/BelosStatusTestGenResNorm.hpp:574:

Throw number = 1

Throw test that evaluated to true: true

StatusTestGenResNorm::checkStatus(): NaN has been detected." thrown in 
the test body.
----------------------->8------------------------

Manually stopping the iteration after 8 steps by defining a maximal 
number of iterations and looking at the results, I see the correct 
converged solution.

How could I make the second residual to decrease right away?
Should I manually replace the sequential test with a single StatusTest 
using solver->setUserConvStatusTest(...) or is there something else that 
I should do?

I ask this without giving any source code hoping there is something 
obvious that Belos newbies tend to do wrong. If that is not enough 
information I'll come back with some source code. Any feedback would be 
very welcome.

Best regards,
Axel


More information about the Trilinos-Users mailing list