MATSHELL a bit broken...
Barry Smith
bsmith at mcs.anl.gov
Thu Oct 25 16:57:11 CDT 2007
Matt,
Because of the MatShell shift and scale being handled automatically
this affects many of the methods.
Barry
On Thu, 25 Oct 2007, Matthew Knepley wrote:
> It sounds fine. I just wonder what it is about methods like this, and whether
> we are missing some structure.
>
> Matt
>
> On 10/25/07, Barry Smith <bsmith at mcs.anl.gov> wrote:
> >
> > Yes.
> >
> > It should be handled more systematically, inside Mat_Shell
> > have an entire _MatOps table, also have a PetscBT() with one bit for
> > each operation. For methods that cannot be overloaded directly turn
> > that bit on. Now MatShellSetOperation() will check the corresponding bit
> > if it is set then put the provided function into the _MatOps table that
> > is inside the Mat_Shell. If the bit is not set then put the provided
> > function into the regular _MatOps
> >
> > Make sense? (I don't know that is why I am asking everyone).
> >
> > Barry
> >
> > Overtime we will likely find that more methods must have the bit set.
> >
> >
> > On Thu, 25 Oct 2007, Lisandro Dalcin wrote:
> >
> > > It seems MATSHELL implementation is a bit broken. If I'm not wrong, if
> > > a user set the operations MOP_ASSEMBLY_END, then the use of the
> > > automatic MatScale/MatShift would lead to unexpected result...
> > >
> > > Should this operation be managed the same way as
> > > mult/multtranspose/get diagonal currently is, that is, by backupping
> > > the user provided function pointer?
> > >
> > > BTW, sorry if I disturb you asking for making changes that seems
> > > trivial, but I really do not like to change any line of code after
> > > knowing your opinion.
> > >
> > >
> >
> >
>
>
>
More information about the petsc-dev
mailing list