petsc-3.6.2 2015-10-02
Report Typos and Errors

# TSSetEventMonitor

Sets a monitoring function used for detecting events

### Synopsis

    #include "petscts.h"
    PetscErrorCode TSSetEventMonitor(TS ts,PetscInt nevents,PetscInt *direction,PetscBool *terminate,PetscErrorCode (*eventmonitor)(TS,PetscReal,Vec,PetscScalar*,void*),PetscErrorCode (*postevent)(TS,PetscInt,PetscInt[],PetscReal,Vec,PetscBool,void*),void *mectx)

Logically Collective on TS

### Input Parameters

| ts | - the TS context obtained from TSCreate()
| nevents | - number of local events
| direction | - direction of zero crossing to be detected. -1 => Zero crossing in negative direction, +1 => Zero crossing in positive direction, 0 => both ways (one for each event)
| terminate | - flag to indicate whether time stepping should be terminated after event is detected (one for each event)
| eventmonitor | - event monitoring routine
| postevent | - [optional] post-event function
| mectx | - [optional] user-defined context for private data for the event monitor and post event routine (use NULL if no context is desired)

### Calling sequence of eventmonitor

PetscErrorCode EventMonitor(TS ts,PetscReal t,Vec U,PetscScalar *fvalue,void* mectx)

### Input Parameters

| ts | - the TS context
| t | - current time
| U | - current iterate
| ctx | - [optional] context passed with eventmonitor

### Output parameters

fvalue -function value of events at time t

### Calling sequence of postevent

PetscErrorCode PostEvent(TS ts,PetscInt nevents_zero, PetscInt events_zero, PetscReal t,Vec U,PetscBool forwardsolve,void* ctx)

### Input Parameters

| ts | - the TS context
| nevents_zero | - number of local events whose event function is zero
| events_zero | - indices of local events which have reached zero
| t | - current time
| U | - current solution
| forwardsolve | - Flag to indicate whether TS is doing a forward solve (1) or adjoint solve (0)
| ctx | - the context passed with eventmonitor

### Keywords

TS, event, set, monitor

### See Also

TSCreate(), TSSetTimeStep(), TSSetConvergedReason()

Level:intermediate
Location: src/ts/event/tsevent.c
Index of all TS routines
Table of Contents for all manual pages
Index of all manual pages

### Examples

src/ts/examples/tutorials/ex40.c.html
src/ts/examples/tutorials/ex41.c.html