Dominik,

   If you want to copy the ghost point values, which DO NO exist in the x1 and 
x2 vectors, you need to use VecCopy(xlocal1,xlocal2) where xlocal1 and xlocal2 
are obtained with VecGetLocalForm() on x1 and x2.

   The rational is that x1 and x2 are just regular parallel vectors, copying 
their entries is just copying their entries, not the "extra" slots that are 
ONLY available via the local form.

    You are mis-thinking about how "ghosted" vectors work.


   Barry

  
On Apr 22, 2012, at 10:35 AM, Dominik Szczerba wrote:

> I do
> 
> VecGhostUpdateBegin(x1, INSERT_VALUES, SCATTER_FORWARD);
> VecGhostUpdateEnd(x1, INSERT_VALUES, SCATTER_FORWARD);
> 
> then
> 
> VecCopy(x1,x2)
> 
> to find that x2 does not have correct ghost values and I need to explicitly 
> call
> 
> VecGhostUpdateBegin(x2, INSERT_VALUES, SCATTER_FORWARD);
> VecGhostUpdateEnd(x2, INSERT_VALUES, SCATTER_FORWARD);
> 
> Is there a rationale for this behavior? I would suggest to add a note
> to the VecCopy man page about it.
> 
> Thanks
> Dominik

Reply via email to