This may be caused by the KSP coefficient matrix being singular. With shift-and-invert the KSP matrix is A-sigma*B where the shift sigma is equal to the target. Are you specifying a target? By default the target in shift-and-invert runs is 0 so in that case the KSP matrix is A. Probably your A matrix is singular or has tiny eigenvalues. I would suggest trying with a nonzero target, e.g. -eps_target 0.2 (or a larger value if you know that your unstable eigenvalues are further away from the real axis).
If this does not solve the problem, send configure and make logs to slepc-maint, together with the output of -eps_view Jose El 17/12/2012, a las 06:52, Barry Smith escribi?: > > A google of DHSEQR 25 led to this page: > http://www.netlib.org/lapack/explore-html/d8/d66/dhseqr_8f.html > > INFO is INTEGER > = 0: successful exit > .LT. 0: if INFO = -i, the i-th argument had an illegal > value > .GT. 0: if INFO = i, DHSEQR failed to compute all of > the eigenvalues. Elements 1:ilo-1 and i+1:n of WR > and WI contain those eigenvalues which have been > successfully computed. (Failures are rare.) > > If INFO .GT. 0 and JOB = 'E', then on exit, the > remaining unconverged eigenvalues are the eigen- > values of the upper Hessenberg matrix rows and > columns ILO through INFO of the final, output > value of H. > > > Being at the end of my knowledge, I'll suggest perhaps you can run everything > in __float128 precision? You need a non-ancient version of GCC and > configure PETSc using -with-precision=__float128 --download-f2cblaslapack > (I hope you don't have Fortran code cause I don't know if that will build > properly with __float28). Also unlikely umfpack or any other external > direct solver package supports __float128? > > Hopefully the eigenvalue experts will have a better solution. > > Barry > > > > On Dec 16, 2012, at 11:16 PM, Miguel Arriaga <mta2122 at columbia.edu> wrote: > >> Hello. >> >> I'm using slepc and I'm trying to do a stability analysis on a solid >> mechanics problem which in my case is associated with looking at the >> highest real part of the eigenvalues of the general problem Ax=?Bx. My >> problem has a real non-symmetric A and a positive definite B. When I >> try to ask for the largest real eigenvalues it takes a great number of >> iterations to solve the problem, especially when I reach the yielding >> phase of my problem, in which case I can no longer obtain the required >> eigenvalues. >> >> The eigenvalues on the first steps are similar to what I obtained in >> Matlab for largest magnitude (Matlab doesn't converge for the largest real >> option). These eigenvalues are purely imaginary. When I was doing a >> standard eigenvalue analysis on this problem I found that I could >> greatly increase my performance with a Shift-Invert transformation. >> However, when I try the SI in the general case I get the following >> error: >> >> [0]PETSC ERROR: Error in external library! >> [0]PETSC ERROR: Error in Lapack xHSEQR 25! >> >> I'm using umfpack to do a preonly LU solve. Preconditioned >> Eigensolvers seem not to converge at all so for now I'm stuck with >> these. When I removed the umfpack I got the following error: >> >> [0]PETSC ERROR: Detected zero pivot in LU factorization: >> see http://www.mcs.anl.gov/petsc/documentation/faq.html#ZeroPivot! >> [0]PETSC ERROR: Zero pivot row 0 value 0 tolerance 2.22045e-14! >> >> Based on the FAQ I tried using -st_pc_factor_shift_type >> POSITIVE_DEFINITE. While this made sinvert not crash and converge fast >> it also messed with my eigenvalues. >> >> Any ideas on how I could solve this? >> >> Thank you so much, >> Miguel Arriaga >
