[petsc-users] SLEPc Bogus eigenvalues for large -eps_nev

Jose E. Roman jroman at dsic.upv.es
Thu May 14 10:17:31 CDT 2015


On 14/05/2015, Vijay Gopal Chilkuri wrote:

> Hi,
> 
> I am using SLEPc to get the lowest m eigenvalues of a large sparse hermitian matrix using Krylov-Schur.
> The problem is that while asking for a large number of eigenvalues (e.g. 300) for a large problem
> consisting of a 91454220 X 91454220 system, the solver does not give the lowest 300 eigenvalues.
> Instead it gives the following arbitrary negative values followed by a few correct ones.
> 
>    -4733.882429           0.999888
>    -4729.554413             1.0006
>    -4725.841715           0.999887
>    -4702.457861            1.00061
>    -4700.608105           0.999887
>    -4691.142733           0.999885
>       -6.361168            1.18973
>       -6.361102        6.05898e-09
>       -6.361099           6.71e-09
>       -6.361093        7.66471e-09
>       -6.361082            1.17659
> 
> 
> Although the solver says that it has successfully converged the 300 eigenvalues !
> Please find the relevant files attached.
> 
> Could anyone tell me what I'm doing wrong ?
> 
> thanks,
>  Vijay
> 
> <problem.c><output>

I do not see anything strange, apart from passing a pointer to long int in an argument of type PetscInt*. To guarantee portability, it would be better if all variables in your program are of type PetscInt, PetscMPIIInt, PetscReal, PetscScalar, etc.

I do not know what is going on. Do you get the same behaviour for smaller matrix sizes? Do you get the same problem when computing only a few eigenvalues?

Jose




More information about the petsc-users mailing list