<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Pierre :</div><div class="gmail_quote">The code crashes inside</div><div class="gmail_quote">if (scall == MAT_REUSE_MATRIX) {</div><div class="gmail_quote">...</div><div class="gmail_quote">} </div><div class="gmail_quote">which assumes both original matrix and its submatrices data structures remain unchanged.</div><div class="gmail_quote">We did not anticipate the usage of looping<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
3) change the sparsity pattern of the Mat for one of the field<br>
4) do a KSPSolve<br></blockquote><div> </div><div>Can you send us a stand-alone code for this type of application.</div><div>We will investigate how to support it.</div><div><br></div><div>Hong</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I cannot change this calling sequence, because I’d like to nest 3) and 4) inside a loop.<br>
However, I end up with this error during 4):<br>
[0]PETSC ERROR: Nonconforming object sizes<br>
[0]PETSC ERROR: Cannot reuse matrix. wrong no of nonzeros<br>
[0]PETSC ERROR: Petsc Development GIT revision: v3.9-13-g05d412bc58  GIT Date: 2018-04-09 08:39:52 -0500<br>
<br>
[0]PETSC ERROR: #1 MatCreateSubMatrix_SeqAIJ() line 2330 in /Users/jolivet/Documents/<wbr>repositories/petsc/src/mat/<wbr>impls/aij/seq/aij.c<br>
[0]PETSC ERROR: #2 MatCreateSubMatrix_MPIAIJ_<wbr>SameRowColDist() line 3184 in /Users/jolivet/Documents/<wbr>repositories/petsc/src/mat/<wbr>impls/aij/mpi/mpiaij.c<br>
[0]PETSC ERROR: #3 MatCreateSubMatrix_MPIAIJ() line 3310 in /Users/jolivet/Documents/<wbr>repositories/petsc/src/mat/<wbr>impls/aij/mpi/mpiaij.c<br>
[0]PETSC ERROR: #4 MatCreateSubMatrix() line 7813 in /Users/jolivet/Documents/<wbr>repositories/petsc/src/mat/<wbr>interface/matrix.c<br>
[0]PETSC ERROR: #5 PCSetUp_FieldSplit() line 564 in /Users/jolivet/Documents/<wbr>repositories/petsc/src/ksp/pc/<wbr>impls/fieldsplit/fieldsplit.c<br>
[0]PETSC ERROR: #6 PCSetUp() line 923 in /Users/jolivet/Documents/<wbr>repositories/petsc/src/ksp/pc/<wbr>interface/precon.c<br>
[0]PETSC ERROR: #7 PCApply() line 453 in /Users/jolivet/Documents/<wbr>repositories/petsc/src/ksp/pc/<wbr>interface/precon.c<br>
[0]PETSC ERROR: #8 KSP_PCApply() line 276 in /Users/jolivet/repo/petsc/<wbr>include/petsc/private/kspimpl.<wbr>h<br>
[0]PETSC ERROR: #9 KSPFGMRESCycle() line 166 in /Users/jolivet/Documents/<wbr>repositories/petsc/src/ksp/<wbr>ksp/impls/gmres/fgmres/fgmres.<wbr>c<br>
[0]PETSC ERROR: #10 KSPSolve_FGMRES() line 291 in /Users/jolivet/Documents/<wbr>repositories/petsc/src/ksp/<wbr>ksp/impls/gmres/fgmres/fgmres.<wbr>c<br>
[0]PETSC ERROR: #11 KSPSolve() line 669 in /Users/jolivet/Documents/<wbr>repositories/petsc/src/ksp/<wbr>ksp/interface/itfunc.c<br>
<br>
Is this the expected behaviour? Would you need a MWE?<br>
What I find funny is that if I turn -info on, then just before the error, I get:<br>
[0] PCSetUp(): Setting up PC with different nonzero pattern<br>
So why is it trying to reuse the matrix? I am missing a call to some function?<br>
<br>
Thanks in advance,<br>
Pierre</blockquote></div><br></div></div>