On Wed, 19 May 2010, Derek Gaston wrote:

> On May 19, 2010, at 4:22 PM, Roy Stogner wrote:
>> Potential new inefficiency in rare user codes: if the user wants to
>> call his normal assembly function, but then assemble in additional
>> terms before using the result, a close() in between would be
>> unnecessary extra communications.
>
> Would this really be the case?  I thought NumericVector kept track
> of whether or not it was closed and wouldn't redo communication.

That's a really good idea for a feature to add, but that doesn't seem
to be how it works now.

> Certainly I can't imagine Petsc redoing communication if you close a
> vector twice (what would it communicate the second time?).

It would communicate the fact that there's nothing to communicate, I
think.  :-D

I don't know enough about PETSc internals, but I'd assume that, even
if processor 0 hadn't added anything to the vector since the last
VecAssembly, it would still have to check to make sure its neighboring
processors hadn't either.
---
Roy

------------------------------------------------------------------------------

_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to