[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