[petsc-users] Custom vector owenrship ranges

Mohammad Bahaa m.bahaa.eldein at gmail.com
Tue Mar 18 08:20:36 CDT 2014


Forgive me as my expression "sum up" was misguiding or misplaced, I didn't
mean to literally sum the values in the vectors, I meant I want to put all
values from each local vector into one global vector that can be accessed
by all processes, "COMM_WORLD" communicator for instance


On Tue, Mar 18, 2014 at 3:09 PM, Matthew Knepley <knepley at gmail.com> wrote:

> On Tue, Mar 18, 2014 at 7:53 AM, Mohammad Bahaa <m.bahaa.eldein at gmail.com>wrote:
>
>> I'm using "PETSC_COMM_SELF" communicator for running n serial
>> independent processes, I need to sum up a certain vector from the n
>> processes in one vector, however, vectors involved in each process vary in
>> size, and I couldn't find any function to define custom ownership ranges,
>> so assuming I have a 4 processes run with each computing an "x" vector as
>> follows:
>>
>> 1. process (1) with x of length 51
>> 2. process (2) with x of length 49
>> 3. process (3) with x of length 52
>> 4. process (4) with x of length 48
>>
>
> Let your local length be n, so that on proc 3 n== 52. Then
>
>   VecCreate(comm, &v);
>   VecSetSizes(v, n, PETSC_DETERMINE);
>   VecSetFromOptions(v);
>   <fill up v>
>   VecSum(v, &sum);
>
> You could also make a parallel Vec from your Seq vecs:
>
>   VecGetArray(lv, &array);
>   VecCreateMPIWithArray(comm, 1, n, PETSC_DETERMINE, array, &v);
>
>   Thanks,
>
>      Matt
>
>
>> The processes sum up to 100 elements, when I define a vector "x_all" of
>> size "100" with "PETSC_COMM_WORLD" communicator, the ownership ranges
>> are equal, which isn't the case, how to customize them ?
>>
>> --
>> Mohamamd Bahaa ElDin
>>
>
>
>
> --
> 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
>



-- 
Mohamamd Bahaa ElDin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140318/a3894c50/attachment.html>


More information about the petsc-users mailing list