[petsc-users] VecScatter Question

Mohammad Mirzadeh mirzadeh at gmail.com
Thu Feb 9 17:29:16 CST 2012


So this actually means it somehow matches the local indecies? What i mean
by that is,

y[ iy[i] ] = x[ ix[i] ].

Is that why ix and iy should have the same size?

Mohammad

On Thu, Feb 9, 2012 at 3:17 PM, Satish Balay <balay at mcs.anl.gov> wrote:

> On Thu, 9 Feb 2012, Mohammad Mirzadeh wrote:
>
> > Hi guys,
> >
> > I'm just wondering if I understand how the VecScatter works. Considering
> > (petsc 3.2-p6 manual page 53):
> >
> > VecScatterCreate(Vec x,IS ix,Vec y,IS iy,VecScatter *ctx);
> > VecScatterBegin(VecScatter ctx,Vec x,Vec y,INSERT VALUES,SCATTER
> FORWARD);
> > VecScatterEnd(VecScatter ctx,Vec x,Vec y,INSERT VALUES,SCATTER FORWARD);
> > VecScatterDestroy(VecScatter *ctx);
> >
> > is the following statement correct?
> >
> > VecScatter looks into "ix" and "iy" index sets and `matches' the global
> > indecies between the two to copy data from vector "x" to vector "y". For
> > example, if "ix" maps local index "1" to global index "10", VecScatter
> > looks inside "iy" to find a local index that is mapped to global index
> "10"
> > and sends the data accordingly to the correct processor.
>
> nope - it means - if you have x[10],y[10]:
>
> ix = {1,5,9}
> iy = {0,2,1}
>
>
> Then you get:
> y[0] = x[1]
> y[2] = x[5]
> y[1] = x[9]
>
> [all numbers above are global indices]
>
> Satish
>
> >
> > Thanks,
> > Mohammad
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120209/4e53a103/attachment.htm>


More information about the petsc-users mailing list