- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi, I am trying to compute the inverse of a sparse matrix. I saw in the pardiso website that manipulating certain parameters may result in computing the inverse of selected rows and columns of the matrix.

Does anyone know if intel MKL pardiso has this functionality and if so any sample code for the same ?

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Yes, it is possible to compute the inverse, but it may be unwise to do so. What do you want to do with the inverse? How big is the matrix? Is it sparse? What other properties of the matrix do you know in advance?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Thank you for your response. Here is all the details :

1) Its a stiffness matrix obtained from FEM Simulation. Its NxN sparse symmetric positive definite where N can be in the range 150k - 200k,

2) I don't need the whole inverse. I only need specific rows and columns (about 100 of them say). That is the reason I asked for selective row columns of inverse.

Please let me know if you need anymore information.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

In #1 you wrote "the inverse of selected rows and columns of the matrix", which has no meaning. In #3, you wrote "I don't need the whole inverse. I only need specific rows and columns". What I wish to know is the following: Suppose you are able to obtain those specific rows and columns of the inverse matrix. What will you do with those rows and columns?

Because Pardiso operates in several phases and the user can run these phases with a degree of control on what gets done, it is important to know the final objective. That is why I ask.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi,

Just try to implement following trick:

1.set iparm[30] to 1 //partial solving support

2. set perm to 0 for all elements except rows/columns that construct your partial matrix - these elements set to 1.

3. set nrhs to number of size of your partial matrix and organize in this rhs unit matrix:

0 0 0

0 0 0

1 0 0

0 1 0

0 0 1

- example for whole matrix of size 5 and selected inverse need to be computed for row 3,4, 5

4. Call MKL pardiso phase 13. On exit in solution vector you obtain searched part of inverse matrix.

Thanks,

Alex

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi I am sorry for the confusion on the 1st post. I rechecked it and it seems my hurry got the better of me.

I want what is mentioned in the reply. That is selected rows and columns of the inverse of a sparse matrix. If any admin can modify my original post I would be extremely grateful since I don't see that option.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi,

Have you try approach that I've proposed?

Thanks,

Alex

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page