KSPMonitorSet#
Sets an ADDITIONAL function to be called at every iteration to monitor, i.e. display in some way, perhaps by printing in the terminal, the residual norm computed in a KSPSolve()
Synopsis#
#include "petscksp.h"
#include "petscmat.h"
PetscErrorCode KSPMonitorSet(KSP ksp, PetscErrorCode (*monitor)(KSP ksp, PetscInt it, PetscReal rnorm, void *ctx), void *ctx, PetscErrorCode (*monitordestroy)(void **ctx))
Logically Collective
Input Parameters#
ksp - iterative solver obtained from
KSPCreate()
monitor - pointer to function (if this is
NULL
, it turns off monitoringctx - [optional] context for private data for the monitor routine (use
NULL
if no context is needed)monitordestroy - [optional] routine that frees monitor context (may be
NULL
)
Calling sequence of monitor
#
ksp - iterative solver obtained from
KSPCreate()
it - iteration number
rnorm - (estimated) 2-norm of (preconditioned) residual
ctx - optional monitoring context, as set by
KSPMonitorSet()
Calling sequence of monitordestroy
#
ctx - optional monitoring context, as set by
KSPMonitorSet()
Options Database Keys#
-ksp_monitor - sets
KSPMonitorResidual()
-ksp_monitor draw - sets
KSPMonitorResidualDraw()
and plots residual-ksp_monitor draw::draw_lg - sets
KSPMonitorResidualDrawLG()
and plots residual-ksp_monitor_pause_final - Pauses any graphics when the solve finishes (only works for internal monitors)
-ksp_monitor_true_residual - sets
KSPMonitorTrueResidual()
-ksp_monitor_true_residual draw::draw_lg - sets
KSPMonitorTrueResidualDrawLG()
and plots residual-ksp_monitor_max - sets
KSPMonitorTrueResidualMax()
-ksp_monitor_singular_value - sets
KSPMonitorSingularValue()
-ksp_monitor_cancel - cancels all monitors that have been hardwired into a code by calls to
KSPMonitorSet()
, but does not cancel those set via the options database.
Notes#
The options database option -ksp_monitor
and related options are the easiest way to turn on KSP
iteration monitoring
The default is to do no monitoring. To print the residual, or preconditioned
residual if KSPSetNormType
(ksp,KSP_NORM_PRECONDITIONED
) was called, use
KSPMonitorResidual()
as the monitoring routine, with a PETSCVIEWERASCII
as the
context.
Several different monitoring routines may be set by calling
KSPMonitorSet()
multiple times; all will be called in the
order in which they were set.
Fortran Note#
Only a single monitor function can be set for each KSP
object
See Also#
KSP: Linear System Solvers, KSPMonitorResidual()
, KSPMonitorCancel()
, KSP
Level#
beginner
Location#
Examples#
src/ksp/ksp/tutorials/ex2f.F90
src/snes/tutorials/ex30.c
src/ts/tutorials/ex47.c
src/ksp/ksp/tutorials/ex9.c
src/ksp/ksp/tutorials/ex42.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages