slepc-3.21.0 2024-03-30
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