[petsc-dev] Bug introduced in MatGetSubmatrices()

Barry Smith bsmith at mcs.anl.gov
Fri Jan 20 11:55:51 CST 2017


> On Jan 20, 2017, at 11:49 AM, Matthew Knepley <knepley at gmail.com> wrote:
> 
> On Fri, Jan 20, 2017 at 10:49 AM, Hong <hzhang at mcs.anl.gov> wrote:
> Matt,
> By default, the flag C->submat_singleis = false. 
> In PCSetUp_ASM(), we set it as 'true' to use MatGetSubMatrices_MPIAIJ_SingleIS().
> 
> Can you check the value of this flag in your case?
> 
> The problem is the following:
> 
>   1) We use MatGetSubMatrices() to extract small matrices in order to form a preconditioner
> 
>   2) We do this at each Newton iteration
> 
>   3) We use ASM as a preconditioner for the eventual Newton solve
> 
>   4) The second time we call MatGetSubMatrices(), it has this flag set, even though we are using multiple ISes
> 
> Solution: ALSO check that the user is in fact passing a single IS.
> 
    This requires a communication. I am confused, is the number of IS changing each time? If not why is the flag set? 

   Barry

>   Matt
>  
> Hong
> 
> It comes from here:
> 
>   https://bitbucket.org/petsc/petsc/commits/c10200c1442b553b7ad65c70101560db4fa22e78
> 
> If we ask for more than 1 matrix, it dispatches to
> 
>   MatGetSubMatrices_MPIAIJ_SingleIS()
> 
> but then fails here
> 
>   https://bitbucket.org/petsc/petsc/annotate/2e559809f9aee9c95ee79eb0939630cfe5502c8d/src/mat/impls/aij/mpi/mpiov.c?at=master&fileviewer=file-view-default#mpiov.c-1306
> 
> because ismax > 1. I think the ismax check needs to move up to here
> 
>   https://bitbucket.org/petsc/petsc/annotate/2e559809f9aee9c95ee79eb0939630cfe5502c8d/src/mat/impls/aij/mpi/mpiov.c?at=master&fileviewer=file-view-default#mpiov.c-2012
> 
> but I don't know for sure. Please fix this since it is breaking PyLith.
> 
>   Matt
> 
> -- 
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener
> 
> 
> 
> 
> 
> -- 
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener




More information about the petsc-dev mailing list