How can I use pardiso_64 (schur complement calculation) with pardiso_export (in order to export the result as a sparse matrix)?
My issue is with the "_64" and how to handle the transfer of integer pointers between these two calls. As pardiso_export accepts MKL_INT (32-bit integer) this does not seem to be compatible.
The example here pardiso_export (intel.com) is great but only for the regular pardiso call (no _64).
Follow-up question: with iparm=1 the schur complement is outputed as a dense matrix. In this case I currently do pardiso phase=12, and then subsequently phase 331 in order to use the internal matrix arrays to compute associated reduced right-hand side matrices (loads).
It seems that phase 331 is not supported following phases 11 and 22 when iparm=-1. I just get a zero output. Can you confirm?
As the docs say, when you set iparm = 1, only the Schur complement is computed and not the factorization arrays. So it makes sense that phase 331 cannot do anything, as it would require factorization arrays. Consider switching to iparm=2.
It appears that the issue is the that perm parameter outputted for phase=12 (or 22) is unchanged (i.e. still contains 1's for the schur complement entries and otherwise 0's). So when I run phase 331 and 333 subsequently I don't have a way of looking up the internally reordered entries, it seems ...
Sorry for some delays.
For the original question: so you pass 64-bit integer arrays for the input matrix and use pardiso_64 and then you compute the Schur complement and want the Schur complement also returned for 64-bit integer arrays?
1) Because if you're fine with 32-bit integer arrays, it should work.
2) if you do want 64-bit integer arrays returned from pardiso_export and if it is critical for your application, I think there is a hack to do that but it won't be a recommended way, just a temporary workaround.
For the other questions about the Schur complement, I'll try to respond a bit later [unless someone else does that].
Thanks for your message. No, unfortunately not. I understand that "pardiso" together with "pardiso_export" works (i.e., 32-bit). But the question was about extracting the same info when using "padiso_64" and i don't see that the respose answers that question.
I suggest You submit the Feature Request "Pardiso_export_64" to the Intel Online Sevice Center. Having this API will let you an opportunity to work with the pardiso_64 routine.
Thank you for your feedback. We have provided your feedback to the relevant team. At this moment there is no visibility when it will be implemented and available for use. Please let me know if we can go ahead and close this case?
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.