On Mar 15, 2011, at 5:52 PM, Jed Brown wrote:

> On Tue, Mar 15, 2011 at 23:43, Barry Smith <bsmith at mcs.anl.gov> wrote:
> I'm just asking that all matrix classes be able to propagate this information 
> NOT just MatNest().
> 
> Okay, great. My point was just that MatNest pretty much already does this 
> [1], with MatAIJ, you need some new API to declare part of the matrix as 
> unchanged (otherwise I don't know how to efficiently determine it).

  When a submatrix set is obtained from an AIJ it could mark the ranges the 
submatrices, row and column, then when MatSetValues is called in the future on 
the big matrix it could check what box the values are being put in and any box 
that has none put in is unchanged. For this to be efficient the submatrices 
have to be truly submatrices not just logically submatrix. 

  But we should muck around on this a bit more before we figure out how we want 
to handle the propagation of this kind of information efficiently and 
automatically.

  Barry



> 
> [1] MatAssemblyEnd_Nest() still calls MatAssemblyEnd() on submatrices. It 
> could keep track of whether submatrices have been "gotten" (if not, they 
> can't have been modified) or (better) submatrices could increment state in 
> MatAssemblyEnd() only when they have been modified on some process.


Reply via email to