13a19ef87SMatthew G Knepley /* 23a19ef87SMatthew G Knepley DMPatch, for domains covered by sets of patches. 33a19ef87SMatthew G Knepley */ 43a19ef87SMatthew G Knepley #if !defined(__PETSCDMPATCH_H) 53a19ef87SMatthew G Knepley #define __PETSCDMPATCH_H 63a19ef87SMatthew G Knepley #include <petscdm.h> 73a19ef87SMatthew G Knepley 83a19ef87SMatthew G Knepley /*S 93a19ef87SMatthew G Knepley DMPATCH - DM object that encapsulates a domain divided into many patches 103a19ef87SMatthew G Knepley 113a19ef87SMatthew G Knepley Level: intermediate 123a19ef87SMatthew G Knepley 133a19ef87SMatthew G Knepley Concepts: grids, grid refinement 143a19ef87SMatthew G Knepley 153a19ef87SMatthew G Knepley .seealso: DM, DMPatchCreate() 163a19ef87SMatthew G Knepley S*/ 173a19ef87SMatthew G Knepley PETSC_EXTERN PetscErrorCode DMPatchCreate(MPI_Comm, DM*); 183a19ef87SMatthew G Knepley 19*bb71ef15SMatthew G Knepley PETSC_EXTERN PetscErrorCode DMPatchZoom(DM,Vec,MatStencil,MatStencil,MPI_Comm,DM*,PetscSF*,PetscSF*); 206fbb21edSJed Brown PETSC_EXTERN PetscErrorCode DMPatchSolve(DM); 216fbb21edSJed Brown PETSC_EXTERN PetscErrorCode DMPatchGetPatchSize(DM,MatStencil*); 226fbb21edSJed Brown PETSC_EXTERN PetscErrorCode DMPatchSetPatchSize(DM,MatStencil); 23*bb71ef15SMatthew G Knepley PETSC_EXTERN PetscErrorCode DMPatchGetCommSize(DM,MatStencil*); 24*bb71ef15SMatthew G Knepley PETSC_EXTERN PetscErrorCode DMPatchSetCommSize(DM,MatStencil); 256fbb21edSJed Brown PETSC_EXTERN PetscErrorCode DMPatchGetCoarse(DM,DM*); 26*bb71ef15SMatthew G Knepley PETSC_EXTERN PetscErrorCode DMPatchCreateGrid(MPI_Comm,PetscInt,MatStencil,MatStencil,MatStencil,DM*); 276fbb21edSJed Brown 283a19ef87SMatthew G Knepley /* 293a19ef87SMatthew G Knepley * We want each patch to consist of an entire DM, DMDA at first 303a19ef87SMatthew G Knepley - We cannot afford to store much more than the data from a single patch in memory 313a19ef87SMatthew G Knepley - No global PetscSection, only PetscLayout 323a19ef87SMatthew G Knepley - Optional scatters 333a19ef87SMatthew G Knepley * There is a storable coarse level, which will also be a traditional DM (DMDA here) 343a19ef87SMatthew G Knepley * The local and global vectors correspond to a ghosted patch 353a19ef87SMatthew G Knepley * Need a way to activate a patch 363a19ef87SMatthew G Knepley * Jack in sizes for l/g vectors 373a19ef87SMatthew G Knepley - Need routine for viewing a full global vector 383a19ef87SMatthew G Knepley - Jed handles solver 393a19ef87SMatthew G Knepley */ 403a19ef87SMatthew G Knepley 413a19ef87SMatthew G Knepley #endif 42