:orphan:
# DMCreateNeumannOverlap
Generates an IS, an unassembled (Neumann) Mat, a setup function, and the corresponding context to be used by PCHPDDM.
## Synopsis
```
#include "petscdmplex.h"
PetscErrorCode DMCreateNeumannOverlap_Plex(DM dm, IS *ovl, Mat *J, PetscErrorCode (**setup)(Mat, PetscReal, Vec, Vec, PetscReal, IS, void *), void **setup_ctx)
```
## Input Parameter
- ***dm -*** preconditioner context
## Output Parameters
- ***ovl -*** index set of overlapping subdomains
- ***J -*** unassembled (Neumann) local matrix
- ***setup -*** function for generating the matrix
- ***setup_ctx -*** context for setup
## Options Database Keys
- ***-dm_plex_view_neumann_original -*** view the DM without overlap
- ***-dm_plex_view_neumann_overlap -*** view the DM with overlap as needed by PCHPDDM
## See Also
`DMCreate()`, `DM`, `MATIS`, `PCHPDDM`, `PCHPDDMSetAuxiliaryMat()`
## Level
advanced
## Location
src/dm/impls/plex/plexhpddm.c
## Implementations
DMCreateNeumannOverlap_pforest(DM dm, IS *ovl, Mat *J, PetscErrorCode (**setup) in src/dm/impls/forest/p4est/pforest.h
DMCreateNeumannOverlap_Plex(DM dm, IS *ovl, Mat *J, PetscErrorCode (**setup) in src/dm/impls/plex/plexhpddm.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plexhpddm.c)
[Index of all DMPlex routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)