[petsc-users] local Vec to global Vec and global 3-D array
Barry Smith
bsmith at mcs.anl.gov
Wed May 15 15:30:07 CDT 2013
On May 15, 2013, at 2:25 PM, Roc Wang <pengxwang at hotmail.com> wrote:
> Thanks, I will write the stand alone code for it. One more question about the global and local vector below.
>
> > > > > ierr = DMCreateGlobalVector(da,&gsol3d);CHKERRQ(ierr);
> > > > > ierr = DMLocalToGlobalBegin(da,x,INSERT_VALUES,gsol3d);CHKERRQ(ierr);
> > > > > ierr = DMLocalToGlobalEnd(da,x,INSERT_VALUES,gsol3d);CHKERRQ(ierr);
> > > >
In the above you are trying to scatter a local vector x to a global vector gsol3d. But x is a global vector.
>
> !*******************************
> The x from KSPGetSolution() IS a global vector, it is not a "local" vector? (It should be a typo :) )
It is a global vector.
> So Can I convert the global x to a 3d array directly? Thank.
You can convert either a global vector or a local vector to 3d array access BUT the converted global vector has NO ghost values accessible while the converted local vector has ghost points available (after the call to DMGlobalToLocalBegin/End()).
>
More information about the petsc-users
mailing list