[petsc-users] EPSSolve does not converge for a few eigenvalues of large-scale matrix

Jose E. Roman jroman at dsic.upv.es
Thu Jul 12 03:09:21 CDT 2012


El 12/07/2012, a las 06:59, Gao Bin escribió:

> Hi, all
> 
> I am trying to solve a few eigenvalues in a interval of a sparse Hermitian matrix (F) with the dimension as 2362. I know there are only 20 eigenvalues in the interval [-80.0,-70.0] for the matrix F. I choose the EPSARNOLDI method. The code looks like as follows. But after several hours running, EPS can not get converged eigenvalues. Therefore, may I ask if I did some wrong in the code? Or should I add more solver parameters for my problem? Thank you in advance.
> 
> #include <finclude/slepcepsdef.h>
>       use slepceps
> #if defined(PETSC_USE_FORTRAN_DATATYPES)
>       type(Mat) F
>       type(EPS) solver
> #else
>       Mat F
>       EPS solver
> #endif
>       ... ...
>       ! creates eigensolver context
>       call EPSCreate(PETSC_COMM_WORLD, solver, ierr)
>       ! sets operators
>       call EPSSetOperators(solver, F, PETSC_NULL_OBJECT, ierr)
>       ! sets solver parameters
>       call EPSSetProblemType(solver, EPS_HEP, ierr)
>       call EPSSetWhichEigenpairs(solver, EPS_ALL, ierr)
>       call EPSSetInterval(solver, -80.0, 70.0, ierr)
>       call EPSSetType(solver, EPSARNOLDI, ierr)
>       call EPSSetTolerances(solver, 1.0D-9, 90000, ierr)
>       ! solve the eigensystem
>       call EPSSolve(solver, ierr)
> 
> Cheers
> 
> Gao

For using computational intervals (EPSSetInterval) you must use Krylov-Schur and specify the relevant options for the spectral transformation. See section 3.4.5 in the manual.

Jose


More information about the petsc-users mailing list