1: #pragma once 3: #include <petsc/private/snesimpl.h> 4: #include <petscdm.h> 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; 17: PETSC_EXTERN PetscErrorCode SNESComputeNGSDefaultSecant(SNES, Vec, Vec, void *);