On Wed 2009-02-25 11:18, Tim Kroeger wrote: > On Tue, 24 Feb 2009, Roy Stogner wrote: > > Besides, this can't be the right fix, can it? Why should any parallel > > communication be required to copy one consistent ghosted vector to > > another? It seems as if VecCopy is simply failing to copy the whole > > vec, and I don't like not understanding why. > > Good question. Perhaps one should apply VecCopy to the local form > (obtained via VecGhostGetLocalForm())? Also, I wonder whether other > methods, such as VecScale(), might possibly suffer from similar > problems?
Roy, are you familiar with the distinction between the local form and the global form? One chunk of memory is allocated for the owned portion of the global degrees of freedom plus the ghosts. The local form is a sequential vector (it's doesn't know anything about other processes, operations on it do not need to be called collectively) which includes all the ghosted values. The global form is a parallel vector (operations need to be called collectively since it uses a parallel communicator) that only uses the part of the vector corresponding to owned degrees of freedom. This means that operations on the parallel vector behave just like an unghosted parallel vector, they don't touch the ghost degrees of freedom. Operations on the local form will of course involve the ghosted values, it doesn't even know the difference between owned and ghosted dofs. The VecGhost* functions are the only ones that understand this relationship. I hope that helps. Jed
pgps5bebJzyuc.pgp
Description: PGP signature
------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H
_______________________________________________ Libmesh-devel mailing list Libmesh-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-devel