[petsc-dev] SLEPc General Eigenvalue Shift-Invert Crash

Miguel Arriaga mta2122 at columbia.edu
Sun Dec 16 23:16:27 CST 2012


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



More information about the petsc-dev mailing list