I would like to try to use FEAST to solve the generalized eigenproblem (A-sB)x = 0, where A is symmetric, positive-definite, and B is symmetric (actually, it's a diagonal matrix), positive semi-definite.
I'm all setup to use my own storage for A and B, and my own tools to factorize the shifted matrix A-sB. However - and this may be a huge issue - my tools only allow me to factorize a real matrix - not a complex one.
If I understand FEAST correctly, even for the particular problem I have, I will be asked to factorize a shifted matrix where "s" is a complex variable.
Before I embark on this test, could somebody confirm for me that this is indeed the case? I ask because my matrices are huge (N > 30M), and a sparse factorization of the real matrix is already a stretch, but one I'm willing to put up with. But to double that storage because the matrix is complex will make the use of FEAST prohibitive for me.
This is indeed the case. Extended Eigensolver algorithm requires factorization of complex matrix on each step. Furthermore, this functionality supports only strictly positive-definite matrix B.
If your matrix B is strictly positive defininite we could advice you to use PARDISO direct solver for factorization that can deal with problems of your size and operates with csr, bsr storage formats. You can find feast_rci examples that use PARDISO for factorization included in MKL.
Thanks for the quick response. I understand I can use Pardiso, but I'm already setup with another linear solver and was trying to avoid it.
I also don't know whether I should start a new thread, but I took a small vibration problem where the B matrix is indeed semi-definite and tried using FEAST just to learn the interface.
I noticed that it found more eigenvalues than I expected in the interval I requested. Given that I know the answer to this problem, I could verify it. Would this be the expected behavior for B being positive, semi-definite?