how to extract a subvector?

Barry Smith bsmith at mcs.anl.gov
Fri Jan 2 19:15:14 CST 2009


    The ix and iy are always global indices based on where the vector  
lives.

    If you are going from a parallel to parallel vector then both  
indices are "global"

   Barry

On Jan 2, 2009, at 2:21 PM, Yujie wrote:

> 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.
>
> Regards,
>
> Yujie
>
>
> On Fri, Jan 2, 2009 at 11:46 AM, Barry Smith <bsmith at mcs.anl.gov>  
> 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
>
>
>




More information about the petsc-users mailing list