[petsc-users] Slepc solver not converging for generalized eigenproblem
Manav Bhatia
bhatiamanav at gmail.com
Fri Sep 7 02:06:20 CDT 2018
Thanks, Jose.
I was able to get this to work with the largest eigenvalues option.
Thanks!
-Manav
> On Sep 7, 2018, at 2:04 AM, Jose E. Roman <jroman at dsic.upv.es> wrote:
>
> 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