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