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#
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
#
PetscErrorCode rf(TS ts, PetscReal t, Vec U, Vec F, oid *ctx)
Calling sequence of drduf
#
Calling sequence of drdpf
#
Note#
For optimization there is usually a single cost function (numcost = 1). For sensitivities there may be multiple cost functions
See Also#
TS: Scalable ODE and DAE Solvers, TS
, TSSetRHSJacobianP()
, TSGetCostGradients()
, TSSetCostGradients()
Level#
deprecated
Location#
src/ts/interface/sensitivity/tssen.c
Index of all Sensitivity routines
Table of Contents for all manual pages
Index of all manual pages