> 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