[petsc-dev] -ksp_error_if_not_converged

Barry Smith bsmith at petsc.dev
Sun Aug 8 16:26:38 CDT 2021


https://gitlab.com/petsc/petsc/-/merge_requests/4219

> On Aug 8, 2021, at 7:42 AM, Pierre Jolivet <pierre at joliv.et> wrote:
> 
> Hello,
> I’d like to trigger an error if a linear solve does not converge due to DIVERGED_ITS.
> Since this MR https://gitlab.com/petsc/petsc/-/merge_requests/1294 <https://gitlab.com/petsc/petsc/-/merge_requests/1294>, no error is triggered anymore if ksp->reason == KSP_DIVERGED_ITS.
> This seems to be inconsistent with -snes_error_if_not_converged.
> Is there a workaround? Shouldn’t this be clarified in the manual page?
> 
> Thank you,
> Pierre
> 
> $ src/ksp/ksp/tutorials/ex1 -ksp_max_it 1 -ksp_converged_reason -ksp_error_if_not_converged && echo "No error"
> Linear solve did not converge due to DIVERGED_ITS iterations 1
> KSP Object: 1 MPI processes
>   type: gmres
>     restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
>     happy breakdown tolerance 1e-30
>   maximum iterations=1, initial guess is zero
>   tolerances:  relative=1e-05, absolute=1e-50, divergence=10000.
>   left preconditioning
>   using PRECONDITIONED norm type for convergence test
> PC Object: 1 MPI processes
>   type: jacobi
>     type DIAGONAL
>   linear system matrix = precond matrix:
>   Mat Object: 1 MPI processes
>     type: seqaij
>     rows=10, cols=10
>     total: nonzeros=28, allocated nonzeros=50
>     total number of mallocs used during MatSetValues calls=0
>       not using I-node routines
> Norm of error 2.95296, Iterations 1
> No error

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20210808/7c6bcbf2/attachment.html>


More information about the petsc-dev mailing list