[Trilinos-Users] preconditioned GMRES: no convergence in explicit residual

Nico Schlömer nico.schloemer at gmail.com
Thu Feb 6 09:44:28 MST 2014


Thanks for the input everyone!

I've now created a minimal Trilinos-only 3x3 example that highlights
the behavior. (See attachment.) -- As opposed to what I stated
earlier, right preconditioning does work.

The output on my machine is:

=============== *snip* ===============
*******************************************************
***** Belos Iterative Solver:  Pseudo Block Gmres
***** Maximum Iterations: 1000
***** Block Size: 1
***** Residual Tests (SEQ):
*****   Test 1 : Belos::StatusTestGenResNorm<>: (2-Norm Imp Res Vec) /
(2-Norm Prec Res0), tol = 1e-10
*****   Test 2 : Belos::StatusTestGenResNorm<>: (2-Norm Exp Res Vec) /
(2-Norm Res0), tol = 1e-10
*******************************************************
Iter    0, [ 1] :    1.000000e+00            ---
Iter    1, [ 1] :    0.000000e+00   5.773503e-01
Iter    2, [ 1] :    0.000000e+00   5.773503e-01
Iter    3, [ 1] :    0.000000e+00   5.773503e-01

p=0: *** Caught standard std::exception of type 'N5Belos15StatusTestErrorE' :

 /opt/trilinos/dev/lib/cmake/Trilinos/../../../include/trilinos/BelosStatusTestGenResNorm.hpp:574:

 Throw number = 1

 Throw test that evaluated to true: true

 StatusTestGenResNorm::checkStatus(): NaN has been detected.
=============== *snap* ===============

--Nico


On Mon, Feb 3, 2014 at 10:52 AM, Pavel Jiránek <pavel.jiranek at gmail.com> wrote:
> Hi Nico,
>
> Would it be possible that your preconditioner is not fixed? That might
> explain why left/right preconditioned GMRES does not work while CG and
> MINRES (which are sort of "flexible") do. You could probably try to use the
> right preconditioning combined with flexible GMRES.
>
> Pavel
>
>
> On Fri, Jan 31, 2014 at 6:58 PM, Nico Schlömer <nico.schloemer at gmail.com>
> wrote:
>>
>> Hi all,
>>
>> I've got this matrix corresponding a finite-element discretization of
>> the Poisson problem on the unit square (with Dirichlet BC, no issues
>> here). Running the problem through Belos with CG and ML, Ifpack gives
>> no problems at all. The PseudoBlockGMRES solver works fine when
>> unpreconditioned, but yields something weird when using a
>> preconditioner:
>>
>> ============== *snip* ==============
>> *******************************************************
>> ***** Belos Iterative Solver:  Pseudo Block Gmres
>> ***** Maximum Iterations: 100
>> ***** Block Size: 1
>> ***** Residual Tests (SEQ):
>> *****   Test 1 : Belos::StatusTestGenResNorm<>: (2-Norm Imp Res Vec) /
>> (2-Norm Prec Res0), tol = 1e-13
>> *****   Test 2 : Belos::StatusTestGenResNorm<>: (2-Norm Exp Res Vec) /
>> (2-Norm Res0), tol = 1e-13
>> *******************************************************
>> Iter   0, [ 1] :    1.000000e+00            ---
>> Iter   1, [ 1] :    6.120593e-01            ---
>> Iter   2, [ 1] :    2.695238e-01            ---
>> Iter   3, [ 1] :    5.704995e-02            ---
>> Iter   4, [ 1] :    1.272673e-02            ---
>> Iter   5, [ 1] :    2.783810e-03            ---
>> Iter   6, [ 1] :    5.753817e-04            ---
>> Iter   7, [ 1] :    2.045848e-04            ---
>> Iter   8, [ 1] :    5.724907e-05            ---
>> Iter   9, [ 1] :    1.633313e-05            ---
>> Iter  10, [ 1] :    3.055064e-06            ---
>> Iter  11, [ 1] :    4.947173e-07            ---
>> Iter  12, [ 1] :    6.945227e-08            ---
>> Iter  13, [ 1] :    1.859584e-08            ---
>> Iter  14, [ 1] :    5.185228e-09            ---
>> Iter  15, [ 1] :    5.922331e-10            ---
>> Iter  16, [ 1] :    8.149474e-11            ---
>> Iter  17, [ 1] :    1.010586e-11            ---
>> Iter  18, [ 1] :    1.600644e-12            ---
>> Iter  19, [ 1] :    3.034731e-13            ---
>> Iter  20, [ 1] :    3.452280e-14   7.213315e-01
>> [...]
>> ============== *snap* ==============
>>
>> The ExpResVec never converges at all.
>>
>> What may cause this? Any known fix/workaround?
>>
>> Cheers,
>> Nico
>> _______________________________________________
>> Trilinos-Users mailing list
>> Trilinos-Users at software.sandia.gov
>> http://software.sandia.gov/mailman/listinfo/trilinos-users
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: main.cpp
Type: text/x-c++src
Size: 4288 bytes
Desc: not available
Url : https://software.sandia.gov/pipermail/trilinos-users/attachments/20140206/142daa52/attachment.bin 


More information about the Trilinos-Users mailing list