[petsc-dev] who broke petsc-dev

Barry Smith bsmith at mcs.anl.gov
Sun Nov 13 17:13:22 CST 2011


On Nov 13, 2011, at 5:05 PM, Matthew Knepley wrote:

> On Sun, Nov 13, 2011 at 10:52 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> 
>   The simplest fix is to only do this null space business if Amat exists.
> 
> I did this.
>  
>   But keep in mind that KSP and SNES now have two modes of operation, the second uses the DM to provide many of the items they need at setup time. This is different then the classic KSP and SNES where the only way to do things were with KSPSetOperators() and SNESSetFunction/Jacobian. This is why Jed is indicating that it may be too soon at this stage to muck with the null space business.
> 
> This is bad. Things are becoming unacceptably complicated. I can't trust that obvious arguments are in this function,
> and I can't trust that setup will be called since the logic is convoluted. This needs to be rethought.

  Do you want to go back to the uncomposible DMMG?    The logic is not all that convoluted. Basically at setup time for any thing that has not be previously provided KSP and SNES try to use DM to provide them.  

  The alternative is to remove KSPSetOperators() and SNESSetFunction/Jacobian() and ONLY have them provided with DM.  I dislike this because it breaks our 15 year old model and all users (even the least skilled) need to deal with yet another object before they can solve the simplest thing. But I am open to other alternative designs that you might suggest.

   Barry

> 
>    Matt
>  
> 
>   Barry
> 
> 
> On Nov 13, 2011, at 4:47 PM, Matthew Knepley wrote:
> 
> > On Sun, Nov 13, 2011 at 10:47 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> >
> > On Nov 13, 2011, at 4:45 PM, Matthew Knepley wrote:
> >
> > > On Sun, Nov 13, 2011 at 10:44 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> > > On Sun, Nov 13, 2011 at 16:36, Barry Smith <bsmith at mcs.anl.gov> wrote:
> > > 1) It is legitimate to call KSPSetOperators with a null Amat so this is a bug that crashes large parts of PETSc
> > >
> > > This logic should be moved much later (like to KSPSetUp()).
> > >
> > > I disagree, since SetOperators() is where we know that the matrix is changing.
> >
> >  Yes, but the matrix may not exist.
> >
> > I have no problem fixing this, but what does that mean? I can't fix it until I understand what you are doing here.
> >
> >   Matt
> >
> > >
> > >    Matt
> > >
> > >
> > >
> > > 2) Do you really want to do this? I am not sure I like it.
> > >
> > > I think that attaching the null space to the Mat should be the preferred way to communicate it, especially in the case of a deeply nested hierarchy.
> > >
> > >
> > >
> > > --
> > > What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> > > -- Norbert Wiener
> >
> >
> >
> >
> > --
> > What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> > -- Norbert Wiener
> 
> 
> 
> 
> -- 
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener




More information about the petsc-dev mailing list