:orphan: # SNESSetObjective Sets the objective function minimized by some of the `SNES` linesearch methods, used instead of the 2-norm of the residual ## Synopsis ``` PetscErrorCode SNESSetObjective(SNES snes, PetscErrorCode (*obj)(SNES, Vec, PetscReal *, void *), void *ctx) ``` Logically Collective ## Input Parameters - ***snes -*** the `SNES` context - ***obj -*** objective evaluation routine; see `SNESObjectiveFunction` for details - ***ctx -*** [optional] user-defined context for private data for the function evaluation routine (may be `NULL`) ## Note Some of the `SNESLineSearch` methods attempt to minimize a given objective provided by this function to determine a step length. If not provided then this defaults to the two norm of the function evaluation (set with `SNESSetFunction()`) This is not used in the `SNESLINESEARCHCP` line search. ## See Also `SNES`, `SNESLineSearch()`, `SNESGetObjective()`, `SNESComputeObjective()`, `SNESSetFunction()`, `SNESSetJacobian()`, `SNESObjectiveFunction` ## Level intermediate ## Location src/snes/interface/snesob.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/snes/interface/snesob.c) [Index of all SNES routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)