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 src/snes/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