xref: /petsc/include/petscdmpatch.h (revision 3a19ef87c57d96a00c8e8b5d38d585840d49a0e4)
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