On Tue, 31 Aug 2010, Jed Brown wrote: >> But it would be sufficient for your case to just create ghosted >> instead of parallel vectors. We can't do that in general in >> NumericVector::build() because that doesn't have access to DofMap's >> send_list. But we could do that as an option (run-time, even - make >> it a flag in the System class) in System::add_vector() and >> *System::init(). > > I don't remember how this is done in libmesh, but it would be typical to > create a solution/residual vector from the function space (mesh), and > the overlap (distribution and ghost indices) is available in that > context.
Yes; that's the context available in the System class. However when we're just building a parallel vector, we only call NumericVector::build() with the global and local sizes, not with the entire context that exists in the caller. The best solution is to add a special case alternative that uses the ghosted version of build() for those half dozen calls, not to try and figure out how to break our own encapsulation within the non-ghosted build() call. --- Roy ------------------------------------------------------------------------------ This SF.net Dev2Dev email is sponsored by: Show off your parallel programming skills. Enter the Intel(R) Threading Challenge 2010. http://p.sf.net/sfu/intel-thread-sfd _______________________________________________ Libmesh-devel mailing list Libmesh-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-devel