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