Dear PETSc developers, I have a matrix of the type MATMPIAIJ from which I want to extract small sub-matrices and sub-vectors (number of rows from 1 to 50 maximum) several times. This is a very fundamental step of a preconditioner that I'm writing. After that, I want to solve these sub-systems locally.
In my current implementation I use MatGetSubMatrices with MAT_INITIAL_MATRIX to extract the sub-matrices and MatGetRow plus some other artifacts to extract the sub-vectors. However, I see that this procedure is too costly, once it creates and destroys the output variables each time they are called. I thought about using the MAT_REUSE flag, but I can't since the nonzero pattern of the local sub-matrix may change from call to call. Can you give me some hint on how to do this task efficiently? I appreciate your help! -- Victor A. P. Magri - PhD student Dept. of Civil, Environmental and Architectural Eng. University of Padova Via Marzolo, 9 - 35131 Padova, Italy
