[Trilinos-Users] [EXTERNAL] Anasazi BlockKrylovSchur solver Error in F^H M F == I
Klinvex, Alicia Marie
amklinv at sandia.gov
Thu Sep 14 09:09:04 EDT 2017
Hello Andris,
Can you try increasing your number of blocks? You allowed GMRES to store a subspace of size 24, and you allowed it 10 restarts, which is why it did not attempt 1000 iterations.
Best wishes,
Alicia
From: Andris Freimanis [mailto:andris.freimanis_1 at rtu.lv]
Sent: Thursday, September 14, 2017 9:03 AM
To: Klinvex, Alicia Marie <amklinv at sandia.gov>; Trilinos mailing list <trilinos-users at trilinos.org>
Subject: RE: [EXTERNAL] [Trilinos-Users] Anasazi BlockKrylovSchur solver Error in F^H M F == I
Dear, Alicia,
thank you for your response.
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
Schwartz: combine mode "Add"
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><mailto: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 already doing that.
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
/usr/local/trilinos/include/AnasaziEpetraAdapter.hpp:1401:
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<http://www.rtu.lv>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://trilinos.org/pipermail/trilinos-users/attachments/20170914/8ce6194e/attachment.html>
More information about the Trilinos-Users
mailing list