From: Rahul S. <rah...@gm...> - 2009-12-03 00:35:13
|
Hi Roy: Thanks for the response. I too use the PARALLEL type for the most part. However, I also need access to the ghosts and I'm afraid I'm interested in more than just a localize to a GHOSTED vector. I guess I'm trying to understand the parallel data layout. I looked at how the system.rhs and system.solution vectors were created. It looks like they are created using Petsc's VecCreateMPI function. So, can I assume that the following holds: 1. Each processor owns a consecutive set of global dofs. 2. The first dof owned by any processor is equal to 1 more than the last dof owned by the previous processor. Thanks. Regards, Rahul On Wed, Dec 2, 2009 at 2:54 PM, Roy Stogner <roy...@ic...> wrote: > > On Mon, 30 Nov 2009, Rahul Sampath wrote: > >> Could someone please tell me how to access the ghost values (i.e. dof >> values shared between processors) from a NumericVector sharing the >> same parallel layout as the system.rhs vector. > > I'm afraid the default type for those vectors, PARALLEL, doesn't have > any local storage for ghost values. You'll either need to use a > SERIAL or GHOSTED type vector instead, or localize your vector into > one of those types. > > Hmm... I just noticed that everything we create with > System::add_vector() gets created with PARALLEL type. That's exactly > what I want in my applications, but I see now that it might be > suboptimal for other people. You can reinitialize one of those > vectors as SERIAL or GHOSTED and the new type will be preserved > through projections, but should we add an optional argument for people > to add non-PARALLEL vectors in the first place? > --- > Roy > |