1421d9b32SPeter Brune #ifndef _SNES_FASIMPLS 2421d9b32SPeter Brune #define _SNES_FASIMPLS 3421d9b32SPeter Brune 4421d9b32SPeter Brune #include <private/snesimpl.h> 5*ee78dd50SPeter Brune #include <private/dmimpl.h> 6421d9b32SPeter Brune 7421d9b32SPeter Brune typedef struct { 8421d9b32SPeter Brune 9421d9b32SPeter Brune /* flags for knowing the global place of this FAS object */ 10421d9b32SPeter Brune PetscInt level; /* level = 0 coarsest level */ 11421d9b32SPeter Brune PetscInt levels; /* if level + 1 = levels; we're the last turtle */ 12421d9b32SPeter Brune 13421d9b32SPeter Brune 14421d9b32SPeter Brune /* smoothing objects */ 15*ee78dd50SPeter Brune SNES upsmooth; /* the SNES for presmoothing */ 16*ee78dd50SPeter Brune SNES downsmooth; /* the SNES for postsmoothing */ 17421d9b32SPeter Brune 18421d9b32SPeter Brune /* coarse grid correction objects */ 19421d9b32SPeter Brune SNES next; /* the SNES instance for the next level in the hierarchy */ 20421d9b32SPeter Brune Mat interpolate; /* interpolation */ 21421d9b32SPeter Brune Mat restrct; /* restriction operator */ 22421d9b32SPeter Brune Vec rscale; /* the pointwise scaling of the restriction operator */ 23421d9b32SPeter Brune 24*ee78dd50SPeter Brune /* method parameters */ 25*ee78dd50SPeter Brune PetscInt n_cycles; /* number of cycles on this level */ 26*ee78dd50SPeter Brune PetscInt max_up_it; /* number of pre-smooths */ 27*ee78dd50SPeter Brune PetscInt max_down_it; /* number of post-smooth cycles */ 28421d9b32SPeter Brune 29421d9b32SPeter Brune } SNES_FAS; 30421d9b32SPeter Brune 31421d9b32SPeter Brune #endif 32