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
