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