Skip to main content
`Ctrl`+`K`

# TSAdjointMonitorSet

Sets an ADDITIONAL function that is to be used at every timestep to display the iteration’s progress.

## Synopsis

    #include <petscts.h>
    PetscErrorCode TSAdjointMonitorSet(TS ts, PetscErrorCode (*adjointmonitor)(TS ts, PetscInt steps, PetscReal time, Vec u, PetscInt numcost, Vec *lambda, Vec *mu, PetscCtx adjointmctx), PetscCtx adjointmctx, PetscCtxDestroyFn *adjointmdestroy)

Logically Collective

## Input Parameters

- ts - the `TS` context obtained from `TSCreate()`

- adjointmonitor - monitoring routine

- adjointmctx - [optional] context for private data for the monitor routine (use `NULL` if no context is desired)

- adjointmdestroy - [optional] routine that frees monitor context (may be `NULL`), see `PetscCtxDestroyFn` for its calling sequence

## Calling sequence of `adjointmonitor`

- ts - the `TS` context

- steps - iteration number (after the final time step the monitor routine is called with a step of -1, this is at the final time which may have been interpolated to)

- time - current time

- u - current iterate

- numcost - number of cost functions

- lambda - sensitivities to initial conditions

- mu - sensitivities to parameters

- adjointmctx - [optional] adjoint monitoring context

## Note

This routine adds an additional monitor to the list of monitors that already has been loaded.

## Fortran Notes

Only a single monitor function can be set for each `TS` object

## See Also

TS: Scalable ODE and DAE Solvers, `TS`, `TSAdjointSolve()`, `TSAdjointMonitorCancel()`, `PetscCtxDestroyFn`

## Level

intermediate

## Location

src/ts/interface/sensitivity/tssen.c

## Examples

src/ts/tutorials/ex20td.c

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