On Fri, 10 Jun 2011, Derek Gaston wrote: > On Jun 10, 2011, at 9:35 AM, Roy Stogner wrote: > >> Could you identify where in your failure case the solution vector is >> getting left open? > > This happens during the call to update() in the Petsc callback to > compute the residual (and other callbacks). It's not from user code > at all. Petsc is actually giving us a vector that isn't closed.
Ah! So PetscVector::PetscVector(Vec) has been assuming _is_closed but we've been getting Vecs for which that isn't the case? > If operator= is working for you in localize() without a close() then > we should maybe think about moving this close to the PetsC > interface. I think the safe thing to do is move the close() to PetscVector::PetscVector(Vec). Really we should have done that already: even if it was a true assumption that the SNES is handing us (and in all future versions will hand us) closed vectors, we could never be sure that user code would always do the same. David, would you try adding this->close() before line 695 of petsc_vector.h and see if that solves the problem for you? Thanks, --- Roy ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev _______________________________________________ Libmesh-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-devel
