Boost logo

Ublas :

From: Karl Meerbergen (Karl.Meerbergen_at_[hidden])
Date: 2006-02-27 02:43:50

Hi Dima,

If you want all eigenvalues, I doubt that ARPACK is the best software. I
strongly believe you better use LAPACK or another package using the QR
method (or QZ for generalized problems). You first have to store your
matrices in dense format, which may look a waste of memory. But, when
you compute all eigenvalues by ARPACK, two large dense matrices are also
stored (plus some additional auxiliary matrices, which are also large).

For using LAPACK, there is no a binding for generalized problems (ggev),
only for standard ones (geev).

If you want the eigenvalues with smallest magnitude, spectral
transformation is far superior than not using a transformation.

Well, this is just my advise



Dima Sorkin wrote:

>Quoting Karl Meerbergen :
>>What surprises me a bit is that you compute the eigenvalues of a generalized
>>eigenvalue problem from M^{-1} K. Does M have the same sparse structure as K?
>>Which eigenvalues are you looking for?
>>Usually, the spectral transformation (K-s*M)^{-1} M is used for
>>eigencomputations: it is more powerful than M^{-1} K for many applications
>>including structures, acoustics, chemical reactions ...
>>>I actually solve the generalized
>>>eigen problem
>>> M*v*s = K*v
>>>in the form
>>> (L^-1)*K*(U^-1)*x=x*s
>>>where L*U = M (with umfpack)
>>>x = U*v
>>>"s" is the eigenvalue.
> 1) I don't compute A = (L^-1)*K*(U^-1)
> explicitly, as it is dense. K,L,U are sparse compressed.
> I store a matrix K. L and U are stored as umfpack's
> "opaque" objects (See documentation for umfpack and
> umfpack's bindings). In a simplified
> form, each time I have to multiply by A, I actually
> "triangularly solve" with U, then mult by A, then
> again "triangularly solve" with L.
> 2) I have choosen umfpack for inversion of M just because
> I am used to it. Any LU or other solver can be used in
> similar way. It should be easy to rewrite my driver
> for ARPACK, as it is not too smart :) .
> 3) I don't use spectral transform, as I usually want all
> eigenvalues, or some big amount of eigenvalues with
> smallest magnitude. I don't know how to use spectral
> transform in such case.
> 4) ARPACK's performance:I payed attention that for matrices
> I work with (300x300 up to 3500x3500 ) it is much more quick
> to compute all eigenvalues, than some subset of them.
> Dima.
>ublas mailing list

Look at our unique training program and
Register on-line at
Karl Meerbergen
Free Field Technologies
Axis Park Louvain-la-Neuve
rue Emile Francqui, 1
B-1435 Mont-Saint Guibert - BELGIUM
Company Phone:  +32 10 45 12 26
Company Fax:    +32 10 45 46 26
Mobile Phone:   +32 474 26 66 59
Home Phone:     +32 2 306 38 10