Hi Barry, Thanks for your answer. I'll look into those functions, but instead of copying, do you know if there is a way to give the address of the arrays? I want to use the PETSc parallel solver capabilities, but I don't want to copy something that I already have. Now, I'm not familiar with the MatCreateShell() function that you mentioned. Could you expand on this?
Thanks again Alejandro On Mar 21, 2011, at 2:14 PM, Barry Smith wrote: > > On Mar 21, 2011, at 6:43 AM, Alejandro Marcos Arag?n wrote: > >> Hi everyone, >> >> I'm new to the list and to PETSc. I was wondering if this is possible: in my >> code I have my own sparse matrix data structure, so instead of creating a >> sparse matrix from PETSc and copying all the elements, I was wondering if >> there is a way to specify the storage of the elements. My custom data >> structure is a three-array compressed row format (or compressed column >> storage). > > If it truly is CSR you an use MatCreateSeqAIJWithArrays() or > MatCreateMPIAIJWithArrays(). Otherwise you can use MatCreateShell() and > provide your own function operations for MatMult() and whatever you will > need. > > Generally keeping your own sparse matrix data structure is overrated, yes > you may save a little time and a little memory but then you use all the > flexibility and power of PETSc sparse matrices; why bother with PETSc in that > case. > > Barry > >> >> Thank you, >> >> Alejandro M. Arag?n, Ph.D. >
