Question on DA's and VecScatters

Barry Smith bsmith at mcs.anl.gov
Sat Feb 16 16:10:52 CST 2008


   It most definitely matters. The VecScatterCreateToZero() simply  
concatenates
the values from all the processes together so they need to be in the  
natural
order before collecting on zero.

   Barry

BTW:  The VecView() to a binary file for DA global vectors does the  
mapping
automatically, so the file is always in the natural ordering.


On Feb 16, 2008, at 1:28 PM, Randall Mackie wrote:

> In my 3D distributed array, I created global vectors, local vectors,
> and one natural vector (because I want to access and output to a file
> some of these values).
>
> If you create a scatter context, using VecScatterCreateToZero, does
> it matter whether or not I specify a global vector or the natural  
> vector
> to create the context?
>
> In other words, does it matter in this vecscattercreate call whether  
> or not
> I use vnat (natural vector) or vsol (global vector)
>
> 	call VecScatterCreateToZero(vnat,vToZero,vseq,ierr)
>
>
> if later I make these calls:
>
>
> 	call DaGlobalToNaturalBegin(da,vsol,INSERT_VALUES,vnat,ierr)
> 	call DaGlobalToNaturalEnd(da,vsol,INSERT_VALUES,vnat,ierr)
>
> 	call VecScatterBegin(vToZero,vnat,vseq....)
> 	call VecScatterEnd(vToZero,vnat,vseq....)
>
>
> 	call VecGetArray(vseq....)
>
> Or does it keep track because it knows what type of vectors are  
> being dealt with?
>
>
> Thanks, Randy
>
>




More information about the petsc-users mailing list