1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD> <link rel="canonical" href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/KSP/KSPGetConvergedReason.html" />
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>KSPGetConvergedReason</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<div id="version" align=right><b>petsc-3.14.5 2021-03-03</b></div>
<div id="bugreport" align=right><a href="mailto:petsc-maint@mcs.anl.gov?subject=Typo or Error in Documentation &body=Please describe the typo or error in the documentation: petsc-3.14.5 v3.14.5 docs/manualpages/KSP/KSPGetConvergedReason.html "><small>Report Typos and Errors</small></a></div>
<A NAME="KSPGetConvergedReason"><H1>KSPGetConvergedReason</H1></A>
Gets the reason the <A HREF="../KSP/KSP.html#KSP">KSP</A> iteration was stopped.
<H3><FONT COLOR="#CC3333">Synopsis</FONT></H3>
<PRE>
#include "petscksp.h"
<A HREF="../Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> <A HREF="../KSP/KSPGetConvergedReason.html#KSPGetConvergedReason">KSPGetConvergedReason</A>(<A HREF="../KSP/KSP.html#KSP">KSP</A> ksp,<A HREF="../KSP/KSPConvergedReason.html#KSPConvergedReason">KSPConvergedReason</A> *reason)
</PRE>
Not Collective
<P>
<H3><FONT COLOR="#CC3333">Input Parameter</FONT></H3>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>ksp </B></TD><TD>- the <A HREF="../KSP/KSP.html#KSP">KSP</A> context
</TD></TR></TABLE>
<P>
<H3><FONT COLOR="#CC3333">Output Parameter</FONT></H3>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>reason </B></TD><TD>- negative value indicates diverged, positive value converged, see <A HREF="../KSP/KSPConvergedReason.html#KSPConvergedReason">KSPConvergedReason</A>
</TD></TR></TABLE>
<P>
Possible values for reason: See also manual page for each reason
<pre>
<A HREF="../KSP/KSP_CONVERGED_RTOL.html#KSP_CONVERGED_RTOL">KSP_CONVERGED_RTOL</A> (residual 2-norm decreased by a factor of rtol, from 2-norm of right hand side)
</pre>
<pre>
<A HREF="../KSP/KSP_CONVERGED_ATOL.html#KSP_CONVERGED_ATOL">KSP_CONVERGED_ATOL</A> (residual 2-norm less than abstol)
</pre>
<pre>
<A HREF="../KSP/KSP_CONVERGED_ITS.html#KSP_CONVERGED_ITS">KSP_CONVERGED_ITS</A> (used by the preonly preconditioner that always uses ONE iteration, or when the <A HREF="../KSP/KSPConvergedSkip.html#KSPConvergedSkip">KSPConvergedSkip</A>() convergence test routine is set.
</pre>
<pre>
<A HREF="../KSP/KSPConvergedReason.html#KSPConvergedReason">KSP_CONVERGED_CG_NEG_CURVE</A> (see note below)
</pre>
<pre>
<A HREF="../KSP/KSPConvergedReason.html#KSPConvergedReason">KSP_CONVERGED_CG_CONSTRAINED</A> (see note below)
</pre>
<pre>
<A HREF="../KSP/KSPConvergedReason.html#KSPConvergedReason">KSP_CONVERGED_STEP_LENGTH</A> (see note below)
</pre>
<pre>
<A HREF="../KSP/KSP_CONVERGED_ITERATING.html#KSP_CONVERGED_ITERATING">KSP_CONVERGED_ITERATING</A> (returned if the solver is not yet finished)
</pre>
<pre>
<A HREF="../KSP/KSP_DIVERGED_ITS.html#KSP_DIVERGED_ITS">KSP_DIVERGED_ITS</A> (required more than its to reach convergence)
</pre>
<pre>
<A HREF="../KSP/KSP_DIVERGED_DTOL.html#KSP_DIVERGED_DTOL">KSP_DIVERGED_DTOL</A> (residual norm increased by a factor of divtol)
</pre>
<pre>
<A HREF="../KSP/KSPConvergedReason.html#KSPConvergedReason">KSP_DIVERGED_NANORINF</A> (residual norm became Not-a-number or Inf likely due to 0/0)
</pre>
<pre>
<A HREF="../KSP/KSP_DIVERGED_BREAKDOWN.html#KSP_DIVERGED_BREAKDOWN">KSP_DIVERGED_BREAKDOWN</A> (generic breakdown in method)
</pre>
<pre>
<A HREF="../KSP/KSP_DIVERGED_BREAKDOWN_BICG.html#KSP_DIVERGED_BREAKDOWN_BICG">KSP_DIVERGED_BREAKDOWN_BICG</A> (Initial residual is orthogonal to preconditioned initial residual. Try a different preconditioner, or a different initial Level.)
</pre>
<P>
<H3><FONT COLOR="#CC3333">Options Database</FONT></H3>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_converged_reason </B></TD><TD>- prints the reason to standard out
</TD></TR></TABLE>
<P>
<H3><FONT COLOR="#CC3333">Notes</FONT></H3>
If this routine is called before or doing the <A HREF="../KSP/KSPSolve.html#KSPSolve">KSPSolve</A>() the value of <A HREF="../KSP/KSP_CONVERGED_ITERATING.html#KSP_CONVERGED_ITERATING">KSP_CONVERGED_ITERATING</A> is returned
<P>
The values <A HREF="../KSP/KSPConvergedReason.html#KSPConvergedReason">KSP_CONVERGED_CG_NEG_CURVE</A>, <A HREF="../KSP/KSPConvergedReason.html#KSPConvergedReason">KSP_CONVERGED_CG_CONSTRAINED</A>, and <A HREF="../KSP/KSPConvergedReason.html#KSPConvergedReason">KSP_CONVERGED_STEP_LENGTH</A> are returned only by the special <A HREF="../KSP/KSPNASH.html#KSPNASH">KSPNASH</A>, <A HREF="../KSP/KSPSTCG.html#KSPSTCG">KSPSTCG</A>, and <A HREF="../KSP/KSPGLTR.html#KSPGLTR">KSPGLTR</A>
solvers which are used by the <A HREF="../SNES/SNESNEWTONTR.html#SNESNEWTONTR">SNESNEWTONTR</A> (trust region) solver.
<P>
<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
<A HREF="../KSP/KSPSetConvergenceTest.html#KSPSetConvergenceTest">KSPSetConvergenceTest</A>(), <A HREF="../KSP/KSPConvergedDefault.html#KSPConvergedDefault">KSPConvergedDefault</A>(), <A HREF="../KSP/KSPSetTolerances.html#KSPSetTolerances">KSPSetTolerances</A>(), <A HREF="../KSP/KSPConvergedReason.html#KSPConvergedReason">KSPConvergedReason</A>,
<BR><A HREF="../KSP/KSPConvergedReasonView.html#KSPConvergedReasonView">KSPConvergedReasonView</A>()
<P><B></B><H3><FONT COLOR="#CC3333">Level</FONT></H3>intermediate<BR>
<H3><FONT COLOR="#CC3333">Location</FONT></H3>
</B><A HREF="../../../src/ksp/ksp/interface/iterativ.c.html#KSPGetConvergedReason">src/ksp/ksp/interface/iterativ.c</A>
<P><H3><FONT COLOR="#CC3333">Examples</FONT></H3>
<A HREF="../../../src/dm/impls/stag/tutorials/ex4.c.html">src/dm/impls/stag/tutorials/ex4.c.html</A><BR>
<A HREF="../../../src/ksp/pc/tutorials/ex1.c.html">src/ksp/pc/tutorials/ex1.c.html</A><BR>
<A HREF="../../../src/ksp/pc/tutorials/ex2.c.html">src/ksp/pc/tutorials/ex2.c.html</A><BR>
<A HREF="../../../src/ksp/ksp/tutorials/ex59.c.html">src/ksp/ksp/tutorials/ex59.c.html</A><BR>
<A HREF="../../../src/ksp/ksp/tutorials/ex72.c.html">src/ksp/ksp/tutorials/ex72.c.html</A><BR>
<A HREF="../../../src/ksp/ksp/tutorials/ex77.c.html">src/ksp/ksp/tutorials/ex77.c.html</A><BR>
<BR><A HREF="./index.html">Index of all KSP routines</A>
<BR><A HREF="../../index.html">Table of Contents for all manual pages</A>
<BR><A HREF="../singleindex.html">Index of all manual pages</A>
</BODY></HTML>
|