# [Trilinos-Users] [EXTERNAL] Anasazi BlockKrylovSchur solver Error in F^H M F == I

Andris Freimanis andris.freimanis_1 at rtu.lv
Thu Sep 14 09:02:33 EDT 2017

Dear, Alicia,

M is a part of a generalized eigenvalue problem A*x = lambda*M*x. Since
A is real non-hermitian I'm using Block Krylov Schur eigensolver with
shift-invert transformation as shown in
BlockKrylovSchurEpetraExGenBelos.cpp example. And block GMRES linear
solver with ILU preconditioner for the inverted part.

Linear solver parameters are:
Block size 1
Number of blocks 24
Max iterations 1000 (if I understand the output correctly, only 264
were used)
Max restarts 10
Tolerance 1e-3
ILU preconditioner parameters were:
Drop tolerance 1e-9
Level-of-fill 1

Scipy's eigs function, which uses Arpack, solved this problem easily. So
most likely I have made some mistake with Trilinos solvers.

Best regards,

Andris

On 2017.09.14. 15:06, Klinvex, Alicia Marie wrote:
>
> Hello Andris,
>
> I’m sorry to hear you’re having trouble with Anasazi.  The “error”
> you’re getting isn’t an error in the programming sense.  It’s an error
> in the mathematical sense.  You turned on debugging output, so it’s
> printing information that’s useful to the developers.  That message is
> telling us that F^H M F is approximately equal to I in that the error
> F^H M F - I is small.
>
> Can you tell us about the linear solver you’re using?  What are the
> tolerance and maximum number of iterations?  Also, is M a
> preconditioner, or is M part of the generalized eigenvalue problem Ax
> = \lambda M x?
>
> Best wishes,
>
> Alicia
>
> *From:*Trilinos-Users [mailto:trilinos-users-bounces at trilinos.org] *On
> Behalf Of *Andris Freimanis
> *Sent:* Thursday, September 14, 2017 1:18 AM
> *To:* Trilinos mailing list <trilinos-users at trilinos.org>
> *Subject:* [EXTERNAL] [Trilinos-Users] Anasazi BlockKrylovSchur solver
> Error in F^H M F == I
>
> Hello,
>
> I'm trying to calculate few smallest eigenvalues of a linear system,
> where A - nonsymmetric sparse and M - sparse symmetric
> positive-definite, using Anasazi's Block Krylov Schur solver with
> shift-invert transformation that is solved by Belos's block GMRES
> solver. Both test matrices are 240x240 in size.
>
> Unfortunately, I'm getting this error:  >> Error in F^H M F == I :
> 4.44e-16 (copied the full error message below), and can't find info on
> this in neither Anasazi nor Belos examples or documentation. Can you
> please take a look at the error message below?
>
> This problem is similar to the one here:
> https://trilinos.org/pipermail/trilinos-users/2015-December/005270.html.
> However, the suggestion to use shift-invert doesn't help as I'm
>
> Best regards,
>
> Andris Freimanis
>
> Debugging checks: iteration 0: after initialize()
>  >> Error in F^H M F == I  : 4.44e-16
>
> ================================================================================
>
>                          BlockKrylovSchur Solver Status
>
> The solver is initialized.
> The number of iterations performed is 0
> The block size is         1
> The number of blocks is   24
> The current basis size is 0
> The number of auxiliary vectors is 0
> The number of operations Op*x   is 0
>
> CURRENT RITZ VALUES
>    [ NONE COMPUTED ]
>
> ================================================================================
>
> - StatusTestOutput: Failed
>   (Num calls,Mod test,State test): (1, 1, Passed Failed Undefined )
>    - StatusTestCombo: Failed
>      - StatusTestWithOrdering: Undefined
>        Quorum: 5
>        Auxiliary values: [empty]
>        - StatusTestResNorm: Failed
>          (Tolerance,WhichNorm,Scaled,Quorum):
> (1.000000e-03,RITZRES_2NORM,true,5)
>          Which vectors: [empty]
>  Performing restart number 1 of 10
>
>  Performing restart number 2 of 10
>
>  Performing restart number 3 of 10
>
>  Performing restart number 4 of 10
>
>  Performing restart number 5 of 10
>
>  Performing restart number 6 of 10
>
>  Performing restart number 7 of 10
>
>  Performing restart number 8 of 10
>
>  Performing restart number 9 of 10
>
>  Performing restart number 10 of 10
>
> Failed.......OR Combination ->
>   OK...........Number of Iterations = 264 < 1000
>   Unconverged..(2-Norm Res Vec) / (2-Norm Prec Res0)
>                residual [ 0 ] = 2.855202e-01 > 1.000000e-03
>
> ================================================================================
>
>                       TimeMonitor results over 1 processor
>
> Timer Name Global time (num calls)
> --------------------------------------------------------------------------------
> Anasazi: BlockKrylovSchur::Computing Ritz vectors    0 (0)
> Anasazi: BlockKrylovSchur::Computing Schur form      0 (0)
> Anasazi: BlockKrylovSchur::Operation Op*x            0 (1)
> Anasazi: BlockKrylovSchur::Orthogonalization 0.0001295 (1)
> Anasazi: BlockKrylovSchur::Sorting Ritz values       0 (0)
> Anasazi: BlockKrylovSchur::Sorting Schur form        0 (0)
> Anasazi: BlockKrylovSchurSolMgr restarting           0 (0)
> Anasazi: BlockKrylovSchurSolMgr::solve()             0 (1)
> Belos: BlockGmresSolMgr total solve time 0.03066 (1)
> Belos: Operation Op*x 0.005605 (275)
> --------------------------------------------------------------------------------
> Belos: Operation Prec*x 0.007409 (275)
> Belos: Orthogonalization 0.01177 (275)
> Epetra_CrsMatrix::Multiply(TransA,X,Y) 0.005537 (280)
> Epetra_CrsMatrix::Solve(Upper,Trans,UnitDiag,X,Y) 0.006862 (550)
> Ifpack_ILU::ApplyInverse 0.007275 (275)
> Ifpack_ILU::ApplyInverse - Solve 0.007074 (275)
> Ifpack_ILU::Compute 0.002538 (1)
> Ifpack_ILU::ComputeSetup 0.0008707 (1)
> Ifpack_ILU::Initialize 0.0004559 (1)
> ================================================================================
> Anasazi::BlockKrylovSchurSolMgr::solve() caught unexpected exception
> from Anasazi::BlockKrylovSchur::iterate() at iteration 1
>
> Throw number = 1
>
> Throw test that evaluated to true: ret != 0
>
> Anasazi::OperatorTraits<double,Epetra_Multivector,Epetra_Operator>::Apply():
> Error in Epetra_Operator::Apply(). Code -1
> Anasazi::BlockKrylovSchurSolMgr::solve() returning Unconverged with no
> solutions.
>
> --
> Andris Freimanis
> PhD student
> Riga Technical university
> Institute of transporation
> engineering
> Ķīpsalas iela 6a, Riga, Latvia, LV1048
> www.rtu.lv <http://www.rtu.lv>

--
Andris Freimanis
PhD student

Riga Technical university
Institute of transporation
engineering

Ķīpsalas iela 6a, Riga, Latvia, LV1048
www.rtu.lv

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://trilinos.org/pipermail/trilinos-users/attachments/20170914/27736bdf/attachment.html>