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*,PetscTruth*);
 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*,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:   void            *lsP;                                                            /* user-defined line-search context (optional) */
 22: } SNES_Picard;

 24: #endif