1*fef7b6d8SPeter Brune /* 2*fef7b6d8SPeter Brune Private context for Richardson iteration 3*fef7b6d8SPeter Brune */ 4*fef7b6d8SPeter Brune 5*fef7b6d8SPeter Brune #ifndef __SNES_NCG_H 6*fef7b6d8SPeter Brune #define __SNES_NCG_H 7*fef7b6d8SPeter Brune #include <private/snesimpl.h> 8*fef7b6d8SPeter Brune 9*fef7b6d8SPeter Brune typedef struct { 10*fef7b6d8SPeter Brune SNESLineSearchType type; 11*fef7b6d8SPeter Brune PetscErrorCode (*LineSearch)(SNES,void*,Vec,Vec,Vec,PetscReal,PetscReal,Vec,Vec,PetscReal*,PetscReal*,PetscBool *); 12*fef7b6d8SPeter Brune /* Line Search Parameters */ 13*fef7b6d8SPeter Brune PetscReal damping; 14*fef7b6d8SPeter Brune PetscReal maxstep; /* maximum step size */ 15*fef7b6d8SPeter Brune PetscReal steptol; /* step convergence tolerance */ 16*fef7b6d8SPeter Brune PetscErrorCode (*precheckstep)(SNES,Vec,Vec,void*,PetscBool *); /* step-checking routine (optional) */ 17*fef7b6d8SPeter Brune void *precheck; /* user-defined step-checking context (optional) */ 18*fef7b6d8SPeter Brune PetscErrorCode (*postcheckstep)(SNES,Vec,Vec,Vec,void*,PetscBool *,PetscBool *); /* step-checking routine (optional) */ 19*fef7b6d8SPeter Brune void *postcheck; /* user-defined step-checking context (optional) */ 20*fef7b6d8SPeter Brune void *lsP; /* user-defined line-search context (optional) */ 21*fef7b6d8SPeter Brune PetscViewer monitor; 22*fef7b6d8SPeter Brune } SNES_NCG; 23*fef7b6d8SPeter Brune 24*fef7b6d8SPeter Brune #endif 25*fef7b6d8SPeter Brune 26