Actual source code: asm.h

petsc-3.13.6 2020-09-29
Report Typos and Errors

  4:  #include <petscdm.h>
  5:  #include <petsc/private/pcimpl.h>

  7: typedef struct {
  8:   PetscInt   n, n_local, n_local_true;
  9:   PetscInt   overlap;             /* overlap requested by user */
 10:   KSP        *ksp;                /* linear solvers for each block */
 11:   VecScatter restriction;         /* mapping from global to overlapping (process) subdomain*/
 12:   VecScatter *lrestriction;       /* mapping from subregion to overlapping (process) subdomain */
 13:   VecScatter *lprolongation;      /* mapping from non-overlapping subregion to overlapping (process) subdomain; used for restrict additive version of algorithms */
 14:   Vec        lx, ly;              /* work vectors */
 15:   Vec        *x,*y;               /* work vectors */
 16:   IS         lis;                 /* index set that defines each overlapping multiplicative (process) subdomain */
 17:   IS         *is;                 /* index set that defines each overlapping subdomain */
 18:   IS         *is_local;           /* index set that defines each non-overlapping subdomain, may be NULL */
 19:   Mat        *mat,*pmat;          /* mat is not currently used */
 20:   PCASMType  type;                /* use reduced interpolation, restriction or both */
 21:   PetscBool  type_set;            /* if user set this value (so won't change it for symmetric problems) */
 22:   PetscBool  same_local_solves;   /* flag indicating whether all local solvers are same */
 23:   PetscBool  sort_indices;        /* flag to sort subdomain indices */
 24:   PetscBool  dm_subdomains;       /* whether DM is allowed to define subdomains */
 25:   PCCompositeType loctype;        /* the type of composition for local solves */
 26:   MatType    sub_mat_type;        /* the type of Mat used for subdomain solves (can be MATSAME or NULL) */
 27:   /* For multiplicative solve */
 28:   Mat       *lmats;               /* submatrices for overlapping multiplicative (process) subdomain */
 29: } PC_ASM;
 30: #endif