:orphan:
# DMSlicedCreate
Creates a `DM` object, used to manage data for a unstructured problem 
## Synopsis
```
#include "petscdmsliced.h" 
PetscErrorCode DMSlicedCreate(MPI_Comm comm, PetscInt bs, PetscInt nlocal, PetscInt Nghosts, const PetscInt ghosts[], const PetscInt d_nnz[], const PetscInt o_nnz[], DM *dm)
```
Collective


## Input Parameters

- ***comm -*** the processors that will share the global vector
- ***bs -*** the block size
- ***nlocal -*** number of vector entries on this process
- ***Nghosts -*** number of ghost points needed on this process
- ***ghosts -*** global indices of all ghost points for this process
- ***d_nnz -*** matrix preallocation information representing coupling within this process
- ***o_nnz -*** matrix preallocation information representing coupling between this process and other processes



## Output Parameter

- ***slice -*** the slice object





## Notes
This `DM` does not support `DMCreateLocalVector()`, `DMGlobalToLocalBegin()`, and `DMGlobalToLocalEnd()` instead one directly uses
`VecGhostGetLocalForm()` and `VecGhostRestoreLocalForm()` to access the local representation and `VecGhostUpdateBegin()` and `VecGhostUpdateEnd()` to update
the ghost points.

One can use `DMGlobalToLocalBegin()`, and `DMGlobalToLocalEnd()` instead of `VecGhostUpdateBegin()` and `VecGhostUpdateEnd()`.


## See Also
 `DM`, `DMSLICED`, `DMDestroy()`, `DMCreateGlobalVector()`, `DMSetType()`, `DMSLICED`, `DMSlicedSetGhosts()`, `DMSlicedSetPreallocation()`,
`VecGhostUpdateBegin()`, `VecGhostUpdateEnd()`,
`VecGhostGetLocalForm()`, `VecGhostRestoreLocalForm()`

## Level
advanced

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/impls/sliced/sliced.c.html#DMSlicedCreate">src/dm/impls/sliced/sliced.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/sliced/sliced.c)


[Index of all DM routines](index.md)  
[Table of Contents for all manual pages](/manualpages/index.md)  
[Index of all manual pages](/manualpages/singleindex.md)  
