<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Pierre,<div dir="auto" class=""><br class=""></div><div dir="auto" class="">If you have access to the indices used to create the "unblocked" vecscatter, you can then call ISCreateBlock and obtain the vecscatter you want.</div><div dir="auto" class=""><br class=""></div><div dir="auto" class="">To obtain the garray,   <span style="font-family: Menlo; font-size: 14px; background-color: rgb(255, 255, 255);" class="">MatMPIAIJGetSeqAIJ</span></div><div dir="auto" class=""><span style="font-family: Menlo; font-size: 14px; background-color: rgb(255, 255, 255);" class=""><br class=""></span></div><div><blockquote type="cite" class=""><div class="">On Nov 25, 2017, at 9:26 PM, Pierre Jolivet <<a href="mailto:pierre.jolivet@enseeiht.fr" class="">pierre.jolivet@enseeiht.fr</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">OK, so I guess I need to tinker around with VecScatterCreate.<div class="">As a follow-up question, is there an easy way to get the “garray” from <a href="http://www.mcs.anl.gov/petsc/petsc-current/src/mat/impls/aij/mpi/mmaij.c.html#line105" class="">http://www.mcs.anl.gov/petsc/petsc-current/src/mat/impls/aij/mpi/mmaij.c.html#line105</a> to create the IS I need to feed to VecScatterCreate (after resizing by multiplying its size by bs and by shifting/inserting the proper indices)?</div><div class="">Basically, I want to create the VecScatter for doing MatMult with a MATSHELL similar to a MATMPIBAIJ, and I want to re-use the information generated by the MatSetUpMultiply_MPIAIJ from a previously set up MATMPIAIJ with the same sparsity pattern.</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Pierre<br class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On 25 Nov 2017, at 4:43 PM, Smith, Barry F. <<a href="mailto:bsmith@mcs.anl.gov" class="">bsmith@mcs.anl.gov</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><br class="">  Pierre,<br class=""><br class="">    There is not. The block size is baked directly into the scatter data structure so not trivial to change in a copy.<br class=""><br class="">  Barry<br class=""><br class=""><br class=""><blockquote type="cite" class="">On Nov 25, 2017, at 7:41 AM, Pierre Jolivet <<a href="mailto:pierre.jolivet@enseeiht.fr" class="">pierre.jolivet@enseeiht.fr</a>> wrote:<br class=""><br class="">Hello,<br class="">Given a VecScatter inctx that operates on vectors x and y, I’d like to create a VecScatter inctx_bs with the same pattern, but that operators on vectors x_bs and y_bs with different block sizes than the original x and y (and that are thus of sizes n * bs).<br class="">Is there an easy way to do this (I’m a VecScatter noob, sorry in advance if this is trivial)?<br class=""><br class="">Thank you,<br class="">Pierre<br class=""></blockquote><br class=""></div></div></blockquote></div><br class=""></div></div></div></blockquote></div><br class=""></body></html>