Actual source code: lsimpl.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 <private/snesimpl.h>

 10: typedef struct {
 11:   PetscErrorCode           (*LineSearch)(SNES,void*,Vec,Vec,Vec,Vec,Vec,PetscReal,PetscReal,PetscReal*,PetscReal*,PetscBool *);
 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                minlambda;                                                        /* determines smallest line search lambda used */
 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:   PetscViewer              monitor;
 22: } SNES_LS;

 24: #endif