Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
7057 Discussions

## Sparse Iteartive solvers with Complex numbers

Beginner
972 Views
Hi all,

I am trying to use iterative solvers for sparse systems, such as subroutines ILUT for preconditioning ang DFGMRES for the iteration but apparently these work with DOUBLE PRECISION but not COMPLEX numbers.

Do you have any suggestions how can proceed further?
Thank you very much in advance.

Hakan
4 Replies
Moderator
972 Views
Hi Hakan,
Currently MKL doesnt support RSI solvers for complex data. Our suggestion - you may try to use direct solver for complex data types.
--Gennady
Beginner
972 Views
Hi Gennady,

Well actually my program works with PARDISO, but I need to solve larger scale problems and I thought iterative solvers can handle more. Am I true with this thought? And finally would you recommend 'SPARSKIT' library to import into the Intel Fortran Complier?

Thank you very much.

Hakan
Employee
972 Views
Hakan,

Formally speaking, support of complex data is not crucial. For example, if you need to solve a system of linear equations Ax=f with complex matrix A=B+i*C and complex right hand side vector f=g+i*h assuming the solutionhas the form x=y+i*z you can get a system with real coefficient matrix and right hand side:
(B -C) (y) =(g)
(C B) (z) (h)
The system is nothing esle but equations you obtain when equate separately real and imaginary part of the original system. The coefficient matrix orderand the rhs vector length are doubled. This approach might benotthe most efficient from the performance point of view and requires more memory but this is another story.

With best regards,
Victor

Beginner
972 Views
Hello again,

Thank you for the answer, this will help I think. But before trying that I want to ask something. I have got the latest version of IMSL library which has some improved mathematical functions. Do you reckon usage of IMSL would make it possible to use GMRES with complex numbers?

Thank you in advance,
Hakan