[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