[petsc-users] VecScatter Question

Satish Balay balay at mcs.anl.gov
Thu Feb 9 17:17:06 CST 2012


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
> 



More information about the petsc-users mailing list