[petsc-dev] Lagging the numerical factorization for one of the fields of fieldsplit preconditioner

Barry Smith bsmith at mcs.anl.gov
Tue Mar 15 18:01:22 CDT 2011


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.




More information about the petsc-dev mailing list