<div dir="ltr">Hi All<div><br></div><div>I'm in the process of updating a code that uses PETSc for solving linear systems for an unstructured CFD code. As of recently, it was using an ancient version (3.3). However, when I updated it up to 3.7.6 I ended up running into issues with one of the KSP solves. The remainder of the code is identical,</div><div>I've tracked the issue down to occurring between version 3.6.4 and version 3.7.0 . The same issue is present on the most recent version 3.7.6.</div><div><br></div><div>Specifically the issue is that on the second iteration, on the 3.7 version the KSP kicks out with KSP converged reason of -11 or <span style="color:rgb(0,0,0)">  </span><a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/KSP/KSP_DIVERGED_PCSETUP_FAILED.html#KSP_DIVERGED_PCSETUP_FAILED">KSP_DIVERGED_PCSETUP_FAILED</a> . After that the two runs differ.  The KSPView for each of the two are given below which are identical, up to small formatting changes. There is still more I can track down, but I thought I would ask if someone knows what might have changed between these two versions which could save me a lot of time. </div><div><br></div><div>Thanks,</div><div>Gaetan</div><div><br></div><div>3.6 KSP View:</div><div><div>KSP Object: 8 MPI processes</div><div>  type: gmres</div><div>    GMRES: restart=3, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement</div><div>    GMRES: happy breakdown tolerance 1e-30</div><div>  maximum iterations=3</div><div>  using preconditioner applied to right hand side for initial guess</div><div>  tolerances:  relative=1e-08, absolute=1e-20, divergence=1e+15</div><div>  left preconditioning</div><div>  using nonzero initial guess</div><div>  using PRECONDITIONED norm type for convergence test</div><div>PC Object: 8 MPI processes</div><div>  type: bjacobi</div><div>    block Jacobi: number of blocks = 8</div><div>    Local solve is same for all blocks, in the following KSP and PC objects:</div><div>  KSP Object:  (sub_)   1 MPI processes</div><div>    type: preonly</div><div>    maximum iterations=10000, initial guess is zero</div><div>    tolerances:  relative=1e-05, absolute=1e-50, divergence=10000</div><div>    left preconditioning</div><div>    using NONE norm type for convergence test</div><div>  PC Object:  (sub_)   1 MPI processes</div><div>    type: ilu</div><div>      ILU: out-of-place factorization</div><div>      0 levels of fill</div><div>      tolerance for zero pivot 2.22045e-14</div><div>      matrix ordering: natural</div><div>      factor fill ratio given 1, needed 1</div><div>        Factored matrix follows:</div><div>          Mat Object:           1 MPI processes</div><div>            type: seqaij</div><div>            rows=46439, cols=46439</div><div>            package used to perform factorization: petsc</div><div>            total: nonzeros=502615, allocated nonzeros=502615</div><div>            total number of mallocs used during MatSetValues calls =0</div><div>              not using I-node routines</div><div>    linear system matrix = precond matrix:</div><div>    Mat Object:     1 MPI processes</div><div>      type: seqaij</div><div>      rows=46439, cols=46439</div><div>      total: nonzeros=502615, allocated nonzeros=504081</div><div>      total number of mallocs used during MatSetValues calls =0</div><div>        not using I-node routines</div><div>  linear system matrix = precond matrix:</div><div>  Mat Object:   8 MPI processes</div><div>    type: mpiaij</div><div>    rows=368656, cols=368656</div><div>    total: nonzeros=4.63682e+06, allocated nonzeros=4.64417e+06</div><div>    total number of mallocs used during MatSetValues calls =0</div><div>      not using I-node (on process 0) routines</div><div><my output: reason, iterations, rtol, atol></div><div>reason,its: 2 3 0.001 1e-20</div><div><br></div><div><br></div><div>Petsc 3.7 KSP View</div><div><div>KSP Object: 8 MPI processes</div><div>  type: gmres</div><div>    GMRES: restart=3, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement</div><div>    GMRES: happy breakdown tolerance 1e-30</div><div>  maximum iterations=3</div><div>  using preconditioner applied to right hand side for initial guess</div><div>  tolerances:  relative=1e-08, absolute=1e-20, divergence=1e+15</div><div>  left preconditioning</div><div>  using nonzero initial guess</div><div>  using PRECONDITIONED norm type for convergence test</div><div>PC Object: 8 MPI processes</div><div>  type: bjacobi</div><div>    block Jacobi: number of blocks = 8</div><div>    Local solve is same for all blocks, in the following KSP and PC objects:</div><div>  KSP Object:  (sub_)   1 MPI processes</div><div>    type: preonly</div><div>    maximum iterations=10000, initial guess is zero</div><div>    tolerances:  relative=1e-05, absolute=1e-50, divergence=10000.</div><div>    left preconditioning</div><div>    using NONE norm type for convergence test</div><div>  PC Object:  (sub_)   1 MPI processes</div><div>    type: ilu</div><div>      ILU: out-of-place factorization</div><div>      0 levels of fill</div><div>      tolerance for zero pivot 2.22045e-14</div><div>      matrix ordering: natural</div><div>      factor fill ratio given 1., needed 1.</div><div>        Factored matrix follows:</div><div>          Mat Object:           1 MPI processes</div><div>            type: seqaij</div><div>            rows=46439, cols=46439</div><div>            package used to perform factorization: petsc</div><div>            total: nonzeros=502615, allocated nonzeros=502615</div><div>            total number of mallocs used during MatSetValues calls =0</div><div>              not using I-node routines</div><div>    linear system matrix = precond matrix:</div><div>    Mat Object:     1 MPI processes</div><div>      type: seqaij</div><div>      rows=46439, cols=46439</div><div>      total: nonzeros=502615, allocated nonzeros=504081</div><div>      total number of mallocs used during MatSetValues calls =0</div><div>        not using I-node routines</div><div>  linear system matrix = precond matrix:</div><div>  Mat Object:   8 MPI processes</div><div>    type: mpiaij</div><div>    rows=368656, cols=368656</div><div>    total: nonzeros=4636822, allocated nonzeros=4644168</div><div>    total number of mallocs used during MatSetValues calls =0</div><div>      not using I-node (on process 0) routines</div><div><my output: reason, iterations, rtol, atol><br></div><div>reason,its: -11 0 0.001 1e-20</div></div><div><br></div><div><br></div></div></div>