Skip to main content
`Ctrl`+`K`

# DMShellSetCreateFieldDecomposition

Set the routine used to create a decomposition of fields for the `DMSHELL`

## Synopsis

    #include "petscdmshell.h"
    PetscErrorCode DMShellSetCreateFieldDecomposition(DM dm, PetscErrorCode (*decomp)(DM dm, PetscInt *len, char **namelist[], IS *islist[], DM *dmlist[]))

Logically Collective

## Input Parameters

- dm - the `DMSHELL`

- decomp - the routine to create the decomposition

## Calling sequence of `decomp`

- dm - the `DM` to decompose into fields

- len - output, the number of fields (or `NULL` if not requested)

- namelist - output, the name for each field (or `NULL` if not requested)

- islist - output, the global indices for each field (or `NULL` if not requested)

- dmlist - output, the `DM`s for each field subproblem (or `NULL`, if not requested; if `NULL` is returned, no `DM`s are defined)

## See Also

`DM`, `DMSHELL`, `DMCreateFieldDecomposition()`, `DMShellSetContext()`, `DMShellGetContext()`

## 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