1: #ifndef PETSC_GSIMPL_H
2: #define PETSC_GSIMPL_H
4: #include <petsc/private/snesimpl.h>
5: #include <petscdm.h>
7: typedef struct {
8: PetscInt sweeps; /* number of sweeps through the local subdomain before neighbor communication */
9: PetscInt max_its; /* maximum iterations of the inner pointblock solver */
10: PetscReal rtol; /* relative tolerance of the inner pointblock solver */
11: PetscReal abstol; /* absolute tolerance of the inner pointblock solver */
12: PetscReal stol; /* step tolerance of the inner pointblock solver */
13: PetscReal h; /* differencing for secant variants */
14: PetscBool secant_mat; /* use the Jacobian to get the coloring for the secant */
15: ISColoring coloring;
16: } SNES_NGS;
18: PETSC_EXTERN PetscErrorCode SNESComputeNGSDefaultSecant(SNES, Vec, Vec, void *);
20: #endif // PETSC_GSIMPL_H