slepc-3.21.1 2024-04-26
Report Typos and Errors

# SVDMonitorSet

Sets an ADDITIONAL function to be called at every iteration to monitor the error estimates for each requested singular triplet.

### Synopsis

    #include "slepcsvd.h"
    PetscErrorCode SVDMonitorSet(SVD svd,PetscErrorCode (*monitor)(SVD svd,PetscInt its,PetscInt nconv,PetscReal *sigma,PetscReal *errest,PetscInt nest,void *mctx),void *mctx,PetscErrorCode (*monitordestroy)(void**))

Logically Collective

### Input Parameters

| svd | - singular value solver context obtained from SVDCreate()
| monitor | - pointer to function (if this is NULL, it turns off monitoring)
| mctx | - [optional] context for private data for the monitor routine (use NULL if no context is desired)
| monitordestroy | - [optional] routine that frees monitor context (may be NULL)

### Calling sequence of monitor

     PetscErrorCode monitor(SVD svd,PetscInt its,PetscInt nconv,PetscReal *sigma,PetscReal *errest,PetscInt nest,void *mctx)

| svd | - singular value solver context obtained from SVDCreate()
| its | - iteration number
| nconv | - number of converged singular triplets
| sigma | - singular values
| errest | - relative error estimates for each singular triplet
| nest | - number of error estimates
| mctx | - optional monitoring context, as set by SVDMonitorSet()

### Options Database Keys

| -svd_monitor | - print only the first error estimate
| -svd_monitor_all | - print error estimates at each iteration
| -svd_monitor_conv | - print the singular value approximations only when convergence has been reached
| -svd_monitor_conditioning | - print the condition number when available
| -svd_monitor draw::draw_lg | - sets line graph monitor for the first unconverged approximate singular value
| -svd_monitor_all draw::draw_lg | - sets line graph monitor for all unconverged approximate singular values
| -svd_monitor_conv draw::draw_lg | - sets line graph monitor for convergence history
| -svd_monitor_cancel | - cancels all monitors that have been hardwired into a code by calls to SVDMonitorSet(), but does not cancel those set via the options database.

### Notes

Several different monitoring routines may be set by calling SVDMonitorSet() multiple times; all will be called in the order in which they were set.

### See Also

SVDMonitorFirst(), SVDMonitorAll(), SVDMonitorConditioning(), SVDMonitorCancel()

### Level

intermediate

### Location

src/svd/interface/svdmon.c
Index of all SVD routines
Table of Contents for all manual pages
Index of all manual pages