On Thu, Jul 26, 2018 at 11:48 AM, Smith, Barry F. <[email protected]> wrote:
> > > > On Jul 26, 2018, at 10:34 AM, Xiangdong <[email protected]> wrote: > > > > Hello everyone, > > > > I have a question about get the sub matrix Aodd from a MPIBAIJ matrix A. > For example, if the bs=2 and the matrix size is 10x10. How can I get the > 5x5 submatrix corresponding to the odd rows and odd columns only? > > > > I tried to use the MatCreateSubMatrix, but get the error messages "Index > set does not match blocks". It seems that MatCreateSubMatrix can only > provide the whole block, instead of just a specific component of that block. > > > > Can you give me some suggestions on extracting the submatrix > corresponding to a specific component? > > Either create a AIJ matrix originally or use MatConvert to convert from > BAIJ to AIJ and then use MatCreateSubMatrix(). Note that AIJ provides a > great deal more flexibility with the utilities and solvers than BAIJ. > > I chose BAIJ because the BAIJ format will perform better than the AIJ in the Matrix-Vec multiplication. It seems that MatConvert needs additional memory space to store the converted matrix (i.e. two copies of A in different format). I may try using MatGetRow on A and MatSetValues on Aodd to create the submatrix to see how it performs. Thanks. Xiangdong > Barry > > > > > Thank you. > > > > Best, > > Xiangdong > >
