Skip to main content
`Ctrl`+`K`

# TaoMonitorSet

Sets an additional function that is to be used at every iteration of the solver to display the iteration’s progress.

## Synopsis

    #include "petsctao.h"
    PetscErrorCode TaoMonitorSet(Tao tao, PetscErrorCode (*func)(Tao, void *), void *ctx, PetscCtxDestroyFn *dest)

Logically Collective

## Input Parameters

- tao - the `Tao` solver context

- func - monitoring routine

- ctx - [optional] user-defined context for private data for the monitor routine (may be `NULL`)

- dest - [optional] function to destroy the context when the `Tao` is destroyed, see `PetscCtxDestroyFn` for the calling sequence

## Calling sequence of `func`

- tao - the `Tao` solver context

- ctx - [optional] monitoring context

## Notes

See `TaoSetFromOptions()` for a monitoring options.

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

## Fortran Notes

Only one monitor function may be set

## See Also

TAO: Optimization Solvers, `Tao`, `TaoSolve()`, `TaoMonitorDefault()`, `TaoMonitorCancel()`, `TaoSetDestroyRoutine()`, `TaoView()`, `PetscCtxDestroyFn`

## Level

intermediate

## Location

src/tao/interface/taosolver.c

## Examples

src/tao/unconstrained/tutorials/burgers_spectral.c
src/tao/unconstrained/tutorials/minsurf2.c
src/tao/unconstrained/tutorials/spectraladjointassimilation.c
src/tao/bound/tutorials/jbearing2.c
src/tao/unconstrained/tutorials/eptorsion2f.F90

Index of all Tao routines
Table of Contents for all manual pages
Index of all manual pages