Hi, I hope everyone is well.

I have a MPI vector, I selected some elements of this vector and for some
processes there is not selected elements (I stored the indices elements
into an array). So, I wan to to create a MPI vector using these selected
elements, the selected elements must be fully distributed in a MPI vector,
but I do not figure out how to do it properly.

If I use VecGetSubVector, it creates a MPI vector, but in those processes
where there is not selected elements, the subvector portion is empty, this
means that the resultant vector is unbalanced.

If I use:

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);

The vector is still unbalanced.

Any suggestion?

Kind regards.

Reply via email to