Actual source code: ls.h
1: /*
2: Private context for a Newton line search method for solving
3: systems of nonlinear equations
4: */
6: #ifndef __SNES_LS_H
8: #include include/private/snesimpl.h
10: typedef struct {
11: PetscErrorCode (*LineSearch)(SNES,void*,Vec,Vec,Vec,Vec,Vec,PetscReal,PetscReal*,PetscReal*,PetscTruth*);
12: void *lsP; /* user-defined line-search context (optional) */
13: /* --------------- Parameters used by line search method ----------------- */
14: PetscReal alpha; /* used to determine sufficient reduction */
15: PetscReal maxstep; /* maximum step size */
16: PetscReal steptol; /* step convergence tolerance */
17: PetscErrorCode (*precheckstep)(SNES,Vec,Vec,void*,PetscTruth*); /* step-checking routine (optional) */
18: void *precheck; /* user-defined step-checking context (optional) */
19: PetscErrorCode (*postcheckstep)(SNES,Vec,Vec,Vec,void*,PetscTruth*,PetscTruth*); /* step-checking routine (optional) */
20: void *postcheck; /* user-defined step-checking context (optional) */
21: } SNES_LS;
23: #endif