xref: /petsc/src/snes/impls/tr/trimpl.h (revision c4762a1b19cd2af06abeed90e8f9d34fb975dd94)
1 
2 /*
3    Context for a Newton trust region method for solving a system
4    of nonlinear equations
5  */
6 
7 #if !defined(__SNES_TR_H)
8 #define __SNES_TR_H
9 #include <petsc/private/snesimpl.h>
10 
11 typedef struct {
12   /* ---- Parameters used by the trust region method  ---- */
13   PetscReal      mu;             /* used to compute trust region parameter */
14   PetscReal      eta;            /* used to compute trust region parameter */
15   PetscReal      delta;          /* trust region parameter */
16   PetscReal      delta0;         /* used to initialize trust region parameter */
17   PetscReal      delta1;         /* used to compute trust region parameter */
18   PetscReal      delta2;         /* used to compute trust region parameter */
19   PetscReal      delta3;         /* used to compute trust region parameter */
20   PetscReal      sigma;          /* used to detemine termination */
21   PetscBool      itflag;         /* flag for convergence testing */
22   PetscReal      rnorm0,ttol;    /* used for KSP convergence test */
23   PetscErrorCode (*precheck)(SNES,Vec,Vec,PetscBool*,void*);
24   void           *precheckctx;
25   PetscErrorCode (*postcheck)(SNES,Vec,Vec,Vec,PetscBool*,PetscBool*,void*);
26   void           *postcheckctx;
27 } SNES_NEWTONTR;
28 
29 #endif
30