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

Reply via email to