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

# PEPMonitorSet

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

### Synopsis

    #include "slepcpep.h"
    PetscErrorCode PEPMonitorSet(PEP pep,PetscErrorCode (*monitor)(PEP pep,PetscInt its,PetscInt nconv,PetscScalar *eigr,PetscScalar *eigi,PetscReal *errest,PetscInt nest,void *mctx),void *mctx,PetscErrorCode (*monitordestroy)(void**))

Logically Collective

### Input Parameters

| pep | - eigensolver context obtained from PEPCreate()
| 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(PEP pep,PetscInt its,PetscInt nconv,PetscScalar *eigr,PetscScalar *eigi,PetscReal *errest,PetscInt nest,void *mctx)

| pep | - polynomial eigensolver context obtained from PEPCreate()
| its | - iteration number
| nconv | - number of converged eigenpairs
| eigr | - real part of the eigenvalues
| eigi | - imaginary part of the eigenvalues
| errest | - relative error estimates for each eigenpair
| nest | - number of error estimates
| mctx | - optional monitoring context, as set by PEPMonitorSet()

### Options Database Keys

| -pep_monitor | - print only the first error estimate
| -pep_monitor_all | - print error estimates at each iteration
| -pep_monitor_conv | - print the eigenvalue approximations only when convergence has been reached
| -pep_monitor draw::draw_lg | - sets line graph monitor for the first unconverged approximate eigenvalue
| -pep_monitor_all draw::draw_lg | - sets line graph monitor for all unconverged approximate eigenvalues
| -pep_monitor_conv draw::draw_lg | - sets line graph monitor for convergence history
| -pep_monitor_cancel | - cancels all monitors that have been hardwired into a code by calls to PEPMonitorSet(), but does not cancel those set via the options database.

### Notes

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

### See Also

PEPMonitorFirst(), PEPMonitorAll(), PEPMonitorCancel()

### Level

intermediate

### Location

src/pep/interface/pepmon.c
Index of all PEP routines
Table of Contents for all manual pages
Index of all manual pages