1*3a19ef87SMatthew G Knepley /* 2*3a19ef87SMatthew G Knepley DMPatch, for domains covered by sets of patches. 3*3a19ef87SMatthew G Knepley */ 4*3a19ef87SMatthew G Knepley #if !defined(__PETSCDMPATCH_H) 5*3a19ef87SMatthew G Knepley #define __PETSCDMPATCH_H 6*3a19ef87SMatthew G Knepley #include <petscdm.h> 7*3a19ef87SMatthew G Knepley 8*3a19ef87SMatthew G Knepley /*S 9*3a19ef87SMatthew G Knepley DMPATCH - DM object that encapsulates a domain divided into many patches 10*3a19ef87SMatthew G Knepley 11*3a19ef87SMatthew G Knepley Level: intermediate 12*3a19ef87SMatthew G Knepley 13*3a19ef87SMatthew G Knepley Concepts: grids, grid refinement 14*3a19ef87SMatthew G Knepley 15*3a19ef87SMatthew G Knepley .seealso: DM, DMPatchCreate() 16*3a19ef87SMatthew G Knepley S*/ 17*3a19ef87SMatthew G Knepley PETSC_EXTERN PetscErrorCode DMPatchCreate(MPI_Comm, DM*); 18*3a19ef87SMatthew G Knepley 19*3a19ef87SMatthew G Knepley /* 20*3a19ef87SMatthew G Knepley * We want each patch to consist of an entire DM, DMDA at first 21*3a19ef87SMatthew G Knepley - We cannot afford to store much more than the data from a single patch in memory 22*3a19ef87SMatthew G Knepley - No global PetscSection, only PetscLayout 23*3a19ef87SMatthew G Knepley - Optional scatters 24*3a19ef87SMatthew G Knepley * There is a storable coarse level, which will also be a traditional DM (DMDA here) 25*3a19ef87SMatthew G Knepley * The local and global vectors correspond to a ghosted patch 26*3a19ef87SMatthew G Knepley * Need a way to activate a patch 27*3a19ef87SMatthew G Knepley * Jack in sizes for l/g vectors 28*3a19ef87SMatthew G Knepley - Need routine for viewing a full global vector 29*3a19ef87SMatthew G Knepley - Jed handles solver 30*3a19ef87SMatthew G Knepley */ 31*3a19ef87SMatthew G Knepley 32*3a19ef87SMatthew G Knepley #endif 33