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

Solver for special structured linear system of equations

NilsA
Beginner
904 Views

I have to solve a matrix of the following special structure:

 

|                          |              |   |    |    |   |
|                          |              |   |    |    |   |
|          A              |     B      |   |    |    |   |
|    N1 x N1        |N1xN2|    |X | = |F |
|_____________|______|    |    |     |   |
|          C                            |    |    |     |   |
|    N2 x NEQ                   |    |    |     |   |

 

whereas N1 >> N2 and A is a band matrix. The complete matrix is not symmetric and not necessarily positiv definite. Is there linear solver which is more suitable for this problem then  dgesv from LAPACK, which solves a general NxN-matrix. LAPACK: dgesv (netlib.org)

 

 

 

 

 

0 Kudos
5 Replies
VidyalathaB_Intel
Moderator
876 Views

Hi Nils,


Thanks for reaching out to us.

Since in your case A is a band matrix could you please let us know if using LAPACKE_dgbsv from Intel oneMKL matches your use case?

You can refer to the below link for more details (maybe you can also refer to other sections as well in the manual)

https://www.intel.com/content/www/us/en/develop/documentation/onemkl-developer-reference-c/top/lapack-routines/lapack-linear-equation-routines/lapack-linear-equation-driver-routines/gbsv.html

You can also take help from the oneMKL LAPACK Function Finding Advisor which helps in recommending the routines for your particular use case.

https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-function-finding-advisor.html#gs.32hv75

Kindly let us know if that doesn't match your use case.


Regards,

Vidya.


0 Kudos
NilsA
Beginner
865 Views

Thanks for your reply, but unfortanetly gbsv does not fit, since in my "A", which is banded, is only a submatrix of the global matrix. I still have B and C, which destroy the banded structure. You obtain a matrix structure like this for example using Lagrangian multipliers connected to multiple nodes in a finite element simulation. 

But thanks for your link to the function finding advisor. This might be helpful in future situations.

 

0 Kudos
mecej4
Honored Contributor III
851 Views

There is not enough to indicate that there is some property of your matrix that enables a divide-and-conquer approach. If, however, you break your C block into a N2 X N1 block C1 and a N2 X N2 block D, i.e., [C] = [C1 D], and D is diagonal or tridiagonal, then it may be worthwhile to see if you can use the Schur-complement approach.

The Schur-complement approach does have at least one disadvantage, in that the Schur Complement may be more dense than the block A. Some PDE solvers, such as the HST3D of USGS, use the Schur Complement in combination with an iterative solver such as GMRES, QMR, etc. It can be error-prone and tricky to infer the sparse matrix representation of the Schur Complement from the sparse matrix representation of the original matrix.

0 Kudos
VidyalathaB_Intel
Moderator
799 Views

Hi Nils,


Reminder:

Could you please let us know if the information provided by mecej4 helps? If yes, please let us know if we could close this thread from our end.


Regards,

Vidya.


0 Kudos
VidyalathaB_Intel
Moderator
775 Views

Hi Nils,


As we haven't heard back from you we are closing this thread. Please post a new question if you need any additional assistance from Intel as this thread will no longer be monitored.


Regards,

Vidya.


0 Kudos
Reply