how to extract a subvector?

Yujie recrusader at
Fri Jan 2 14:21:35 CST 2009

Dear Barry:

I have a new question about the parameter "iy"(new index set of subvector).
To parallel vector, how to provide "ix" and "iy"?

Just providing the local index subset for "ix" and "iy"? if it is, it is a
little difficult to let the local vector know its global position in the new
subvector? If the user needs to provide the global position of local vector
for "iy". some MPI communication should be needed, it looks like not a good
method. In exacting submatrix, the function hides this problem. could you
give me any comments? thanks a lot.



On Fri, Jan 2, 2009 at 11:46 AM, Barry Smith <bsmith at> wrote:

>   VecScatter is for this purpose.
>   Rational: extracting subparts of vectors for ghost points etc takes place
> many times in a simulation; maybe millions.
> Thus separating it into a set-up followed by many uses is a  worthwhile
> optimization. Extracting submatrices occur
> much less often in a simulation, maybe tens, hundreds or thousands of times
> so it is not worth the extra complexity
> of having separate set-up followed by many uses. One could argue that
> uniformity of design means we should have
> handled matrices with a MatScatter concept to parallel the Vec approach,
> but it is too late now :-).
>   Barry
> On Jan 2, 2009, at 1:41 PM, Yujie wrote:
>  Like MatGetSubMatrix(), whether is there a function to get a subvector in
>> parallel mode? I have checked some scatter functios, they don't likely work.
>> thanks a lot.
>> Regards,
>> Yujie
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the petsc-users mailing list