You are here
conjugate real eigenvalues
Thu, 2014-02-27 22:18 - Echeban
I have an eigenvalue solver, subspace iteration, that can get only positive eigenvalues. I have a problem (K - lambda M)u=0 that has pairs of eigenvalues +/- lambda. How can I transform the eigenvalue problem for the solver to search for lambda^2 rather than lambda?
Forums:
Free Tags:
I found this lapack
I made some progress but still I need help. I found this lapack routine in Intel MKL : SBGVX. It can compute a few "selected" eigenvalues/vectors faster than computing all for large (n x n) FEM systems and it finds both positive and negative eigenvalues. The selection can be done by range (-a,a) or by index {i,j}. It indexes all the eigenvalues from the most negative (1) to the largest positive (n). So, if you know all eigenvalues are +/- pairs of real numbers, and you want the 1st positive only, the range should be {int((n+2)/2), int((n+2)/2)}
Echeban
Echeban
Echeban
MKL Lapack SBGVX, a disappointment
I used SBGVX because it can solve for "selected" eigenvalues/modes (both positive and negative), thinking it would be efficient, but it is extremely slow when compared with Bathe's subspace iteration eigensolver, which unfortunately can solve only for positive eigenvalues. I need only the smallest positive eigenvalue and its mode.
I am trying to solve the problem (K - e * M) u = 0 with M not +definite, and A that is +definite. Since SBGVX needs the second matrix to be +definite, I multiply by -1/e and rearrange it as (M - e' * K) u = 0, then look for the highest e', which is positive, to then compute the lowest positive eigenvalue e=1/e' . It works, but it is very slow.
Does anyone know how to modify Bathe's subspace iteration eigensolver to compute the highest eigenvalue instead of the smaller?
Or, how can I transform (K - e * M) u = 0 to solve for eigenvalues e^2 instead of e? so I can use Bathe's solver to find the smallest e. Bathe's solver crashes trying to solve for the smallest e when the problem has negative eigenvalues.
Echeban
Re: Eigenvalue solvers -> Computational Science Stack Exchange ?
The solution is not obvious but you can try to query a larger sample of experts at the Computational Science Stack Exchange
http://scicomp.stackexchange.com/
In fact, I think most questions on iMechanica will get a better response if they are posed on that forum.
-- Biswajit