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