On Fri, Jul 28, 2017 at 12:02 PM, Stefano Zampini <stefano.zamp...@gmail.com > wrote:
> MatShift, MatZeroEntries…. there are for sure others that modify the > entries. I would suggest you to quickly go over the online Mat pages. > > Just a curiosity: Why the inspector should care about the magnitude of the > entries? > If it’s clear in the code how to change the entry of the CSR that the > inspector uses (not the CSR itself, just the values), then the missing > functions can be fixed later. > The inspector shouldn't care, of course, at all about the magnitude of the entries since it is only looking at the sparsity pattern. Unfortunately, the the MKL sparse inspector-executor routines store things in an internal representation that I cannot modify; I just have to tell MKL to rebuild the data structure. It doesn't use the A,I,J arrays that PETSc has after these are used by mkl_sparse_optimize(). --Richard > > > > On Jul 28, 2017, at 9:58 PM, Barry Smith <bsm...@mcs.anl.gov> wrote: > > > > > >> On Jul 28, 2017, at 12:50 PM, Richard Tran Mills <rtmi...@anl.gov> > wrote: > >> > >> Folks, > >> > >> I've been debugging my rmills/add-aijmkl branch, and I found that one > bug I had was related to what happens when I am using the MKL sparse > inspector-executor routines inside an AIJMKL matrix and then MatScale is > called on the matrix. MatScale modifies the entries of the matrix, thereby > invalidating the internal representation that the MKL routines use. > Currently, I've set things up so that the MKL representation is only > updated in MatAssemblyEnd_SeqAIJMKL and MatDuplicate_SeqAIJMKL. Looks like > I also need a MatScale_SeqAIJMKL that will update the MKL representation > when needed. Are there other routines that may modify the matrix entries > without invoking MatAssemblyEnd? > > > > There is no general "rule"; generally any method that could result in > a different nonzero pattern results in calls to the MatAssemblyEnd... but > otherwise they likely do not call it. MatDiagonalScale() is a candidate. > > > > Barry > > > >> > >> --Richard > > > >