:orphan: # TSSetFunctionDomainError Set a function that tests if the current state vector is valid ## Synopsis ``` #include "petscts.h" PetscErrorCode TSSetFunctionDomainError(TS ts, PetscErrorCode (*func)(TS, PetscReal, Vec, PetscBool *)) ``` ## Input Parameters - ***ts -*** the `TS` context - ***func -*** function called within `TSFunctionDomainError()` ## Calling sequence of `func` ```none PetscErrorCode func(TS ts, PetscReal time, Vec state, PetscBool reject) ``` - ***ts -*** the TS context - ***time -*** the current time (of the stage) - ***state -*** the state to check if it is valid - ***reject -*** (output parameter) `PETSC_FALSE` if the state is acceptable, `PETSC_TRUE` if not acceptable ## Notes If an implicit ODE solver is being used then, in addition to providing this routine, the user's code should call `SNESSetFunctionDomainError()` when domain errors occur during function evaluations where the functions are provided by `TSSetIFunction()` or `TSSetRHSFunction()`. Use `TSGetSNES()` to obtain the `SNES` object ## Developer Note The naming of this function is inconsistent with the `SNESSetFunctionDomainError()` since one takes a function pointer and the other does not. ## See Also [](ch_ts), `TSAdaptCheckStage()`, `TSFunctionDomainError()`, `SNESSetFunctionDomainError()`, `TSGetSNES()` ## Level intermediate ## Location src/ts/interface/ts.c ## Examples src/ts/tutorials/ex42.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ts/interface/ts.c) [Index of all TS routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)