On Feb 21, 2013, at 1:39 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:

> 
> On Thu, Feb 21, 2013 at 1:31 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> I don't understand.  There is a DMGlobalToLocalBegin/End() which includes
> 
>   } else {
>     ierr = (*dm->ops->globaltolocalbegin)(dm,g,mode == INSERT_ALL_VALUES ? 
> INSERT_VALUES : (mode == ADD_ALL_VALUES ? ADD_VALUES : mode),l);CHKERRQ(ierr);
>   }
> 
>  For Shell, Richard should be able to provide his own begin/end functions. 
> Which in his case he is already calling the VecScatterBegin/End() directly in 
> his code so he should just be able to keep the scatter context he is already 
> creating and use it in shell.  No reason to mess with sections or SF, he 
> already has the scatter and just needs to get it into the DMShell and shell 
> should have it as a matter of course. Just because everyone was to lazy to 
> add DMSetGlobalToLocalBegin/End() doesn't mean it should exist. Rich can add 
> it himself trivially and then use (even from Fortran).
> 
> 
> Yes, if he has VecScatters already that he wants to reuse, this is a fine 
> option. I proposed this interface earlier in this thread.
> 
> DMShellSetGlobalToLocal(DM dm,PetscErrorCode (*begin)(DM,Vec,InsertMode,
> Vec),PetscErrorCode (*end)(DM,Vec,InsertMode,Vec));

   Ok, Richard should add this and then end of conversation. 

   Barry

> 

Reply via email to