:orphan: # TSSetCostIntegrand Sets the routine for evaluating the integral term in one or more cost functions ## Synopsis ``` #include "petscts.h" PetscErrorCode TSSetCostIntegrand(TS ts, PetscInt numcost, Vec costintegral, PetscErrorCode (*rf)(TS, PetscReal, Vec, Vec, void *), PetscErrorCode (*drduf)(TS, PetscReal, Vec, Vec *, void *), PetscErrorCode (*drdpf)(TS, PetscReal, Vec, Vec *, void *), PetscBool fwd, void *ctx) ``` Logically Collective ## Input Parameters - ***ts -*** the `TS` context obtained from `TSCreate()` - ***numcost -*** number of gradients to be computed, this is the number of cost functions - ***costintegral -*** vector that stores the integral values - ***rf -*** routine for evaluating the integrand function - ***drduf -*** function that computes the gradients of the r's with respect to u - ***drdpf -*** function that computes the gradients of the r's with respect to p, can be `NULL` if parametric sensitivity is not desired (`mu` = `NULL`) - ***fwd -*** flag indicating whether to evaluate cost integral in the forward run or the adjoint run - ***ctx -*** [optional] user-defined context for private data for the function evaluation routine (may be `NULL`) ## Calling sequence of `rf` ```none PetscErrorCode rf(TS ts, PetscReal t, Vec U, Vec F, oid *ctx) ``` ## Calling sequence of `drduf` ```none PetscErroCode drduf(TS ts, PetscReal t, Vec U, Vec *dRdU, void *ctx) ``` ## Calling sequence of `drdpf` ```none PetscErroCode drdpf(TS ts, PetscReal t, Vec U, Vec *dRdP, void *ctx) ``` ## Note For optimization there is usually a single cost function (numcost = 1). For sensitivities there may be multiple cost functions ## See Also [](ch_ts), `TS`, `TSSetRHSJacobianP()`, `TSGetCostGradients()`, `TSSetCostGradients()` ## Level deprecated ## Location src/ts/interface/sensitivity/tssen.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ts/interface/sensitivity/tssen.c) [Index of all Sensitivity routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)