Actual source code: picard.h
1: /*
2: Private context for Picard iteration
3: */
5: #ifndef __SNES_PICARD_H
7: #include <private/snesimpl.h>
9: typedef struct {
10: int type; /* Type of Picard iteration */
11: /* Line Search */
12: PetscErrorCode (*LineSearch)(SNES,void*,Vec,Vec,Vec,Vec,Vec,PetscReal,PetscReal,PetscReal*,PetscReal*,PetscBool *);
13: /* Line Search Parameters */
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*,PetscBool *); /* step-checking routine (optional) */
18: void *precheck; /* user-defined step-checking context (optional) */
19: PetscErrorCode (*postcheckstep)(SNES,Vec,Vec,Vec,void*,PetscBool *,PetscBool *); /* step-checking routine (optional) */
20: void *postcheck; /* user-defined step-checking context (optional) */
21: void *lsP; /* user-defined line-search context (optional) */
22: } SNES_Picard;
24: #endif