xref: /petsc/src/snes/impls/gs/gsimpl.h (revision 737a7e128d3ed57ea128fd0d033fca43bac7efb0)
1*737a7e12SPeter Brune #if !defined(__GSIMPL)
2*737a7e12SPeter Brune #define __GSIMPL
3*737a7e12SPeter Brune 
4*737a7e12SPeter Brune #include <petsc-private/snesimpl.h>      /*I "petscsnes.h"  I*/
5*737a7e12SPeter Brune #include <petscdm.h>
6*737a7e12SPeter Brune 
7*737a7e12SPeter Brune typedef struct {
8*737a7e12SPeter Brune   PetscInt  sweeps;     /* number of sweeps through the local subdomain before neighbor communication */
9*737a7e12SPeter Brune   PetscInt  max_its;    /* maximum iterations of the inner pointblock solver */
10*737a7e12SPeter Brune   PetscReal rtol;       /* relative tolerance of the inner pointblock solver */
11*737a7e12SPeter Brune   PetscReal abstol;     /* absolute tolerance of the inner pointblock solver */
12*737a7e12SPeter Brune   PetscReal stol;       /* step tolerance of the inner pointblock solver */
13*737a7e12SPeter Brune   PetscReal h;          /* differencing for secant variants */
14*737a7e12SPeter Brune   PetscBool secant_mat; /* use the Jacobian to get the coloring for the secant */
15*737a7e12SPeter Brune } SNES_GS;
16*737a7e12SPeter Brune 
17*737a7e12SPeter Brune PETSC_EXTERN PetscErrorCode SNESComputeGSDefaultSecant(SNES,Vec,Vec,void *);
18*737a7e12SPeter Brune 
19*737a7e12SPeter Brune #endif
20