xref: /petsc/src/snes/impls/gs/gsimpl.h (revision 9dd11ecf0918283bb567d8b33a92f53ac4ea7840)
1*a4963045SJacob Faibussowitsch #pragma once
2737a7e12SPeter Brune 
3af0996ceSBarry Smith #include <petsc/private/snesimpl.h> /*I "petscsnes.h"  I*/
4737a7e12SPeter Brune #include <petscdm.h>
5737a7e12SPeter Brune 
6737a7e12SPeter Brune typedef struct {
7737a7e12SPeter Brune   PetscInt   sweeps;     /* number of sweeps through the local subdomain before neighbor communication */
8737a7e12SPeter Brune   PetscInt   max_its;    /* maximum iterations of the inner pointblock solver */
9737a7e12SPeter Brune   PetscReal  rtol;       /* relative tolerance of the inner pointblock solver */
10737a7e12SPeter Brune   PetscReal  abstol;     /* absolute tolerance of the inner pointblock solver */
11737a7e12SPeter Brune   PetscReal  stol;       /* step tolerance of the inner pointblock solver */
12737a7e12SPeter Brune   PetscReal  h;          /* differencing for secant variants */
13737a7e12SPeter Brune   PetscBool  secant_mat; /* use the Jacobian to get the coloring for the secant */
148a86d3c5SBarry Smith   ISColoring coloring;
15be95d8f1SBarry Smith } SNES_NGS;
16737a7e12SPeter Brune 
17be95d8f1SBarry Smith PETSC_EXTERN PetscErrorCode SNESComputeNGSDefaultSecant(SNES, Vec, Vec, void *);
18