OK, so I guess I need to tinker around with VecScatterCreate.
As a follow-up question, is there an easy way to get the “garray” from 
http://www.mcs.anl.gov/petsc/petsc-current/src/mat/impls/aij/mpi/mmaij.c.html#line105
 
<http://www.mcs.anl.gov/petsc/petsc-current/src/mat/impls/aij/mpi/mmaij.c.html#line105>
 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)?
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.

Thanks,
Pierre

> On 25 Nov 2017, at 4:43 PM, Smith, Barry F. <[email protected]> wrote:
> 
> 
>  Pierre,
> 
>    There is not. The block size is baked directly into the scatter data 
> structure so not trivial to change in a copy.
> 
>  Barry
> 
> 
>> On Nov 25, 2017, at 7:41 AM, Pierre Jolivet <[email protected]> 
>> wrote:
>> 
>> Hello,
>> 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).
>> Is there an easy way to do this (I’m a VecScatter noob, sorry in advance if 
>> this is trivial)?
>> 
>> Thank you,
>> Pierre
> 

Reply via email to