[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