Skip to main content
`Ctrl`+`K`

# SNESNewtonTRDCSetPostCheck

Sets a user function that is called after the search step has been determined but before the next function evaluation. Allows the user a chance to change or override the decision of the line search routine

## Synopsis

    #include "petscsnes.h"
    PetscErrorCode SNESNewtonTRDCSetPostCheck(SNES snes, PetscErrorCode (*func)(SNES snes, Vec X, Vec Y, Vec W, PetscBool *changed_y, PetscBool *changed_w, PetscCtx ctx), PetscCtx ctx)

Logically Collective

## Input Parameters

- snes - the nonlinear solver object

- func - [optional] function evaluation routine, for the calling sequence see `SNESNewtonTRDCPostCheck()`

- ctx - [optional] context for private data for the function evaluation routine (may be `NULL`)

## Calling sequence of `func`

- snes - the nonlinear solver object

- X - the current solution value

- Y - the tentative update step

- W - the tentative new solution value

- changed_y - output, flag indicated `Y` has been changed by the post-check

- changed_w - output, flag indicated `W` has been changed by the post-check

- ctx - the optional application context

## Note

This function is called BEFORE the function evaluation within the `SNESNEWTONTRDC` solver while the function set in `SNESLineSearchSetPostCheck()` is called AFTER the function evaluation.

## See Also

SNES: Nonlinear Solvers, `SNES`, `SNESNEWTONTRDC`, `SNESNewtonTRDCPostCheck()`, `SNESNewtonTRDCGetPostCheck()`, `SNESNewtonTRDCSetPreCheck()`, `SNESNewtonTRDCGetPreCheck()`

## Level

intermediate

## Location

src/snes/impls/ntrdc/ntrdc.c

Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages