petsc-3.10.5 2019-03-28
Report Typos and Errors

# TSSetSolutionFunction

Provide a function that computes the solution of the ODE or DAE

### Synopsis

    #include "petscts.h"
    PetscErrorCode  TSSetSolutionFunction(TS ts,PetscErrorCode (*f)(TS,PetscReal,Vec,void*),void *ctx)

Logically Collective on TS

### Input Parameters

| ts | - the TS context obtained from TSCreate()
| f | - routine for evaluating the solution
| ctx | - [optional] user-defined context for private data for the function evaluation routine (may be NULL)

### Calling sequence of func

        func (TS ts,PetscReal t,Vec u,void *ctx);

| t | - current timestep
| u | - output vector
| ctx | - [optional] user-defined function context

### Options Database

| -ts_monitor_lg_error | - create a graphical monitor of error history, requires user to have provided TSSetSolutionFunction()
| -ts_monitor_draw_error | - Monitor error graphically, requires user to have provided TSSetSolutionFunction()

### Notes

This routine is used for testing accuracy of time integration schemes when you already know the solution. If analytic solutions are not known for your system, consider using the Method of Manufactured Solutions to create closed-form solutions with non-physical forcing terms.

For low-dimensional problems solved in serial, such as small discrete systems, TSMonitorLGError() can be used to monitor the error history.

### Keywords

TS, timestep, set, right-hand-side, function

### See Also

TSSetRHSJacobian(), TSSetIJacobian(), TSComputeSolutionFunction(), TSSetForcingFunction(), TSSetSolution(), TSGetSolution(), TSMonitorLGError(), TSMonitorDrawError()

### Level

beginner

### Location

src/ts/interface/ts.c

### Examples

src/ts/examples/tutorials/ex50.c.html
src/tao/unconstrained/examples/tutorials/spectraladjointassimilation.c.html
Index of all TS routines
Table of Contents for all manual pages
Index of all manual pages