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

Suppose that I need to solve a linear system in this form, Ax=b, in many iterations. In each iteration, I get a new matrix A. However, the pattern of the matrix is the same. That is, the indices of the nonzeros in A are the same throughout the iterations, but the values of the nonzeros change throughout the iterations.

I don't want to go from phase 1 to phase 3 every time. Since LU factorization doesn't depend entirely on the values of the nonzeros, can I just run phases 1 and 2 just once and in the iterations run phase 3 for different IA, JA, and A vectors, so that I don't have to factorize every time?

Link Copied

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

Hello,

I think what you need is a low rank update - it allows to use factorization for matrix A1 when factorizing A2 if both matrices have the same pattern of nonzeroes.

To use the low rank update feature, set `iparm(39)` `= 1` and ` iparm(24) = 10`. And additionally supply an array that lists the values in

`A2`that are different from

`A1`using the perm parameter.

More information here.

Best regards,

Irina

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

Thank you Irina.

Should I release memory each time (i.e. using Phase = -1)? As you know, I'm solving a linear system in many iterations. If I don't release memory, will my code accumulate memory usage unnecessarily?

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