Skip to main content
`Ctrl`+`K`

# 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

- dm - 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()`, `DMSlicedSetGhosts()`, `DMSlicedSetPreallocation()`, `VecGhostUpdateBegin()`, `VecGhostUpdateEnd()`, `VecGhostGetLocalForm()`, `VecGhostRestoreLocalForm()`

## Level

advanced

## Location

src/dm/impls/sliced/sliced.c

Index of all DM routines
Table of Contents for all manual pages
Index of all manual pages