xref: /petsc/src/snes/impls/fas/fasimpls.h (revision 84df9cb40eca90ea9b18a456fab7a4ecc7f6c1a4)
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