how to extract a subvector?

Yujie recrusader at gmail.com
Fri Jan 2 22:20:56 CST 2009


Dear Dave:

thank you very much for your help :).

Regards,
Yujie

On Fri, Jan 2, 2009 at 8:13 PM, Dave May <dave.mayhem23 at gmail.com> wrote:

> Your ix array looks fine.
>
> If you are happy ordering the sub vector as you've indicated, just pass in
> PETSC_NULL for iy when you define the VecScatter. This will indicate to just
> insert/add the entries for the sub vector in order from lowest global index
> largest global index.
>
> Cheers,
>   Dave
>
>
>
> On Sat, Jan 3, 2009 at 3:06 PM, Yujie <recrusader at gmail.com> wrote:
>
>> Dear Matthew:
>>
>> Assuming the parent vector is 0-9 and there are 3 processes (0,1,2; 3,4,5;
>> 6,7,8,9),
>> Now the subvector contains 2; 4; 8, 9.
>> I should create "ix" in 3 processores with MPI_COMM using arraies {2},
>> {4}, {8,9} respectively?
>> create "iy" using arraies {0},{1},{2,3} respectively?
>> If it is, I think it is a little difficult to get "iy". Since the user
>> needs to communicate between processors to confirm the global position of
>> the local subvector. thanks  a lot.
>>
>> Regards,
>> Yujie
>>
>>
>> On Fri, Jan 2, 2009 at 6:19 PM, Matthew Knepley <knepley at gmail.com>wrote:
>>
>>> No, you use the global indices ONLY for the values needed on this
>>> processor. I would
>>> also note that there is an extensive discussion of this IN the manual.
>>>
>>>    Matt
>>>
>>>
>>> On Fri, Jan 2, 2009 at 7:31 PM, Yujie <recrusader at gmail.com> wrote:
>>>
>>>> You mean I need to let all processes have a copy of the whole global
>>>> index and to use this function? thanks
>>>>
>>>>
>>>> On Fri, Jan 2, 2009 at 5:15 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>>>>
>>>>>
>>>>>   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
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> What most experimenters take for granted before they begin their
>>> experiments is infinitely more interesting than any results to which their
>>> experiments lead.
>>> -- Norbert Wiener
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20090102/b53895fa/attachment.htm>


More information about the petsc-users mailing list