[petsc-users] Slepc solver not converging for generalized eigenproblem
Jose E. Roman
jroman at dsic.upv.es
Fri Sep 7 02:04:00 CDT 2018
The matrices are not in a format that I can easily load. Anyway, I see that you are using "smallest magnitude", which will give bad convergence in most cases. It is specially not recommended in generalized eigenproblems: instead of smallest eigenvalues of (M0,M1) you should compute largest eigenvalues of (M1,M0), and evaluate the reciprocals of the eigenvalues. Alternatively, use shift-and-invert to compute eigenvalues of (M0,M1) closest to the target sigma=0. If M0 is singular, then use a small nonzero value for sigma.
Jose
> El 7 sept 2018, a las 8:44, Manav Bhatia <bhatiamanav at gmail.com> escribió:
>
> Hi,
>
> I am attempting to compute the eigenvalues of the generalized nonhermitian eigenproblem
>
> M1 x = lambda M0 x
>
> M1 and M0 are in the attached text files. The solver is unable to converge with 300 iterations. I have played around with the max it (as high as 1500) and it still is unable to converge.
>
> What would be the best way to work around this issue?
>
> I would appreciate your help.
>
> Thanks,
> Manav
>
> <M0.txt>
> <M1.txt>
>
>
> EPS Object: 1 MPI processes
> type: krylovschur
> 50% of basis vectors kept after restart
> using the locking variant
> problem type: generalized non-symmetric eigenvalue problem
> selected portion of the spectrum: smallest eigenvalues in magnitude
> number of eigenvalues (nev): 10
> number of column vectors (ncv): 50
> maximum dimension of projected problem (mpd): 50
> maximum number of iterations: 300
> tolerance: 1e-08
> convergence test: relative to the eigenvalue
> BV Object: 1 MPI processes
> type: svec
> 51 columns of global length 178
> vector orthogonalization method: classical Gram-Schmidt
> orthogonalization refinement: if needed (eta: 0.7071)
> block orthogonalization method: GS
> doing matmult as a single matrix-matrix product
> DS Object: 1 MPI processes
> type: nhep
> ST Object: 1 MPI processes
> type: shift
> shift: 0.
> number of matrices: 2
> all matrices have different nonzero pattern
> KSP Object: (st_) 1 MPI processes
> type: preonly
> maximum iterations=10000, initial guess is zero
> tolerances: relative=1e-08, absolute=1e-50, divergence=10000.
> left preconditioning
> using NONE norm type for convergence test
> PC Object: (st_) 1 MPI processes
> type: lu
> out-of-place factorization
> tolerance for zero pivot 2.22045e-14
> matrix ordering: nd
> factor fill ratio given 0., needed 0.
> Factored matrix follows:
> Mat Object: 1 MPI processes
> type: seqdense
> rows=178, cols=178
> package used to perform factorization: petsc
> total: nonzeros=31684, allocated nonzeros=31684
> total number of mallocs used during MatSetValues calls =0
> linear system matrix = precond matrix:
> Mat Object: 1 MPI processes
> type: seqdense
> rows=178, cols=178
> total: nonzeros=31684, allocated nonzeros=31684
> total number of mallocs used during MatSetValues calls =0
> Linear eigensolve did not converge due to DIVERGED_ITS; iterations 300
More information about the petsc-users
mailing list