Hello,

I'm trying to use Petsc Non-linear solver such that in Function routine I have 
access to the variables on the other cpus.
As far as I know, the Function and Jacobian routine gives the solution vectors 
as input "Locally". So when I use:

  /* Get pointers to vector data */
  ierr = VecGetArray(X,&x); CHKERRQ(ierr);
  ierr = VecGetArray(G,&g); CHKERRQ(ierr)

I will have just access to local data. 

I tried to create a ghost vector using my local data container 
(VecCreateGhostWithArray(...,&Local_Data)) and hoped that Petsc would change 
the data in data container and each time that Function routine or Hessian 
routine be called I can use my ghost vector to access the non-local data. 
However, it seems that Local_Data container do not update despite I used 
"WithArray" and assemble each time. 

Thanks
Hesam

Reply via email to