Skip to main content
`Ctrl`+`K`

# DMShellSetLocalToLocal

Sets the routines used to perform a local to local scatter

## Synopsis

    #include "petscdmshell.h"
    PetscErrorCode DMShellSetLocalToLocal(DM dm, PetscErrorCode (*begin)(DM dm, Vec local, InsertMode mode, Vec nlocal), PetscErrorCode (*end)(DM dm, Vec local, InsertMode mode, Vec nlocal))

Logically Collective

## Input Parameters

- dm - the `DMSHELL`

- begin - the routine that begins the local to local scatter

- end - the routine that ends the local to local scatter

## Calling sequence of `begin`

- dm - the `DM`

- local - the local `Vec` to be communicated

- mode - insert mode of the resulting vector

- nlocal - the local `Vec` to receive the result

## Calling sequence of `end`

- dm - the `DM`

- local - the local `Vec` to be communicated

- mode - insert mode of the resulting vector

- nlocal - the local `Vec` to receive the result

## Note

If these functions are not provided but `DMShellSetLocalToLocalVecScatter()` is called then `DMLocalToLocalBeginDefaultShell()`/`DMLocalToLocalEndDefaultShell()` are used to perform the transfers

## See Also

`DM`, `DMSHELL`, `DMShellSetGlobalToLocal()`, `DMLocalToLocalBeginDefaultShell()`, `DMLocalToLocalEndDefaultShell()`, `DMLocalToLocalBegin()`, `DMLocalToLocalEnd()`

## Level

advanced

## Location

src/dm/impls/shell/dmshell.c

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