1 #ifndef _SNES_FASIMPLS 2 #define _SNES_FASIMPLS 3 4 #include <private/snesimpl.h> 5 6 typedef struct { 7 8 /* flags for knowing the global place of this FAS object */ 9 PetscInt level; /* level = 0 coarsest level */ 10 PetscInt levels; /* if level + 1 = levels; we're the last turtle */ 11 12 13 /* smoothing objects */ 14 SNES presmooth; /* the SNES for presmoothing */ 15 SNES postsmooth; /* the SNES for postsmoothing */ 16 17 /* coarse grid correction objects */ 18 SNES next; /* the SNES instance for the next level in the hierarchy */ 19 Mat interpolate; /* interpolation */ 20 Mat restrct; /* restriction operator */ 21 Vec rscale; /* the pointwise scaling of the restriction operator */ 22 23 /* method specific */ 24 PetscInt cycles; 25 26 } SNES_FAS; 27 28 #endif 29