# [Trilinos-Users] Bug in Anasazi example code BlockKrylovSchurEpetraExGenAmesos.cpp?

Michael Junge junge at iam.uni-stuttgart.de
Tue Aug 19 03:17:13 MDT 2008

Chris,
thanks a lot for your reply. Just to make sure that I understand you
right. If I have a symmetric eigenvalue problem I do have to provide the
mass-operator in the definition of the eigenvalue problem. This is due
to the fact, that K^{-1}M is non-symmetric with respect to the standard
inner-product, but symmetric with respect to the inner product defined by M.
What happened with the eigenvalues and eigenvectors, if I did not
provided the mass operator or alternatively provided another symmetric
matrix?
Thanks
Michael

Chris Baker wrote:
> Michael,
>
> You are correct in all of these. The example you cited is solved by
> using a shift invert strategy, transforming the generalized eigenvalue
> problem into a standard one.
> The purpose of passing both the Krylov operator K^{-1} M as well as
> the mass matrix M to the eigenproblem is because the BKS solver
> manager will use the latter as an inner product. The benefit of doing
> this, as you noted, is that the operator K^{-1} M is symmetric with
> respect to the inner product defined by M (so long as K and M are both
> symmetric; they are in this case.) It would only be correct to omit
> the mass operator from the definition of the eigenproblem if you
> specify that the problem is non-symmetric (because the operator K^{-1}
> M is non-symmetric with respect to the standard inner product.)
>
> The BKS solver is capable of solving non-Hermitian/non-symmetric
> problems as well. In this case, you should pass only the Krylov
> operator to the eigenproblem and specify that it is non-Hermitian. If
> you pass the mass matrix, the 8.0.3 version of BKSSolMgr will use it
> for an inner product. This behavior will be different in Trilinos 9.0.
> There is an example of using the BKSSolMgr in a non-symmetric mode in
> anasazi/examples/BlockKrylovSchur/BlockKrylovSchurEpetraEx.cpp. This
> example illustrates the way that complex eigenvectors are extracted
> from the compressed storage scheme utilized by Anasazi.
>
> I apologize that these things are not better documented. We are
> currently compiling a list of FAQs, and this discussion will be
> present on that list.
>
> Chris
>
>
> On Fri, Aug 15, 2008 at 01:24, Michael Junge
> <junge at iam.uni-stuttgart.de <mailto:junge at iam.uni-stuttgart.de>> wrote:
>
>     Hi,
>     I have been studying the BlockKrylovSchur (BKS) examples provided with
>     the Anasazi package. In the file
>     "/packages/anasazi/example/BlockKrylovSchur/BlockKrylovSchurEpetraExGenAmesos.cpp"
>     of trilinos-8.0.3 the eigenvalues of smallest magnitude of the
>     discretized 2D Laplacian operator using the block Krylov-Schur method
>     are solved by an shift-and-invert strategy.
>     If I understand it right, the Generalized Hermitian Eigenvalue Problem
>     (GHEVP) is thus transformed to the standard eigenvalue problem, by
>     solving
>     K^{-1}M x = \lamba x instead of
>     M x=\lambda K x.
>     Assumed that this is correct, why is it that the eigenvalue problem is
>     then defined as
>      Teuchos::RCP<Anasazi::BasicEigenproblem<double,MV,OP> > MyProblem =
>     Teuchos::rcp( new Anasazi::BasicEigenproblem<double,MV,OP>(Aop, M,
>     ivec) );
>     in line 219 of the file BlockKrylovSchurEpetraExGenAmesos.cpp?
>     Would it
>     be rather correct to define it by
>      Teuchos::RCP<Anasazi::BasicEigenproblem<double,MV,OP> > MyProblem =
>     Teuchos::rcp( new Anasazi::BasicEigenproblem<double,MV,OP>(Aop,
>     ivec) );
>     thus ommiting the M operator, since we no longer solve the
>     original GHEVP?
>
>     It is correct, that BKS solver is also capable to solve non-symmetric
>     EVPs? Is the only difference in specifying the non-symmetric
>     problem by
>     setting
>     MyProblem->setHermitian(false)?
>     Or do I also have to modify the Solver's parameters? Is there an
>     example
>     code for this?
>
>     I would appreciate any comments on this questions.
>
>     Michael
>
>     _______________________________________________
>     Trilinos-Users mailing list
>     Trilinos-Users at software.sandia.gov
>     <mailto:Trilinos-Users at software.sandia.gov>
>     http://software.sandia.gov/mailman/listinfo/trilinos-users
>
>